Alex Rivera | Logout

What is the difference between ranks and processes in MPI?

Asked 2011-03-22T23:26:17.583
21

What is the difference between ranks and processes in MPI?

mpi
Edit
Report

1 Answer

23

Here is the resource I learned all my MPI from, you might find it useful.

As to your question: processes are the actual instances of the program that are running. MPI allows you to create logical groups of processes, and in each group, a process is identified by its rank. This is an integer in the range [0, N-1] where N is the size of the group. Communicators are objects that handle communication between processes. An intra-communicator handles processes within a single group, while an inter-communicator handles communication between two distinct groups.

By default, you have a single group that contains all your processes, and the intra-communicator MPI_COMM_WORLD that handles communication between them. This is sufficient for most applications, and does blur the distinction between process and rank a bit. The main thing to remember is that the rank of a process is always relative to a group. If you were to split your processes into two groups (e.g. one group to read input and another group to process data), then each process would now have two ranks: the one it originally had in MPI_COMM_WORLD, and one in its new group.

answered 2011-03-22T23:50:00.520

Your Answer