UNICORE Commandline Client jest tekstowym klientem systemu UNICORE.

Instalacja i konfiguracja

Klient UCC pobrany może zostać ze strony projektu http://www.unicore.eu/download/unicore6/. Ściągnięta paczka może zostać rozpakowana w dowolnej lokalizacji na komputerze użytkownika systemu.

Aby skonfigurować dostęp do Gridu najlepiej skorzystać z profilu konfiguracji klienta, który m.in. doinstaluje certyfikaty zaufanych CA oraz określi rejestry. W tym celu należy:

Sposób uruchomienia programu oraz jego przykładowe użycie pokazane są w szkoleniach zdalnych UNICORE, na które zapisać się można za pośrednictwem Portalu.

UNICORE Commandlie Client na serwerach dostępowych

Użytkownik może wykorzystać gotową instalację tekstowego klienta systemu UNICORE (UCC) dostępnego w ICM, WCSS, Cyfronet, PCSS, TASK. W tym celu należy jednak, oprócz aplikacji o globalny dostęp do systemu UNICORE, wystąpić o dostęp do wybranych maszyn UI (User Interface).

Instalacja i konfiguracja

Aby móc korzystać z zainstalowanego klienta UCC użytkownik powinien:

Przykładowe użycie programu pokazane jest w szkoleniach zdalnych UNICORE, na które zapisać się można za pośrednictwem Portalu.

Polecenia UNICORE Commandline Client

Połączenie z Gridem

Aby połączyć się z Gridem, należy wykonać polecenie ucc connect. Pomoc można uzyskać za pomocą polecenia ucc z opcją -h:

$ ucc connect
$ ucc -h

Jeżeli hasło użytkownika nie jest zapisane w pliku preferences, wówczas będzie on pytany o nie przy każdym wywołaniu UCC. Aby tego uniknąć wykorzystać można tryb interaktywny wpisując: ucc shell. Tryb ten nie wymaga pisania ucc przed poleceniami. Oferuje ponadto rozwijanie poleceń.

Zasoby

Aby sprawdzić listę dostępnych systemów docelowych, magazynów (stoarge) bądź aplikacji, użytkownik wykonać powinien następujące polecenia:

$ ucc list-sites
$ ucc list-storages
$ ucc list-applications

Opis zadania

UNICORE Commandline Client wykorzystuje opis zadań w formacie JSON pozwalając na wskazanie uruchamianego programu, argumentów, ustawień środowiska oraz przesyłanych plików. Przykład opisu zadania przedstawiony został poniżej. Może on zostać skopiowany do pliku date.u.

# simple job: run Date
{
   ApplicationName: Date,
   ApplicationVersion: 1.0,
}

Uruchamianie zadania

Aby uruchomić zadanie, użytkownik powinien wpisać polecenie:

$ ucc run date.u -v

Standardowym wyjściem może być np. plik 1bc1bb08-7737-4fb1-854e-5d89ba18d7f0.stdout. Opcja -v pozwala wyświetlić szczegółowe wyniki. Użytkownik może również użyć opcji -b, która zwraca skrócone nazwy plików (bez hasha).

Opcja -a pozwala na uruchomienie zadania w sposób asynchroniczny: pliki wejściowe są wysyłane na zdalny system, gdzie zadanie jest zatwierdzane do uruchomienia, jednak wyniki mogą zostać pobrane w późniejszym terminie za pomocą polecenia get-output. Aby uzyskać status zadania, użyć należy komendy get-status. Jako argument podać można plik zadania uzyskany w wyniku polecenia run -a bądź też End Point Reference (EPR) otrzymany z listy zadań (list-jobs):

$ ucc run -a date.u -v -b
$ ucc list-jobs
$ ucc get-status job
$ ucc get-output jo

Import/Export plików

Aby importować pliki z lokalnego komputera do katalogu zadania (lub eksportować z katalogu zadania do lokalnego komputera), użytkownik powinien wskazać w skrypcie pliki źródłowe i docelowe:
{
    Imports: [
       { From: "u6://StorageName/fileName", To: "remoteFileName" },
    ]
   Exports: [
        { From: "remoteFileName", To:"u6://StorageName/fileName" },  
    ]
}

Plik może również zostać wysłany na Stoarge i pobrany z niego za pomocą poleceń ucc put-file oraz ucc get-file. Komenda ls pozwala na wypisanie wszystkich plików z katalogu:

$ ucc put-file -s fileName -t u6://StorageName/fileName
$ ucc get-file -s u6://StorageName/fileName -t newFileName
$ ucc ls u6://StorageName/fileName

Zasoby

W części Resourcesskryptu opisującego zadanie użytkownik może określić zasoby, z którymi zadanie zostanie uruchomione na zdalnym systemie. Sekcja ta może wyglądać następująco:
Resources: {
    Memory: 128000000,
    Nodes: 1,
    CPUs: 8 ,
}

Przykład

W poniższym przykładzie plik localScript.sh jest skryptem wypisującym do pliku o nazwie newFile słowo Hello:

 

echo "Hello" >> newFile

Użytkownik może utworzyć plik localScript.sh na lokalnym komputerze. Aby wysłać go na Storage powinien najpierw sprawdzić nazwę dostępnych Storage'y (tutaj: SHARE-ACK). Po przesłaniu pliku można wyświetlić znajdujące się w nim pliki:

$ ucc list-storages
$ ucc put-file -s localScript.sh -t u6://SHARE-ACK/storageScript.sh
$ ucc ls u6://SHARE-ACK/Home

Plik bash.u jest skryptem importującym storageScript.sh z Home Stoarge do katalogu zadania i zmieniającym jego nazwę na remoteScript.sh. Skrypt tworzy plik newFile, który następnie jest pobierany na komputer użytkownika jako localNewFile. Plik ten jest również eksportowany do Home Storage systemu UNICORE.

 

{
 ApplicationName: "Bash shell",
 Environment: [
                "SOURCE=remoteScript.sh",
        ],
         Imports: [
                { From: "u6://SHARE-ACK/storageScript.sh", To: "remoteScript.sh"}
        ],
        Exports: [
                { From: "newFile", To: "localNewFile"},
                { From:"newFile", To: "u6://SHARE-ACK/storageNewFile"}
        ],
 Resources: {
        CPUs: 1 ,
 }
}

Zadanie bash.u może zostać uruchomione poleceniem ucc run. Na komputerze użytkownika powinien zostać utworzony plik localNewFile.

$ ucc run bash.u -v
$ ucc ls u6://SHARE-ACK

Co dalej?

Użycie grantów PL-Grid w infrastrukturze UNICORE