I'm trying to run a multi-node job but I want to map all of the
processes to cores on socket #0 only.
I'm having a hard time figuring out how to do this, the obvious combinations
mpirun -n 8 -npernode 4 -report-bindings ...
mpirun -n 8 -npernode 4 --map-by core -report-bindings ...
mpirun -n 8 -npernode 4 -cpu-set S0 -report-bindings ...
mpirun -n 8 --map-by ppr:4:node,ppr:4:socket -report-bindings ...
mpirun -n 8 -npernode 4 -bind-to slot=0:0,2,4,6 -report-bindings ...
mpirun -n 8 -npernode 4 -bind-to slot=0:0,0:2,0:4,0:6
-report-bindings ...
mpirun -n 8 -npernode 4 --map-by core:PE=2 -bind-to core
-report-bindings ...
all are reported as having conflicting resource requirements.
Is there a way to specify this on the command-line?
I've looked at the docs on hostfiles & rankfiles, and it looks like they
require me to hard-code the names of all the nodes I'm using.
To me, this doesn't make sense on modern clusters, why don't they just
associate an index with each assigned node?
That way the mapping files would be agnostic of the actual node names.
Thanks,
Carl
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may
contain
confidential information. Any unauthorized review, use, disclosure or
distribution
is prohibited. If you are not the intended recipient, please contact the
sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------