You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

QCG Simple jest zbiorem prostych narzędzi wzorowanych na poleceniach systemów kolejkowych umożliwiających zlecanie i kontrolowanie zadań w infrastrukturze PL Grid.

Opis zadania

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.

Najczęsciej wykorzystywane dyrektywy

Format opisu zadań wraz z pełna listą dyrektyw QCG

Przykład opisu zadnia

#!/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
  • Zadanie zostanie wykonane na klastrze zeus (#QCG host)
  • Zlecone zostanie do kolejki "plgrid" (#QCG queue)
  • Deklarowany czas działanie zadania to 5 minut (#QCG walltime)
  • Standardowe wyjście (stdout) przegrane zostanie do katalogu, z którego zlecone zostało zadnie do pliku o nazwie będącej identyfikatorem zadania z rozszerzeniem "output".
  • Standardowe wyjście błędów (stderr) przegrane zostanie do katalogu, z którego zlecone zostało zadnie do pliku o nazwie będącej identyfikatorem zadania z rozszerzeniem "error".
  • Plik "input.txt", z katalogu, z którego zlecono zadanie przekopiowany zostanie do katalogu roboczego zadania pod nazwę "lower.txt".
  • Zawartość pliku "lower.txt" poddana zostanie konwersji "do dużych liter". Wynik zapisany zostanie w pliku "upper.txt".
  • Na standardowe wyjście zapisana zostanie informacja o liczbie znaków w pliku "upper.txt"
  • Wykonanie programu wstrzymane zostanie na 120 sekund. (Potrzebne aby dać czas na wyświetlenie zadania i anulowanie go).
  • Plik "upper.txt" przegrany zostanie do katalogu, z którego zlecone zostało zadanie pod nazwę identyfikator_zadania.upper.

Zlecenie zadania

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.

Informacja o zadaniach

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

 

Anulowanie zadania

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  

 

Zlecenie zadnia interaktywnego

W przypadku zadań wymagających interakcji z użytkownikiem, bądź na etapie kompilacji lub testowania kodu często przydatne lub wręcz konieczne jest uruchomienie zadnia interaktywnego.

Do zlecenia zadnia interaktywnego służy polecenie qcg-sub z przełącznikiem "-I/–interactive".

Korzystając z polecenia qcg-sub można zlecić wykonanie dowolnej interaktywnej tekstowej aplikacji.

Szczególnie częstym i użytecznym przypadkiem jest interaktywne uruchomienie konsoli poleceń umożliwiające np. kompilację oprogramowani na klastrze, do którego nie ma dostępu poprzez SSH.

W opisie zadania dla interaktywnego uruchomienia konsoli poleceń wystarczy podać nazwę klastra, na którym ma się uruchomić konsola oraz podać ścieżkę do preferowanego interpretera poleceń (np. bash).

 

#QCG host=inula.man.poznan.pl
 
/bin/bash

 

W opisie zadania interaktywnego możliwe jest podanie wymagań zasobowych (dyrektywy procs i nodes).

[qcg] /home/plgrid/plgpiontek/reef/INTERACTIVE > qcg-sub -I inula.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 22 Hours 40 Minutes 57 Seconds

inula.qcg 0     jobId = J1364246860791__3941
Press Ctrl-C to cancel the task
Interactive session started. Use the 'exit' command to quit.
plgpiontek@c011:/mnt/lustre/inula/qcg/plgpiontek/J1364246860791__3941_task_1364246861194_441$ echo $PBS_
plgpiontek@c011:/mnt/lustre/inula/qcg/plgpiontek/J1364246860791__3941_task_1364246861194_441$ cat $PBS_NODEFILE
c011
c011
c011
c011
c011
c011
c011
c011
c011
c011
c011
c024
c024
plgpiontek@c011:/mnt/lustre/inula/qcg/plgpiontek/J1364246860791__3941_task_1364246861194_441$ exit
exit
[qcg] /home/plgrid/plgpiontek/reef/INTERACTIVE >
  • No labels