Exclusive option for job step

On Shaheen, the nodes are by default exclusive, the job allocation cannot share nodes with other running jobs from other users. This option is in general used for the node allocation.

This option can also be used when initiating more than one job step within an existing resource allocation, where you want separate processors to be dedicated  to  each  job step in order to get adequate performance. If  sufficient  processors are not available to initiate the job step, it will be deferred. This can be thought of as providing a mechanism for resource management to the job within its allocation.

All  cores allocated to a job are available to each job step in the node unless the --exclusive option is used plus task affinity is configured along with --ntasks option must be specified. A reminder, the & and wait must be specified too. Here is an example:

srun  --hint=nomultithread  --ntasks=4 --exclusive   ./exe_mycode &
srun  --hint=nomultithread  --ntasks=4 --exclusive   ./exe_mycode &
srun  --hint=nomultithread  --ntasks=4 --exclusive   ./exe_mycode &
wait