In order to give an impression that an individual QCG-PilotJob task is executed directly by the queuing system a set of environment variables, typically set by the queuing system, is overwritten and passed to the job. These variables give the application all typical information about a job it can be interested in, e.g. the amount of assigned resources. In case of parallel application an appropriate machine file is created with a list of resources for each task. Additionally to unify the execution regardless of the queuing system a set of variables independent from a queuing system is defined and passed to tasks.
For the SLURM scheduling system, an execution environment for a single job contains the following set of variables:
SLURM_NNODES
- a number of nodesSLURM_NODELIST
- a list of nodes separated by the commaSLURM_NPROCS
- a number of coresSLURM_NTASKS
- seeSLURM_NPROCS
SLURM_JOB_NODELIST
- seeSLURM_NODELIST
SLURM_JOB_NUM_NODES
- seeSLURM_NNODES
SLURM_STEP_NODELIST
- seeSLURM_NODELIST
SLURM_STEP_NUM_NODES
- seeSLURM_NNODES
SLURM_STEP_NUM_TASKS
- seeSLURM_NPROCS
SLURM_NTASKS_PER_NODE
- a number of cores on every node listed inSLURM_NODELIST
separated by the comma,SLURM_STEP_TASKS_PER_NODE
- seeSLURM_NTASKS_PER_NODE
SLURM_TASKS_PER_NODE
- seeSLURM_NTASKS_PER_NODE
To unify the execution environment regardless of the queuing system the following variables are set:
QCG_PM_NNODES
- a number of nodesQCG_PM_NODELIST
- a list of nodes separated by the commaQCG_PM_NPROCS
- a number of coresQCG_PM_NTASKS
- seeQCG_PM_NPROCS
QCG_PM_STEP_ID
- a unique identifier of a job (generated by QCG-PilotJob Manager)QCG_PM_TASKS_PER_NODE
- a number of cores on every node listed inQCG_PM_NODELIST
separated by the commaQCG_PM_ZMQ_ADDRESS
- an address of the network interface of QCG-PilotJob Manager (if enabled)