-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Problem
With the introduction of Sessions we require datatypes to exist across session boundaries, including the destruction of the last session and the creation of a new one. However, datatype operators are not allowed to be called outside of sessions. That is inconsistent and makes datatypes effectively zombies that cannot be destroyed once the last session is gone. At the same time, datatypes don't hang off any other object (sessions, communicators, etc).
In an AtoI in Section 5.1.9 we state:
The optimizations chosen during MPI_TYPE_COMMIT may no longer be optimal if a
session (or the World Model) is initialized or finalized.
In essence: creating a session to create a datatype for another session (an argument brought forward in past discussions) is a futile exercise.
Proposal
Add the MPI datatype functions to Table 11.1 to allow applications to create and destroy datatypes outside of sessions or the initialization of the WPM.
Changes to the Text
TBD
Impact on Implementations
Datatypes become true first-level objects that may require access to global internal state. Implementations will may have to retain some global state for datatypes.
Impact on Users
Datatypes not requiring sessions for creation and destruction opens new opportunities: third-party libraries (and language-bindings) can create datatypes at any time, regardless of the state of the MPI library.
References and Pull Requests
TBD