Hi,
Running Intel MPI 4.1.3
Contrary to the user guide, which states for the default round-robin mapping,
To change this default behavior, set the number of processes per host by using the -perhost option, and set the total number of processes by using the -n option. See Local Options for details. The first <# of processes> indicated by the -perhost option is executed on the first host; the next <# of processes> is executed on the next host, and so on.
, when I try to run on 2 nodes and I_MPI_DEBUG=4, I see
[cchang@n0290]$ mpirun -n 4 -perhost 2 ./hello_MPIMP_multinode
[0] MPI startup(): Rank Pid Node name Pin cpu
[0] MPI startup(): 0 54622 n0290 {0,1,2,3,4,5,6,7,8,9,10,11}
[0] MPI startup(): 1 53310 n0289 {0,1,2,3,4,5,6,7,8,9,10,11}
[0] MPI startup(): 2 54623 n0290 {12,13,14,15,16,17,18,19,20,21,22,23}
[0] MPI startup(): 3 53311 n0289 {12,13,14,15,16,17,18,19,20,21,22,23}
Hello world: rank 0 of 4, thread 0 of 1 on n0290
Hello world: rank 2 of 4, thread 0 of 1 on n0290
Hello world: rank 1 of 4, thread 0 of 1 on n0289
Hello world: rank 3 of 4, thread 0 of 1 on n0289
Both the I_MPI_DEBUG and the actual test program output confirm that round-robin scheduling is being done.
I can't seem to change this with any combination of -perhost #, or -grr #. I can create a machinefile that specifies the number of ranks per node and it will map as desired, but I'm guessing I should be able to do this simply from the mpirun command. How is this done?
Thanks; Chris