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