application

application - name and optionally version of the application to be executed

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

argument

argument - argument of the application. The directive can be used many times, once for every argument.

#QCG argument=arg1
#QCG argument=arg2

assistant

assistant - starts in parallel to the main application the auxiliary script that will be terminated automatically with the end of the task. The script can be used for example to monitor output of the application or to do perform any additional action. The directive was introduced in the 3.4 version and replaced the monitoring directive which meaning has changed.

Syntax:

#QCG assistant=script.sh
#QCG assistant=script->script.sh

Parameters:

  • script - mandatory, default parameter defining the script to be executed. The file must be transfered using the #QCG stage-in-file directive.
    #QCG assistant=script.sh
    #QCG stage-in-file=script.sh
    

IMPORTANT: The script is executed once at the beginning of the main application. If any action is expected to be executed periodically it must be programmed inside the script by the user.

deadline

deadline - deadline for the task execution. The directive specifies, that the task has to be finished within defined period of time.

The directive results in using the advance reservation to guarantee the requested quality of service.

The directive cannot be used in conjunction with the reservation and not-after directives.

The argument of the directive is the time period defined in the PnYnMnDTnHnMnS (ISO 8601) format. For details please see the walltime directive.

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

environment

environment - environment variable. The syntax is key -> value. Every variable has be be specified in separate directive.

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

error

error - location where the system is requested to stage out the file containing output of the standard error stream. If the location is not the gsiftp:// url it is assumed that it is relative to the directory from which the task was submitted.

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

executable

executable - location of the executable file. The location can be the gsiftp:// url or the path to the file. In the second case the location is relative to the directory from which the task was submitted. Optionally it is possible to specify the target name of the file.

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

grant

grant - name of the grant, in scope of which the task is executed

#QCG grant=plgpiontek_grant

host

host - name of the candidate host, which the task/reservation can be executed/made on. The directive can appear many times to express OR alternative.

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

include

include - directive allowing to include file into description. Supported are relative and absolute paths.

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

input

input - location of the file which content will be passed to the standard input stream. If the location is not the gsiftp:// url it is assumed that it is relative to the directory from which the task was submitted.

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

memory

memory - declaration of the maximal amount of memory that can be allocated by the application (in MB).

#QCG memory=1024

memory-per-slot

memory-per-slot - declared maximal amount of the memory per slot (core). The total memory requirement is the product of this value and the number of slots (cores) used by the application.

#QCG memory-per-slot=512

module

module - name with optional version of the requested software module. This directive is taken into consideration by the broker in the process of choosing the optimal resource which the task can be executed on. Every module has to be specified in separate directive.

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

monitor

monitor - the directive allowing to monitor the progress and status of the application in the QCG-Monitoring service.

IMPORTANT:" The meaning of the monitoring directive has changed in the version 3.4 of the QCG-SimpleClient?. The previous functionality is available by using the #QCG assistant directive.

Syntax:

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

For the applications having only one monitoring schema the directive can be parameterless.

#QCG monitor

To define the monitoring schema or the script implementing the monitoring functionality, the script parameter is dedicated. The script parameter is the default one. Providing its own monitoring script requires it to be transfered using the #QCG stage-in-file directive.

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

The frequency of script execution is defined by the delay parameter which value defined time is seconds between next executions of the script. The notification is sent only when a content of the notification has changed from the previous iteration.

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

=mount=

  • mount - the directive automatically mounts for the task the defined data management system. At the moment only the veilFS system is supported (PL-Grid specific).
#QCG mount=veilfs[->directive]

The optional directive argument defines the location in which the system is mounted. The default value is mount.

#QCG mount=veilfs->veilFS_dir

name

name - human readable name of the task. The name will appear as part of the job identifier.

#QCG name=nobel-experiment

native

native - parameters/requirements passed directly to the queueing system in the queueing system specific format. This directive should be used together with the host one.

Example for the PBS queueing system: (-r y|n Declares whether the job is rerunable.)

#QCG native=-r n

nodes

nodes - requested topology of the parallel application. The directive allows to specify requested number of nodes and slots per node. Optionally it is possible to specify number of processes to be started on every node. If it is not specified else the number of processes on every node is equal to the number of slots. The syntax is: number_of_nodes:number_of_slots[:number_of_processes]

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

not-after

not-after - directive allowing to specify that the task or reservation has to be executed/reserved "not-later-then". The value of this directive is date with optional time. The directive requires to be specified together with the walltime one and cannot be used with the reservation one.

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

not-before

not-before - directive allowing to specify that the task or reservation has to be executed/reserved "not-earlier-then". The value of this directive is the date with optional time. The directive requires to be specified together with the walltime one and cannot be used with the reservation one.

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

note

note - human readable description of the task

#QCG note=my first QCG task

notify

notify - notify about changes of task status. The directive allows to define the protocol and address to which the notification about the change of the status should be sent. Supported protocols are mail and xmpp/jabber messages.

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

To allow receiving xmpp/jabber messages it can be necessary to add the qcg-notification@… sender address to contacts.

output

output - location where the file containing the standard output should be transfered. The location can be the gsiftp:// url or the path relative to the directory from which the task was submitted.

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

