Execution environments
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.
Slurm execution environment
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_NPROCSSLURM_JOB_NODELIST- seeSLURM_NODELISTSLURM_JOB_NUM_NODES- seeSLURM_NNODESSLURM_STEP_NODELIST- seeSLURM_NODELISTSLURM_STEP_NUM_NODES- seeSLURM_NNODESSLURM_STEP_NUM_TASKS- seeSLURM_NPROCSSLURM_NTASKS_PER_NODE- a number of cores on every node listed inSLURM_NODELISTseparated by the comma,SLURM_STEP_TASKS_PER_NODE- seeSLURM_NTASKS_PER_NODESLURM_TASKS_PER_NODE- seeSLURM_NTASKS_PER_NODE
QCG Execution environment
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_NPROCSQCG_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_NODELISTseparated by the commaQCG_PM_ZMQ_ADDRESS- an address of the network interface of QCG-PilotJob Manager (if enabled)