Zlecany plik jest plikiem tekstowym, który może zawierać dyrektywy infrastruktury QCG.

Dyrektywą jest każda linia zaczynająca się od ”#QCG”.

Jeżeli w pliku nie zdefiniowano dyrektywy ”executable” ani ”application” uruchamiany jest zlecany plik z opisem zadania.

application

#QCG application=namd
#QCG application=gromacs/4.6.3

argument

#QCG argument=arg1
#QCG argument=arg2

assistant

deadline

W przypadku nie podania dyrektywy „not_before” system próbuje dokonać rezerwacji zasobów od aktualnej chwili. Dyrektywa wyklucza równoczesne użycie „not_after”.

#QCG deadline=P3DT12H
#QCG not-before=2012.07.25
#QCG deadline=P3DT12H

environment

#QCG environment=name -> piontek
#QCG environment=location -> poznan

error

executable

#QCG executable=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/executables/exec1
#QCG executable=executables/exec1
#QCG executable=executables/exec1 -> exec-file

grant

#QCG grant=plgpiontek_grant

host

#QCG host=reef.man.poznan.pl
#QCG host=zeus.cyfronet.pl

include

#QCG include=includes/application.qcg
#QCG include=/home/piontek/includes/notifications.qcg

 

input

#QCG input=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/experiment.input
#QCG input=input.txt

memory

#QCG memory=1024

memory-per-slot

#QCG memory-per-slot=512

 

module

#QCG module=nwchem/6.0
#QCG module=namd

monitor

Składnia:

#QCG monitor[=skrypt]

#QCG monitor=script->skrypt[,delay->N]

Dla aplikacji posiadających jeden predefiniowany schemat monitorowania dyrektywa może być bezparametrowa:

#QCG monitor

W przypadku, gdy chcemy zdefiniować konkretny schemat, lub użyć własnego skryptu monitorującego konieczne jest przekazanie parametru. Domyślnym parametrem jest parametr "script".

W przypadku korzystania z własnego skryptu monitorującego należy go zdefiniować jako plik wejściowy aplikacji dyrektywą #QCG stage-in-file.

#QCG monitor=gaussian

#QCG monitor=skrypt_monitorujący.sh
#QCG stage-in-file=skrypt_monitorujący.sh

Częstotliwość uruchamiania skryptu monitorującego definiuje parametr delay, którego wartości jest okres czasu w sekundach co jaki będzie uruchamiany skrypt. Powiadomienie wysyłane jest tylko w przypadku wykrycia zmiany od poprzedniego wysłania.

#QCG monitor=gaussian,delay->60

#QCG monitor=script->gaussian,delay->60

 

mount

name

#QCG name=nobel-experiment

native

Przykład dla PBSa oznaczający dane zadanie jako wznawialne.

(-r y|n Declares whether the job is rerunable.)

#QCG native=-r n

nodes

#QCG nodes=10:5:1
#QCG nodes=12:12

not-after

#QCG not-after=2012.08.25
#QCG walltime=PT2H
#QCG not-after=2012.08.25 13:20
#QCG walltime=PT2H

not-before

#QCG not-before=2012.07.25
#QCG walltime=PT2H
#QCG not-before=2012.07.25 15:20
#QCG walltime=PT2H

note

#QCG note=moje pierwsze zadanie QCG

notify

#QCG notify=mailto:piontek@man.poznan.pl
#QCG notify=xmpp:tomasz.piontek@gmail.com

W przypadku chęci otrzymywania powiadomień protokołem xmpp konieczne jest dodanie do kontaktów nadawcy: qcg-notification@plgrid.pl    

output

#QCG output=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/outputs/${JOB_ID}.output
#QCG output=output.txt

parameter-sweep

persistent

#QCG persistent

postprocess

#QCG postprocess=tar cvf wynik.tar *
#QCG postprocess=postprocess-script.sh

preprocess

#QCG preprocess=mkdir outputs
#QCG preprocess=preprocess-script.sh

procs

#QCG procs=32

properties

#QCG properties=mpi,ib,lustre

queue

#QCG queue=plgrid

reservation

#QCG host=reef.man.poznan.pl
#QCG reservation=R1366398248299__4039
#QCG host=reef.man.poznan.pl
#QCG reservation=piontek.0 local

stage-in-dir

