Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] How to determine MPI rank/process number local to a socket/node
From: Frank (frank.t.winter_at_[hidden])
Date: 2012-01-26 12:51:01

Say, I run a parallel program using MPI. Execution command

mpirun -n 8 -npernode 2 <prg>

launches 8 processes in total. That is 2 processes per node and 4
nodes in total. (OpenMPI 1.5). Where a node comprises 1 CPU (dual
core) and network interconnect between nodes is InfiniBand.

Now, the rank number (or process number) can be determined with

int myrank;
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);

This returns a number between 0 and 7.

But, How can I determine the node number (in this case a number
between 0 and 3) and the process number within a node (number between
0 and 1)?

You can find this question on stackoverflow (if you prefer to answer
through their interface):