You need to use the sequential mapper instead of the default round- robin one. Set -mca rmaps seq on your cmd line. We will then assign ranks to nodes in sequential order based on the hostfile entries.

On Sep 4, 2009, at 11:25 AM, Karl, Robert (RKARL) wrote:

I am attempting force certain processes to run on specific nodes due to the I/O cards that are attached to the specific CPU motherboards (not all boards have the same I/O cards). I am using the -bynode and --hostname options to
specify the nodes that I want the processes to run on.  There are 4
processors (nodes) per motherboard. I would like to be able to change the motherboard each processor executes on simply by editing the host file to
change the ordering of the nodes in the host file.

For example:
I want process 0, 1 and 4 to run on node0 and process 2 and 3 to run on
node1.

shell$ cat my-hosts
node0 slots=4
node0 slots=4
node1 slots=4
node1 slots=4
node0 slots=4

shell$ mpirun --hostfile my-hosts -np 5 --bynode

What I end up with is process 1& 3 running on node0 and process 0,2,4 running
on
node1. I suspect that MPI does not like having the same node multiple times in the host file. It appears that only the last 2 entries of the host file are being used and then the processes are being assigned in a round robin fashion by node. Is what I'm doing legal? Any suggestions to achieve the intended results (which is to be able to force an arbitary process to run on
an arbitary node)?

Thanks,

Bob
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to