#QCG stage-in-dir=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs -> inputs
#QCG stage-in-dir=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs
#QCG stage-in-dir=input_dir -> inputs
#QCG stage-in-dir=input_dir

Skopiowanie całego katalogu w którym uruchomiony został klient odbywa się poprzez podanie ”.” (kropki) jako nazwy katalogu źródłowego i ewentualnie docelowego

#QCG stage-in-dir=. -> .
#QCG stage-in-dir=.
#QCG stage-in-dir=. -> input

stage-in-file

W przypadku braku drugiego parametru plik kopiowany jest pod nazwę źródłową.

#QCG stage-in-file=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/input.txt -> input.txt
#QCG stage-in-file=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/input.txt
#QCG stage-in-file=input_file.txt -> input.txt
#QCG stage-in-file=input_file.txt

stage-out-dir

#QCG stage-out-dir=results -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/${JOB_ID}
#QCG stage-out-dir=results -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/${JOB_ID}
#QCG stage-out-dir=results -> result
#QCG stage-out-dir=results

Skopiowanie całego katalogu w którym wykonane było zadanie odbywa się poprzez podanie ”.” (kropki) jako nazwy katalogu źródłowego.

#QCG stage-out-dir=. -> .
#QCG stage-out-dir=.
#QCG stage-out-dir=. -> output

stage-out-file

#QCG stage-out-file=results.txt -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/result.1
#QCG stage-out-file=results.txt
#QCG stage-out-file=result.txt -> ${JOB_ID}.result
#QCG stage-out-file=result.txt

use-reservation

#QCG use-reservation
#QCG walltime=PT2H

use-scratch

 

#QCG use-scratch

 

 

walltime

#QCG walltime=P3DT12H

watch-output

Składnia:

#QCG watch-output=consumer->konsument,[pattern->wyrazenie | script->skrypt ,delay->N]
#QCG watch-output=konsument

Dyrektywa ma następujące parametry:

#QCG watch-output=mailto:piontek@man.poznan.pl,pattern->ENERGY,dalay->60

#QCG watch-output=consumer->mailto:piontek@man.poznan.pl,script->skrypt_monitorujacy.sh,dalay->60
#QCG stage-in-file=skrypt_monitorujacy.sh

variable

#QCG variable=PROCESSES->10
#QCG procs=${PROCESSES}

 

Zmienne systemowe opisu zadania

W opisie zadania możliwe jest użycie następujących zmiennych "systemowych":

#QCG output={JOB_ID}.output
#QCG stage-out-file=file.output->file.${NOTE}

 

 

Obsługa zdalnych plików i katalogów

Pliki wejściowe jak i wyjściowe dla zadań zlecanych w systemie QCG mogą znajdować się na zdalnych zasobach. Broker infrastruktury QCG zadba o ich skopiowanie na odpowiedni zasób na którym będzie wykonywane nasze zadanie, a następnie skopiuje pliki wyjściowe do wskazanych lokalizacji.

Pliki wejściowe zadania definiowane są następującymi dyrektywami:

natomiast pliki wyjściowe dyrektywami:

W obu przypadkach, jako lokalizację takich plików można podać zdalny zasób. Obsługiwane są następujące protokoły przesyłania danych:

Tak jak w przypadku plików lokalnych, definiując zdalną lokalizację plików możemy używać zmiennych opisu zadania.

 

W chwili obecnej obsługa protokołu HTTP/HTTPS nie wspiera katalogów oraz  plików wyjściowych.

Przy kopiowaniu plików z użycie protokołu HTTPS nie następuje autoryzacja zdalnego serwera, tzn. transmisja danych następuję szyfrowanym kanałem danych, natomiast QCG-Broker nie sprawdza i nie waliduje certyfikatu jakim posługuje się zdalny serwer.

Składnia

Przykłady

gsiftp://qcg.man.poznan.pl/plik.txt
gsiftp://qcg.man.poznan.pl:2811///home/plgrid/plgkopta/reef/plik.txt

 

Przykłady

ftp://ftp.kernel.org/pub/linux/kernel/v3.x/patch-3.9.gz
ftp://pkopta:haslo@serwer.ftp.man.poznan.pl:22/plik.txt

 

Przykłady

https://www.kernel.org/pub/linux/kernel/v3.x/patch-3.9.gz

 

Przykłady

irods://pkopta:haslo@elder12/testZone/home/pkopta/plik.txt