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 ­­cpus­per­task=1 (the default) each
task is pinned to a single logical core as shown in Figure 3. In job steps with a ­­cpus­per­task 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 ­­cpus­per­task, 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