program should pick up the SLURM_JOBID environment variable. The SLURM_JOBID has the information LSF-HPC needs to run the job on the nodes required by your preexecution program.

The following items provide the information you need to run the preexecution program on the resource manager node, on the first allocated node, or on all the allocated nodes:

Table 5-1

To run a preexecution program on the resource manager node:

This is the default behavior. Run the pre-execution program normally.

Your preexecution does not need to make use of the SLURM_JOBID environment variable.

To run a preexecution program on the first allocated node:

Use the SLURM srun -N 1 command. For example:

 

$

/opt/hptc/bin/srun-N 1 my_pre_exec

To run a preexecution program on all allocated nodes:

Use the SLURM srun directly without node options. For example:

 

$

/opt/hptc/bin/srun

my_pre_exec

NOTE Do not use the srun -bcommand (for SLURM batch mode) inside preexecution programs. The srun -bcommand returns immediately after a SLURM batch job is submitted. This can cause the preexecution program to exit with success while the real task is still running in batch mode.

See the SLURM srun(1) manpage for more information about the srun command, its options, and the SLURM_JOBID environment variable.

52 Submitting Jobs