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
smime.p7s
Description: S/MIME cryptographic signature