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): http://stackoverflow.com/questions/9022496/how-to-determine-mpi-rank-process-number-local-to-a-socket-node Best,