-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Problem
The MPI Sessions concept is a large fundamental change to MPI. This issue focuses on one part of the full proposal: creating a Communicator from a Group without a parent Communicator.
Proposal
Add a series of communicator creation functions, which take a parent MPI_Group as an input parameter instead of a parent MPI_Comm parameter. The new functions are collective over all MPI processes in the new output communicator (or, equivalently, over all MPI processes in the input group).
Changes to the Text
-
Add text to describe the following new communicator creation functions:
- MPI_Comm_Create_From_Group
- MPI_Intercomm_Create_From_Groups
- MPI_Cart_Create_From_Group
- MPI_Graph_Create_From_Group
- MPI_Dist_Graph_Create_From_Group
- MPI_Dist_Graph_Create_Adjacent_From_Group
-
Modify introduction text in the Collective chapter to refer to these new functions.
-
Modify introduction text in the Topology chapter to refer to these new functions.
Impact on Implementations
All of these new functions can be implemented by first creating a parent communicator containing the right processes, and then leveraging the existing communicator creation function that takes a parent communicator.
A parent communicator containing the right processes can be created using existing dynamic process functions (e.g. connect/accept).
It is expected that high quality implementations will use more efficient low-level functionality (possibly provided by the runtime or system environment) rather than this proof-of-concept approach.
Impact on Users
Users will be able to create any type/variant of communicator by defining the group of processes and supplying other needed information (such as topology information), without the need to create intermediate communicators.
This is new functionality so there is no backwards compatibility issue.