Download JURECA
Transcript
Slurm allows users to modify the process binding by means of the cpu_bind option of srun. While the available options of srun are standard across all Slurm installations, the implementation of process affinity is done in plugins and thus may differ between installations. On JURECA a custom pinning implementation is used. In contrast to other options, the processor affinity options need to be directly passed to srun and must not be given to sbatch or salloc. In particular, the option cannot be specified in the header of a batch script. Note: The option cpu_bind=cores is not supported on JURECA and will be rejected. Default processor affinity Since the majority of applications benefit from strict pinning that prevents migration - unless explicitly prevented - all tasks in a job step are pinned to a set of cores which heuristically determines the optimal core set based on the job step specification. In job steps with cpuspertask=1 (the default) each task is pinned to a single logical core as shown in Figure 3. In job steps with a cpuspertask count larger than one (e.g., threaded applications), each task/process will be assigned to a set of cores with cardinality matching the value of cpuspertask, see Figure 4. Figure 3. In Figure 3 we have the visualization of the processor affinity of a 48 tasks job-step on a single JURECA node. Each column corresponds to a logical core and each row to a task/process. A red dot indicates that the task can be scheduled on the corresponding core. For the purpose of presentation, stars are used to highlight cores/tasks 0, 6, 12, 18, ...42. 17