parameter-sweep

parameter-sweep - allows to define name of the variable and a space of the parameter values for this variable. The directive can be used many times defining multi-dimensional space of parameters. For every parameters' combination a separate task is launched.

Syntax:

#QCG parameter-sweep=VAR->PARAMETER_SPACE

The following types of definition are supported:

  • list - list of comma-separated values
    #QCG parameter-sweep=var->list:mon,tue,wed,thu,fri,sat,sun
    #QCG parameter-sweep=var->list:1,2,3,4,5,6
    
  • for - values change from start upto end with the step step. Default step is 1. Number decimal digits of the value is equal to the maximal number of decimal digits of start, end, step values.

Syntax:

#QCG parameter-sweep=var->for:start..end
#QCG parameter-sweep=var->for:start..end..step
#QCG parameter-sweep=var->for:0..10
#QCG parameter-sweep=var->for:0..10..2
#QCG parameter-sweep=var->for:1.0..2.0..0.5
  • pattern - values are names of the files matching the given pattern.
    #QCG parameter-sweep=var->pattern->*.input
    
  • file - values are taken from next lines of the given file.
    #QCG parameter-sweep=var->file:file_with_values.txt
    

persistent

persistent - the directive informing the system to not remove the working directory.

IMPORTANT: the directive should be used only for testing as it causes that the working directory is left and consumes storage resource. The working directory can be later cleaned by the qcg-clean command.

#QCG persistent

postprocess

postprocess - task epilog. The value of the directive can be command or path to the script which is executed when the main task finish.

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

preprocess

preprocess - task prolog. The value of the directive can be command or path to the script which is executed before the main task.

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

procs

procs - number of requested slots/processes for parallel tasks.

#QCG procs=32

properties

properties - node properties. Defines requested properties of the node which the task can be executed on.

#QCG properties=mpi,ib,lustre

queue

queue - queue which the task should be submitted to.

#QCG queue=plgrid

reservation

reservation - reservation identifier. The identifier can be of the local type when the reservation was made directly in the queueing system or of the qcg one (default) when the reservation was created by the qcg-reserve command. The directive requires to be used together with the host one to ensure that the task will be submitted to the host where the reservation was done.

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

stage-in-dir

stage-in-dir - input directory. The location of the input directory which can be either the gsiftp:// url or the path to the directory relative to the directory from which the task was submitted. The syntax is "location" -> "target name". If the "target name" is not present the directory is stored under its original name.

#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

To stage in the whole directory which the task was submitted from please use the "." (dot) as a location.

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

stage-in-file

stage-in-file - input file. The location of the input file which can be either the gsiftp:// url or the path to the directory relative to the directory which the task was submitted from. The syntax is "location" -> "target name". If the "target name" is not present the file is stored under its original name.

#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

stage-out-dir - output directory. The location of the output directory which can be either the gsiftp:// url or the path to the directory relative to the directory which the task was submitted from. The syntax is "location" -> "target name". If the "target name" is not present the directory is stored under its original name.

#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

To transfer the whole working directory please specify the location as "." (dot).

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

stage-out-file

stage-out-file - output file

The location of the output file which can be either the gsiftp:// url or the path to the file relative to the directory which the task was submitted from. The syntax is "location" -> "target name". If the "target name" is not present the file is stored under its original name.

#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

use-reservation - use the advance reservation mechanism. The directive allows to force the system to use advance reservation in case when directives not-after, not-before, deadline were not used. The directive requires to be used together with the walltime one. The directive cannot be used together with the reservation one.

#QCG use-reservation
#QCG walltime=PT2H

use-scratch

use-scratch - use the scratch space. The directive forces the system to use the scratch space if possible.

#QCG use-scratch

walltime

walltime - execution duration. The directive specifies declared by the user duration of the task execution or resources reservation.

The argument of the directive is the time period defined in the PnYnMnDTnHnMnS (ISO 8601) format, where:

  • P - mandatory character,
  • nY - number of years,
  • nM - number of months,
  • nD - number of days,
  • T - time definition separator character (must be present if the values below are used)
  • nH - number of hours,
  • nM - number of minutes,
  • nS - number of seconds.
#QCG walltime=P3DT12H

watch-output

  • watch-output - dirrective allowing to monitor the application output and sending notification messages.

IMPORTANT: - starting frome the QCG 3.4 version the syntax of the directive has changed.

Syntax:

#QCG watch-output=consumer->consumer_url,[pattern->pattern_value | script->script_name ,delay->N]
#QCG watch-output=consumer_url

Parameters:

  • consumer - mandatory, default parameter specifying the notification consummer. (supported protocols are: mail i xmpp - see: notify directive)
  • pattern or script - parameter specifying either the pattern (regular expression) or the whole monitoring script. In both cases the output is sent to the consumer. In the case of the script it has to be transfered using the #QCG stage-in-file directive.
  • delay - time in seconds between next invocations of the monitoring procedure. The message is sent only when the output has changed from the previous interation.
#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

variable - description variable (replaced only in values of QCG directives)

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

variable - description variable (replaced only in values of QCG directives)