Skip to content

New functions to create communicators from groups #93

@dholmes-epcc-ed-ac-uk

Description

@dholmes-epcc-ed-ac-uk

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.

References

PR: https://github.com/mpi-forum/mpi-standard/pull/44

Metadata

Metadata

Labels

wg-sessionsSessions Working Group

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions