QCG Simple jest zbiorem prostych narzędzi wzorowanych na poleceniach systemów kolejkowych umożliwiających zlecanie i kontrolowanie zadań w infrastrukturze PL Grid.
Każde z zadań opisywane jest przy pomocy wykonywalnego pliku tekstowego zawierającego dyrektywy QCG.
Dyrektywy QCG mają charakter informacyjny dla systemu i dostarczają informacji jak przygotować środowisko wykonania dla danego zadania (pliki wejściowe/wyjściowe) oraz jakie są prefrencje/wymagania zasobowe.
Najprostszym plikiem zadania jest plik zawierający tylko informacje jak uruchomić daną aplikację:
#!/bin/bash date
W większości przypadków zadanie wymaga przekazanie do systemu dodatkowych informacji dotyczących konfiguracji środowiska wykonawczego bądź wymagań zasobowych.
Przekazanie tych informacji polega na umieszczeniu w pliku odpowiednich dyrektyw. Dyrektywy zaczynają się od sekwencji "#QCG", po ktorej następuje nazwa dyrektywy i opcjonalne parametry.
Format opisu zadań wraz z pełna listą dyrektyw QCG
#!/bin/bash #QCG host=zeus #QCG queue=plgrid #QCG walltime=PT5M #QCG output=${JOB_ID}.output #QCG error=${JOB_ID}.error #QCG stage-in-file=input.txt -> lower.txt cat lower.txt | tr "[:lower:]" "[:upper:]" > upper.txt echo "Liczba znakow: " `wc -m upper.txt` sleep 120 echo "Koniec: " `date` #QCG stage-out-file=upper.txt -> ${JOB_ID}.upper
Do zlecenia zadania do wykonania w infrastrukturze PL-Grid służy polecenie qcg-sub.
Poniższy przykład demonstruje zlecenie przykładowego opisu zadania przedstawionego powyżej.
Zadanie to zakłada istnienie w katalogu, z którego jest zlecane pliku tekstowego "input.txt".
echo "QosCosGrid - PLGrid" > input.txt
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-sub ./task.qcg https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 23 Hours 51 Minutes 42 Seconds jobId = J1364242615483__2780
W przypadku poprawnego zlecenia zadania polecenie qcg-sub wyświetla unikalny identyfikator zadania.
Klient QCG umożliwia wyświetlenie zbiorczej informacji o zadaniach w systemie (polecenie qcg-list), lub szczegółowej informacji o poszczególnych zadaniach (polecenie qcg-info)
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-list https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 23 Hours 50 Minutes 37 Seconds JOB IDENTIFIER TASK NOTE SUBMISSION TIME START TIME FINISH TIME STATUS HOSTNAME J1364226630231__6828 task 25.03.13 16:50 PENDING zeus J1364242615483__2780 task 25.03.13 21:16 25.03.13 21:17 RUNNING zeus Number of tasks: PENDING : 1 RUNNING : 1 TOTAL: 2
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-info J1364242615483__2780 https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 23 Hours 49 Minutes 23 Seconds Note: UserDN: /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek TaskType: SINGLE SubmissionTime: Mon Mar 25 21:16:55 CET 2013 FinishTime: ProxyLifetime: P20DT23H49M34S Status: RUNNING StatusDesc: StartTime: Mon Mar 25 21:16:56 CET 2013 Allocation: HostName: zeus.cyfronet.pl ProcessesCount: 1 ProcessesGroupId: Status: RUNNING StatusDescription: SubmissionTime: Mon Mar 25 21:16:55 CET 2013 FinishTime: LocalSubmissionTime: Mon Mar 25 21:16:59 CET 2013 LocalStartTime: Mon Mar 25 21:17:25 CET 2013 LocalFinishTime:
Po zakończeniu zadania (stan FINISHED) w katalogu, z którego zlecano zadanie dostępne będą pliki: J1364242615483__2780.output J1364242615483__2780.upper
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > cat J1364242615483__2780.output Liczba znakow: 23 upper.txt Koniec: Mon Mar 25 21:19:32 CET 2013
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > cat J1364242615483__2780.upper QOSCOSGRID - PLGRID
Do anulowania wykonywania zadania służy polecenie qcg-cancel.
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-sub task.qcg https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 23 Hours 3 Minutes 15 Seconds jobId = J1364245522691__0345
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-list https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 23 Hours 1 Minutes 27 Seconds JOB IDENTIFIER TASK NOTE SUBMISSION TIME START TIME FINISH TIME STATUS HOSTNAME J1364226630231__6828 task 25.03.13 16:50 PENDING zeus J1364245522691__0345 task 25.03.13 22:05 25.03.13 22:06 RUNNING zeus Number of tasks: PENDING : 1 RUNNING : 1 TOTAL: 2
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-cancel J1364245522691__0345 https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 23 Hours 0 Minutes 13 Seconds Job is being canceled
[qcg] /home/plgrid/plgpiontek/reef/SANDBOX/podrecznik > qcg-list -S 1h -s canceled https://qcg-broker.man.poznan.pl:8443/qcg/services/ /C=PL/O=GRID/O=PSNC/CN=qcg-broker/qcg-broker.man.poznan.pl UserDN = /C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek ProxyLifetime = 20 Days 22 Hours 57 Minutes 24 Seconds JOB IDENTIFIER TASK NOTE SUBMISSION TIME START TIME FINISH TIME STATUS HOSTNAME J1364245522691__0345 task 25.03.13 22:05 25.03.13 22:06 25.03.13 22:08 CANCELED zeus