Skip to content

MPI 4.1: MPI_Status_{get,set}_{source,tag,error} and init/finalize #808

Open
@dalcinl

Description

@dalcinl

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 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.

References and Pull Requests

#645

Metadata

Metadata

Assignees

Labels

chap-processProcess Creation and Management Chapter Committeempi-6For inclusion in the MPI 5.1 or 6.0 standard

Type

No type

Projects

Status

To Do

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions