Version 1 (modified by minondoa, 6 years ago) (diff)


Job Description

This section will explain how to create a template with which to configure DRM4G's jobs.


<VARIABLE> = ["]<VALUE>["]

Template options

  • NAME: Name of the job (filename of the Job Template by default).
  • EXECUTABLE: The executable file.
  • ARGUMENTS: Arguments to the above executable.
  • NP: The number of processors to be allocated to a job.
  • INPUT_FILES: A comma-separated pair of local/remote filenames. If the remote filename is missing, the local filename will be preserved in the execution host.
  • OUTPUT_FILES: A comma-separated pair of remote/local filenames. If the local filename is missing, the remote filename will be preserved in the client host.
  • STDIN_FILE: Standard input file.
  • STDOUT_FILE: Standard output file. By default is stdout.${JOB_ID}.
  • STDERR_FILE: Standard error file. By default is stderr.${JOB_ID}.
  • REQUIREMENTS: A boolean expression evaluated for each available host, if the evaluation returns true the host will be considered to submit the job.
  • ENVIRONMENT: User defined, comma-separated environment variables.

Requirement Expressions


The syntax of the requirement expressions is defined as:

stmt::= expr
         | VARIABLE '>' INTEGER
         | VARIABLE '<' INTEGER
         | VARIABLE '=' STRING
         | expr '&' expr
         | expr '|' expr
         | '!' expr
         | '(' expr ')'

Each expression is evaluated to 1 (True) or 0 (False). Only those hosts for which the requirement expression is evaluated to True will be considered to execute the job.

Logical operators are as expected ( less '<', greater '>', '&' AND, '|' OR, '!' NOT), '=' means equals with integers. When you use '=' operator with strings, it performs a shell wild-card pattern matching.


The REQUIREMENTS values are:

  • HOSTNAME: Execution host (e.g. mycomputer).
  • ARCH:Architecture of the execution host (e.g. i686, x86_64).
  • LRMS_TYPE: Type of local DRM system for execution (e.g. pbs, sge).
  • QUEUE_NAME: Name of the queue (e.g. default, short).
  • QUEUE_MAXTIME:Maximum wall time of jobs in the queue.
  • QUEUE_MAXCPUTIME:Maximum CPU time of jobs in the queue.
  • QUEUE_MAXCOUNT:Maximum count of jobs that can be submitted in one request to the queue.
  • QUEUE_MAXRUNNINGJOBS:Maximum number of running jobs in the queue.
  • QUEUE_MAXJOBSINQUEUE:Maximum number of queued jobs in the queue.


REQUIREMENTS = LRMS_TYPE = "pbs"                   # Only use pbs
REQUIREMENTS = HOSTNAME = "*.es"                   # Only hosts ending in ".es"
REQUIREMENTS = HOSTNAME = "mycomputer"             # Only use mycomputer
REQUIREMENTS = ARCH = "x86_64"                     # Only host x86_64 architecture 
REQUIREMENTS = ARCH = "x86_64" & HOSTNAME = "*.es" # Only hosts ending in ".es" and have x86_64 architecture

Environment Expressions


The syntax of the environment expressions is specified in a comma-separated, source/destination pair:



The variables defined in the ENVIRONMENT are:

  • PPN: Specify the number of processors per node requested for the job.
  • CPUTIME:Maximum amount of CPU time used by all processes in the job (HH:MM:SS).
  • WALLTIME:Maximum amount of real time during which the job can be in the running state (HH:MM:SS).
  • MEMORY:Maximum amount of physical memory used by the job (MB).


ENVIRONMENT = WALLTIME = 00:01:00                # 60 seconds of max walltime
ENVIRONMENT = WALLTIME = 00:01:00, MEMORY = 2000 # 60 seconds of max walltime and 2 GB of RAM memory