Trying to bind an Open MPI rank to every core on a NUMA node machine.
The machine has 2 nodes, each with 12 cores.
The nodes doesnt have name, so I'm not able to do --host a:12,b:12
Also I want to bind extra ranks deterministically onto specific cores, how to do it when oversubscribe?
First question is: How to bind 24 ranks onto NUMA node cores? With one rank per core
mpirun -n 24 --bind-to numa --report-bindings ./app
This command will return There are not enough slots available in the system, while if I do lscpu, the output says CPU(s): 24, NUMA node(s): 2
Second question is: If I want to bind 27 ranks (oversubscribe) on the same NUMA machine, how to do it deterministically? When I want to oversubscribe 3 ranks, how to do it so that the extra 3 ranks will always bind to the same 3 cores each time I run the application?
With
-cpu-liston a 32 physical core NUMA node, [0-23]cpu-listwill only bind 16 cores. Adding--use-hwthread-cpuswill allocate MPI ranks to [0-23] as it is.