The latest (v1.8.3
) OpenMPI documentation specifies that rankfiles must now use the logical cpu IDs reported by hwloc
rather than the physical IDs, see the last sentence in the Rankfiles
section of the mpirun
documentation here:
Starting with Open MPI v1.7, all socket/core slot locations are be specified as logical indexes (the Open MPI v1.6 series used physical indexes). You can use tools such as HWLOC’s "lstopo" to find the logical indexes of socket and cores.
I've noticed a few questions on this site (notably this question and the answer to this question) that indicate that one can specify physical cpu ids in an openMPI rankfile by prefixing the id with a p
. For example:
rank 0=localhost slot=p0
rank 1=localhost slot=p8
rank 2=localhost slot=p1
rank 3=localhost slot=p9
To request physical cpu id 0
for rank 0
, physical cpu id 8
for rank 1
etc...
I've tried searching for this syntax in the OpenMPI docs to no avail. I've also tried to have someone actually try constructing a rankfile this way in OpenMPI 1.6.4
, which he reported also doesn't work.
What version(s) of OpenMPI does this syntax work with? Is it documented anywhere? What is the formal syntax?