8.2.1. Groups

Up: Basic Concepts Next: Contexts Previous: Basic Concepts

A group is an ordered set of MPI process identifiers (henceforth MPI processes); MPI processes are implementationdependent objects. Each MPI process in a group is associated with an integer rank. Ranks are consecutive and start from zero. Groups are represented by opaque group objects, and hence cannot be directly transferred from one MPI process to another. A group is used within a communicator to describe the participants in a communication ``universe'' and to rank such participants (thus giving them unique names within that ``universe'' of communication).

There is a special pre-defined group: MPI_GROUP_EMPTY, which is a group with no members. The predefined constant MPI_GROUP_NULL is the value used for invalid group handles.

Advice to users.

MPI_GROUP_EMPTY, which is a valid handle to an empty group, should not be confused with MPI_GROUP_NULL, which in turn is an invalid handle. The former may be used as an argument to group procedures; the latter is not a valid input value for an input argument. ( End of advice to users.)

Advice to implementors.

Simple implementations of MPI will enumerate groups, such as in a table. However, more advanced data structures make sense in order to improve scalability and memory usage with large numbers of MPI processes. Such implementations are possible with MPI. ( End of advice to implementors.)

Up: Basic Concepts Next: Contexts Previous: Basic Concepts

Return to MPI-4.1 Standard Index
Return to MPI Forum Home Page

(Unofficial) MPI-4.1 of November 2, 2023
HTML Generated on November 19, 2023