Replies: 2 comments
-
Might want to explain that CID stands for communication identifier used in Open MPI. |
Beta Was this translation helpful? Give feedback.
0 replies
-
The v5.0.x PR #349 included this use case. The issue will remain open for further discussion on this topic. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Brief Description
MPI Sessions addresses a number of the limitations of the current MPI programming model. Among the immediate problems MPI Sessions is intended to address are the following:
With MPI Sessions, an application no longer needs to explicitly call MPI_Init to make use of MPI, but rather can use a Session to only initialize MPI resources for specific communication needs. Unless the MPI process explicitly calls MPI_Init, there is also no explicit MPI_COMM_WORLD communicator. Sessions can be created and destroyed multiple times in an MPI process.
Use Case Details
Steps to create MPI Communicator from a Session Handle are shown below:
A PMIx Process Set is a user-provided or host environment assigned
label associated with a given set of application processes. Processes can
belong to multiple process sets at a time. Definition of a PMIx
process set typically occurs at time of application execution - e.g., on a
command line:
prun -n 4 --pset ocean myoceanapp : -n 3 --pset ice myiceapp
PMIx PSETs are used for query functions (MPI_SESSION_GET_NUM_PSETS,
MPI_SESSION_GET_NTH_PSET) and to create MPI_GROUP from a process set name.
Interfaces
Attributes/Directives
PMIx groups are used during creation of MPI_COMM from an MPI_GROUP. The PMIx group constructor returns a 64-bit PMIx Group Context Identifier (PGCID) that is
guaranteed to be unique for the duration of an allocation (in the case of a batch managed
environment). This PGCID could be used as a direct replacement for the existing unique identifiers for communicators in MPI (E.g. Communicator Identifiers (CIDs) in Open MPI), but may have performance implications.
There is an important distinction between process sets and process groups. The process set identifiers are set by the host environment and currently there are no PMIx APIs provided by which an application can change a process set membership. In contrast, PMIx process groups can only be defined dynamically by the application.
Interfaces
Return Values
Attributes/Directives
References
PMIx PR Modify Process Set Definition (Modify process set definitions #258)
MPI Sessions: Second Demonstration and Evaluation of MPI Sessions Prototype (STPM13/OMPIX/13-35)
Beta Was this translation helpful? Give feedback.
All reactions