Hi all,
I am working on a computer with dual socket, 12 cores per socket nodes with enabled hyperthread.
Slurm version is 14.11.9 and the relevant configuration is:
TaskPlugin=task/affinity
TaskPluginParam=Cpusets
Cpuinfo shows cpus labelled as :
SOCKET 1 SOCKET 2
----------------------------------------------------------------------------------------
Core id | 00 01 02 03 04 05 06 07 08 09 10 11 | 00 01 02 03 04 05 06 07 08 09 10 11 |
-------- -------------------------------------- ---------------------------------------|
Thread 0 | 00 01 02 03 04 05 06 07 08 09 10 11 | 12 13 14 15 16 17 18 19 20 21 22 23 |
Thread 1 | 24 25 26 27 28 29 30 31 32 33 34 35 | 36 37 38 39 40 41 42 43 44 45 46 47 |
----------------------------------------------------------------------------------------
In order to launch 6 tasks in one socket only I run:
$ srun -N1 -n6 -B 1:3:2 --exclusive -p operation -o log hostname
assuming -B option wil set 1 sockets-per-node, 3 cores-per-socket and 2 thread-per-core
Nevertheless, the log file says that all 6 tasks have run in both sockets, cycliclly assigned:
cpu_bind=MASK - node001, task 0 0 [100602]: mask 0x1 set --> cpuid=00
cpu_bind=MASK - node001, task 1 1 [100603]: mask 0x1000 set --> cpuid=12
cpu_bind=MASK - node001, task 2 2 [100604]: mask 0x1000000 set --> cpuid=24
cpu_bind=MASK - node001, task 3 3 [100605]: mask 0x1000000000 set --> cpuid=36
cpu_bind=MASK - node001, task 4 4 [100606]: mask 0x2 set --> cpuid=01
cpu_bind=MASK - node001, task 5 5 [100607]: mask 0x2000 set --> cpuid=13
SOCKET 1 SOCKET 2
----------------------------------------------------------------------------------------
Core id | 00 01 02 03 04 05 06 07 08 09 10 11 | 00 01 02 03 04 05 06 07 08 09 10 11 |
-------- -------------------------------------- ---------------------------------------|
Thread 0 | x x | x x |
Thread 1 | x | x |
----------------------------------------------------------------------------------------
Am I misinterpreting how -B option works?
Regards,
Mam