Section 4 (Partitioned Communication) does not specify the content of the MPI_Status object after the completion of a partitioned operation using MPI_Test or MPI_Wait. Of course the usual rules around MPI_ERR_IN_STATUS apply to the MPI_ERROR field but the chapter seems silent on the remaining field. All (most?) other chapters explicitly state what fields of the status are defined upon completion.
The problem is compounded by the statement in Section 3.2.5:
Thus, status.MPI_SOURCE, status.MPI_TAG, and status.MPI_ERROR contain the source, tag, and
error code, respectively, of the received message.
Does that apply to persistent communication as well?
Proposal
Clarify which parts of MPI_STATUS are relevant for completion of partitioned send and receive operations.
Changes to the Text
TBD
Impact on Implementations
TBD
Impact on Users
Clarity on the fields in MPI_STATUS users can rely on being set after the completion of a partitioned operation.
Problem
Section 4 (Partitioned Communication) does not specify the content of the
MPI_Status
object after the completion of a partitioned operation usingMPI_Test
orMPI_Wait
. Of course the usual rules aroundMPI_ERR_IN_STATUS
apply to theMPI_ERROR
field but the chapter seems silent on the remaining field. All (most?) other chapters explicitly state what fields of the status are defined upon completion.The problem is compounded by the statement in Section 3.2.5:
Does that apply to persistent communication as well?
Proposal
Clarify which parts of
MPI_STATUS
are relevant for completion of partitioned send and receive operations.Changes to the Text
TBD
Impact on Implementations
TBD
Impact on Users
Clarity on the fields in
MPI_STATUS
users can rely on being set after the completion of a partitioned operation.References and Pull Requests
814 sparked this investigation