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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to