Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS
Logowanie 1. Logujemy się poprzez ssh na serwer dostępowy na konto studentxx, które zostało przydzielone w użytkownikowi na szkoleniu. 2. Uzyskujemy certyfikat proxy poprzez wykonanie polecenia: grid-proxy-init 3. Przechodzimy do katalogu /tmp/studentxx. * Wszystkie zamieszczone przykłady zostały utworzone dla węzła dostępowego klastra znajdującego się w Poznaniu (access.pcss.clusterix.pl). Jeżeli jest wykorzystywany inny węzeł dostępowy należy dokonać odpowiednich zmian w plikach zadania (). 2
Uruchomienie przykładowego zadania 1. Tworzymy plik zadania o nazwie : <url>file:////bin/dnsdomainname</url> 2. Zgłaszamy zadanie do systemu zarządzania danymi z wykorzystaniem klienta tekstowego GRMS'a (grms-client): - Your DN: /C=PL/O=GRID/OU=Clusterix/OU=pcss.clusterix.pl/CN=Szkolenie Clusterix student01 - Service URL: httpg://access:8443/axis/services/grms - Job submitted successfully, jobid=1149861042367_test_4714 Identyfikator zadania 3. Informacje na temat zgłoszonego zadania możemy uzyskać poprzez uruchomienie klienta tekstowego z parametrem info, po którym podajemy identyfikator zadania ws_client info 1149861042367_test_4714 - Your DN: /C=PL/O=GRID/OU=Clusterix/OU=pcss.clusterix.pl/CN=Szkolenie Clusterix student01 - Service URL: httpg://access:8443/axis/services/grms - jobinfo[1149947329475_test_4242] is:... - jobstatus=finished - submissiontime=sat Jun 10 15:48:49 CEST 2006 3 - finishtime=sat Jun 10 15:49:00 CEST 2006 - requeststatus=job_done
Przekierowanie standardowego wyjścia 1. Aby zachować standardowe wyjście w pliku i przegrać go na wskazaną lokalizację należy użyć elementu <stdout>: <url>file:////bin/dnsdomainname</url> <stdout> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/stdout</url> </stdout> 2. Zgłaszamy zadanie do wykonania: 3. Po wykonaniu zadania w katalogu domowym użytkownika będzie znajdował się plik stdout zawierający domenę do której należy węzeł obliczeniowy wykonujący zadanie, np: stdout access.pcss.clusterix.pl 4
Kopiowanie pliku wykonywalnego 1. Jeżeli plik wykonywalny aplikacji ma być przekopiowany na maszynę wykonawczą ze zdalnej lokalizacji, to należy odpowiedno użyć elementu <url> wewnątrz elementu <file> znajdującego się w elemencie <executable>: <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/test.sh</url> <stdout> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/stdout</url> </stdout> 2. W celu ilustracji kopiowania pliku wykonywalnego tworzymy skrypt powłoki o nazwie test.sh: test.sh #!/bin/bash hostname dnsdomainname 3. Następnie nadajemy plikowi prawa do wykonywania: chmod u+x test.sh 4. Uruchamiamy zadanie: stdout access pcss.clusterix.pl 5
Argumenty wywołania programu 1. Jeżeli program wymaga przekazania pewnych argumentów wywołania, to należy je określić przy pomocy elementów typu <value> i <arguments>: <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/test.sh</url> <arguments> <value>alfa</value> <value>beta</value> </arguments> <stdout> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/stdout</url> </stdout> 2. Wprowadzamy modyfikacje do pliku test.sh (wyświetlające parametry wywołania) i uruchamiamy zadanie: test.sh #!/bin/bash hostname dnsdomainname echo "Pierwszy parametr: " $1 echo "Drugi parametr: " $2 stdout access pcss.clusterix.pl Pierwszy parametr: alfa Drugi parametr: beta 6
Przesłanie pliku wejściowego (I) 1. Jeżeli aplikacja wymaga aby do jej katalogu roboczego przed jej uruchomieniem zostały przegrane pewne pliki to należy je umieścić w opisie zadania przy pomocy elementów <file> typu <in>: <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/test.sh</url> <arguments> <value>alfa</value> <value>beta</value> <file name="file.txt" type="in"> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/file_in.txt</url> </arguments> <stdout> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/stdout</url> </stdout> 2. Tworzymy przykładowy plik wejściowy: file_in.txt to jest przykladowy plik przeslany do katalogu roboczego aplikacji 7
Przesłanie pliku wejściowego (II) 3. Modyfikujemy plik wykonywalny w celu wyświetlenia zawartości przesłanego pliku wejściowego: test.sh #!/bin/bash hostname dnsdomainname echo "Pierwszy parametr: " $1 echo "Drugi parametr: " $2 echo "*** plik wejsciowy ***" cat file.txt echo "*** koniec pliku ***" 4. Zgłaszamy zadanie do wykonania: stdout access pcss.clusterix.pl Pierwszy parametr: alfa Drugi parametr: beta *** plik wejsciowy *** to jest przykladowy plik przeslany do katalogu roboczego aplikacji *** koniec pliku *** 8
Przesłanie pliku wyjściowego (I) 1. W przypadku gdy program generuje pliki wyjściowe, które należy dostarczyć użytkownikowi, to należy je umieścić w opisie zadania przy pomocy elementów <file> typu <out>: <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/test.sh</url> <arguments> <value>alfa</value> <value>beta</value> <file name="file.txt" type="in"> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/file_in.txt</url> <file name="out.txt" type="out"> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/out.txt</url> </arguments> <stdout> <url>gsiftp://access.pcss.clusterix.pl//tmp/grms/studentxx/stdout</url> </stdout> 9
Przesłanie pliku wyjściowego (II) 2. Modyfikujemy skrypt zadania w taki sposób, aby generował plik wyjściowy o nazwie out.txt: test.sh #!/bin/bash hostname dnsdomainname echo "Pierwszy parametr: " $1 echo "Drugi parametr: " $2 echo "*** plik wejsciowy ***" cat file.txt echo "*** koniec pliku ***" echo "to jest plik wyjsciowy" > out.txt echo "wygenerowany przez zadanie" >> out.txt 3. Zgłaszamy zadanie do wykonania: 4. Po wykonaniu zadania w katalogu bieżącym powinien pojawić się plik out.txt: out.txt to jest plik wyjsciowy wygenerowany przez zadanie 10