--map-by ppr:n:unit and --map-by ppr:n:unit:pe=n options
The ppr (processes per resource) mode is a convenient shortcut for specifying the number of processes to run on each resource (a socket, for example).
The purpose of ppr:n:socket option is to launch n ranks on each socket. The purpose of the ppr:n:socket:pe=m option is to launch n ranks per socket, with each rank using m cores.
This following restrictions apply to ppr mode:
- It will only launch if the slot count is high enough to satisfy the ppr instruction. For example, if enough processes are being started to put n on each socket.
- The cluster must be fairly homogeneous in order to be able to meaningfully specify a single number as the ranks per socket.
In the --map-by unit:PE=n and --map-by slot:PE=n options topic, special
considerations were given to the launching method because the number of slots used was not
one-per-process. However with ppr, slots are not taken into account other than the requirement that
enough slots exist to satisfy the specified processes per resource
instruction.
% mpirun -host hostA:4,hostB:4 --map-by ppr:2:socket:pe=2 ...
R0 hostA [BB/BB/../../../../../..][../../../../../../../..]
R1 hostA [../../BB/BB/../../../..][../../../../../../../..]
R2 hostA [../../../../../../../..][BB/BB/../../../../../..]
R3 hostA [../../../../../../../..][../../BB/BB/../../../..]
R4 hostB [BB/BB/../../../../../..][../../../../../../../..]
R5 hostB [../../BB/BB/../../../..][../../../../../../../..]
R6 hostB [../../../../../../../..][BB/BB/../../../../../..]
R7 hostB [../../../../../../../..][../../BB/BB/../../../..]