Test
UNICORE Commandline Client jest tekstowym klientem systemu UNICORE.
Klient UCC jest uruchamiany za pośrednictwem platformy Java, która musi być zainstalowana w systemie. Platforma dostępna jest pod adresem https://java.com dla maszyn z systemem operacyjnym Windows, Mac i Linux. Dla użytkowników Linuxa wygodniejszą alternatywą jest zainstalowanie platformy Java za pomocą systemowych narzędzi do instalacji oprogramowania.
Klient UCC pobrany może zostać ze strony projektu https://sourceforge.net/projects/unicore/files/Clients/Commandline%20Client/. W dalszej części podręcznika zakładamy użycie wersji z rozszerzeniem zip, która to może być użyta na każdym systemie operacyjnym. Wersja z rozszerzeniem tar.gz jest przeznaczona dla użytkowników Linuxa, pozostałe wersje - .deb i .rpm - również, aczkolwiek wymagają uprawnień administratora do instalacji. W zamian integrują się z systemem operacyjnym (np. poprzez dodanie polecenia ucc do ścieżki wykonywalnej).
Ściągnięta paczka może zostać rozpakowana w dowolnej lokalizacji na komputerze użytkownika systemu.
Wersja UCC
Poniżej podano wersje komend dla systemu Linux lub Mac. W przypadku pracy na Windows należy zmienić separator katalogu ('/' na '\'), używać skryptu ucc.bat
zamiast ucc
oraz wprowadzić faktyczny katalog domowy użytkownika zamiast znaku tyldy (~).
Poniższa instrukcja działa przy pierwszym uruchomieniu, tzn. zakłada że nie istnieje wcześniej utworzona konfiguracja użytkownika. Jeśli taka istnieje zostanie ona nadpisana, jednak program UCC utworzy jej kopię zapasową.
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:
:
bin/ucc download-config -b -e -u https://unicore.grid.icm.edu.pl:8443/ccm/plgrid-profile-icm.xml 06:21:42:3C:28:28:29:93:99:F9:BB:23:AE:B9:A7:DE:04:F1:87:FA
credential.format = pkcs12
credential.path = ŚCIEŻKA_DO_PLIKU_PKCS12
credential.format = pem
credential.path = ŚCIEŻKA_DO_PLIKU_PEM_Z_CERTYFIKATEM
ŚCIEŻKA_DO_PLIKU_PEM_Z_KLUCZEM_PRYWATNYM
credential.format = jks
credential.path = ŚCIEŻKA_DO_PLIKU_JKS
credential.password =
).Użytkownik może wykorzystać gotową instalację tekstowego klienta systemu UNICORE (UCC w wersji 7.x.y) 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).
Aby móc korzystać z zainstalowanego klienta UCC użytkownik powinien:
ucc
, które spowoduje przygotowanie plików konfiguracyjnych użytkownika - zostanie utworzony katalog ~/.ucc z domyślną konfiguracją.Przykładowe użycie programu pokazane jest w szkoleniach zdalnych UNICORE, na które zapisać się można za pośrednictwem Portalu.
Poniżej prezentujemy podstawy użycia klienta UCC. Bardziej dogłębne informacje można znaleźć w szkoleniach zdalnych UNICORE (dostęp przez portal PL-Grid) oraz w oficjalnym podręczniku UCC http://www.unicore.eu/documentation/manuals/unicore/files/ucc/ucc-manual.html
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ń.
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
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, }
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
.
Podstawowe opcje:
-v
pozwala wyświetlić szczegółowe wyniki.-b
zwraca skrócone nazwy plików (bez hasha).-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
):Przykład asynchronicznego uruchomienia zadania:
$ bin/ucc shell
ucc>run -a -b ./samples/date.u
/home/golbi/unicore/test/ucc-distribution-7.3.0/./4a88e886-8ff3-479c-a52e-a64277d87e19.job
/home/golbi/unicore/test/ucc-distribution-7.3.0/./4a88e886-8ff3-479c-a52e-a64277d87e19.properties
ucc>job-status 4a88e886-8ff3-479c-a52e-a64277d87e19.job
https://unicore.grid.task.gda.pl:8080/TASK-GALERAPLUS/services/JobManagement?res=4a88e886-8ff3-479c-a52e-a64277d87e19 SUCCESSFUL exit code: 0
ucc>get-output 4a88e886-8ff3-479c-a52e-a64277d87e19.job
SUCCESSFUL exit code: 0
stdout
stderr
{ 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
Resources
skryptu 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 , }
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
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