...
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.
Info | ||
---|---|---|
| ||
Opisana konfiguracja dotyczy klienta w wersji 7.3.0, generalnie powinna być jednak poprawna również dla nieco wcześniejszych wersji 7.1.0 i 7.0.4. |
Info |
---|
Poniżej podano wersje komend dla systemu Linux lub Mac. W przypadku pracy na Windows należy zmienić separator katalogu ('/' na '\'), używać skryptu |
Warning |
---|
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 5a 06:cf21:1542:b63C:1628:2428:0e29:0f93:3299:a7F9:e9BB:ec23:c4AE:73B9:1aA7:c4DE:9604:caF1:6f87:f6FA
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 =
).Info |
---|
Podstawowe informacje o użytkowaniu UCC zaprezentowane są poniżej. Można również wykorzystać szkolenia zdalne UNICORE, na które zapisać się można za pośrednictwem Portalu. |
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.
Info |
---|
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
.
Code Block |
---|
# 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
Code Block |
---|
{ 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:Code Block |
---|
Resources: { Memory: 128000000, Nodes: 1, CPUs: 8 , } |
newFile
słowo Hello
:
Code Block |
---|
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.
Code Block |
---|
{ 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
...