Description
Problem
The standard functionality is not complete; some non-blocking now, some not.
Proposal
I. As a baseline goal, these functions will be proposed for addition to MPI-3.x:
Groups, Contexts, Communicators, and Caching Chapter:
Non-blocking:
1. both intra-comm and inter-comm
* MPI_COMM_ISPLIT
* MPI_COMM_ISPLIT_TYPE
* MPI_INTERCOMM_IMERGE
* MPI_INTERCOMM_ICREATE
* MPI_COMM_ICREATE
2. intra-comm only:
* MPI_COMM_ICREATE_GROUP
3. Destructor category:
* MPI_COMM_IFREE (see also MPI_COMM_IDISCONNECT)
4. Other:
* MPI_COMM_ISET_INFO
II. Topology chapter variants to be added to comment.
* MPI_CART_ICREATE
* MPI_GRAPH_ICREATE
* MPI_DIST_GRAPH_ICREATE
* MPI_DIST_GRAPH_ICREATE_ADJACENT
III. I/O Chapter
- Non-block constructor:
- MPI_FILE_IOPEN
- Non-blocking destructor:
- MPI_FILE_ICLOSE
- Other file-level operations:
- MPI_FILE_IDELETE
- MPI_FILE_ISETSIZE
- MPI_FILE_IPREALLOCATE
- Maybe (because they are collective):
- MPI_FILE_ISET_INFO
- MPI_FILE_ISET_VIEW
IV. Add non-blocking destructor to the "Process Creation and Management Chapter" (DPM)
- MPI_COMM_IDISCONNECT
and clarify that both MPI_COMM_DISCONNECT and MPI_COMM_IDISCONNECT work on intracommunicators as well as intercommunicators.
Note: Dynamic process management functions (MPI_COMM_ACCEPT, MPI_COMM_CONNECT, MPI_COMM_SPAWN, MPI_COMM_SPAWN_MULTIPLE) are defined in the related Ticket #81. However, there is no proposed nonblocking equivalent for MPI_JOIN; see #13 for the proposal to deprecate MPI_COMM_JOIN, which is why we don't offer the nonblocking version in Ticket #81.
Other than the intentional duplication of MPI_COMM_IDISCONNECT with Ticket #81, this ticket is complementary to the remainder of Ticket #81 and #82
Changes to the Text
The chapters will be modified to provide explanations, definitions, and rationale for these added functions.
Impact on Implementations
This will require implementations to add these new functions; they are analogous to other functions already in the standard, and each should be incremental work.
Note: other proposals, such as for fault-tolerance, are exploring analogs to functions in this Chapter to be added by this proposal but missing in current MPI. A recent Fault Tolerance WG discussion revealed these omissions and opportunities for making MPI support fully nonblocking libraries and components more fully.
Impact on Users
Users will be able to write better and more completely nonblocking MPI programs and libraries. The design of the MPI standard will be more "orthogonal."
References
https://github.com/mpi-forum/mpi-standard
The associated PR is at: mpi-forum/mpi-standard#48
The RMA form of this proposal is Ticket #82
Metadata
Metadata
Assignees
Type
Projects
Status