You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The new MPI_Status_{get,set}_{source,tag,error routines added to MPI 4.1 are are really trivial and intended as a replacement for direct attribute access for the convenience of those using MPI from foreign languages. As Status attribute access, either in C or in Fortran, is something that can be done to initialise a status object before MPI_Init[_thread] and after MPI_Finalize, it would be reasonable to allow MPI_Status_{get,set}_{source,tag,error} to be called outside the init/finalize bracket.
Proposal
Explicitly allow MPI_Status_{get,set}_{source,tag,error} to be called before MPI_Init[_thread] and after MPI_Finalize.
Changes to the Text
Clarify the fact that these routines can be called before/after init/finalize. As rationale, mention that they can be used for early/default initialization of Status objects in constructors of object-oriented programming languages.
Add these routines to Table 11.1
Impact on Implementations
None. These routines are simple attribute getters/setters and do not depend on other internal MPI implementation machineries with the exception of error handling for argument. Note that handling of MPI errors on bad argument values (e.g. NULL pointers) outside init/finalize is something that MPI-40 implementations already have to support.
Impact on Users
Authors or MPI bindings for other programming languages will be able to initialize Status objects at any point, outside of the init/finalize bracket.
I think this should be a chapter committee change and made it into 4.1 because these functions are defined to be equivalent to load/store operations and therefore obviously satisfy the requirement.
If this were to go into 4.1 at this point, it would need to have a PR today and pass a no-no vote at the next meeting. This is more likely a 4.2 change.
Problem
The new
MPI_Status_{get,set}_{source,tag,error
routines added to MPI 4.1 are are really trivial and intended as a replacement for direct attribute access for the convenience of those using MPI from foreign languages. As Status attribute access, either in C or in Fortran, is something that can be done to initialise a status object beforeMPI_Init[_thread]
and afterMPI_Finalize
, it would be reasonable to allowMPI_Status_{get,set}_{source,tag,error}
to be called outside the init/finalize bracket.Proposal
Explicitly allow
MPI_Status_{get,set}_{source,tag,error}
to be called beforeMPI_Init[_thread]
and afterMPI_Finalize
.Changes to the Text
Impact on Implementations
None. These routines are simple attribute getters/setters and do not depend on other internal MPI implementation machineries with the exception of error handling for argument. Note that handling of MPI errors on bad argument values (e.g. NULL pointers) outside init/finalize is something that MPI-40 implementations already have to support.
Impact on Users
Authors or MPI bindings for other programming languages will be able to initialize Status objects at any point, outside of the init/finalize bracket.
References and Pull Requests
#645
The text was updated successfully, but these errors were encountered: