What is the difference between ranks and processes in MPI?

前端 未结 3 2049
你的背包
你的背包 2021-02-05 23:46

What is the difference between ranks and processes in MPI?

3条回答
  •  情话喂你
    2021-02-05 23:50

    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.

提交回复
热议问题