Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
dalcinl opened this issue Oct 11, 2023 · 5 comments
Open

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

dalcinl opened this issue Oct 11, 2023 · 5 comments
Assignees
Labels
chap-process Process Creation and Management Chapter Committee mpi-4.2
Milestone

Comments

@dalcinl
Copy link

dalcinl commented Oct 11, 2023

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

@jeffhammond
Copy link
Member

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.

@wesbland
Copy link
Member

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.

@wesbland wesbland added mpi-4.1 For inclusion in the MPI 4.1 standard chap-process Process Creation and Management Chapter Committee labels Oct 11, 2023
@jeffhammond
Copy link
Member

you have the PR today

@jeffhammond
Copy link
Member

if we don't get this into 4.1, i will fire up the time machine and make it a 4.1 erratum, because it's absurd not to do this.

@wesbland wesbland added the no-no Requires a no-no vote label Oct 11, 2023
@wesbland
Copy link
Member

Being a 4.1 erratum is just fine, but we can move forward for 4.1 since it has a PR.

@wesbland wesbland added the scheduled reading Reading is scheduled for the next meeting label Oct 11, 2023
@wesbland wesbland added this to the October 2023 milestone Oct 11, 2023
@wesbland wesbland added the scheduled no-no vote No-No vote is scheduled for the next meeting label Oct 11, 2023
@wesbland wesbland added mpi-4.2 and removed mpi-4.1 For inclusion in the MPI 4.1 standard no-no Requires a no-no vote scheduled no-no vote No-No vote is scheduled for the next meeting scheduled reading Reading is scheduled for the next meeting labels Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chap-process Process Creation and Management Chapter Committee mpi-4.2
Projects
Status: In Progress
Status: In Progress
Development

No branches or pull requests

4 participants