mpi-forum / mpi-issues

Tickets for the MPI Forum
http://www.mpi-forum.org/
66 stars 7 forks source link

Send operations do not match *any* receive operations anymore #708

Open devreal opened 1 year ago

devreal commented 1 year ago

Problem

Section 3.9 states that:

A send operation started with MPI_START can be matched with any receive operation and, likewise, a receive operation started with MPI_START can receive messages generated by any send operation.

With the introduction of partitioned operations, the any is not true anymore.

Proposal

Clarify which operations match.

Changes to the Text

A send operation started with MPI_START can be matched with any blocking, nonblocking, or persistent receive operation and, likewise, a receive operation started with MPI_START can receive messages generated by any blocking, nonblocking, and persistent send operation.

Impact on Implementations

None.

Impact on Users

Less confusion about matching rules.

References and Pull Requests

TBD

regrant commented 6 months ago

@devreal Is this really true though? We don't have send operations in partitioned communication, it's just Pready calls. So it depends on your interpretation of what a send operation is correct?

devreal commented 6 months ago

MPI_PSEND_INIT creates a partitioned communication request and binds to it all the arguments of a partitioned send operation.

devreal commented 6 months ago

Granted, it also says

This operation can only match with partitioned communication initialization operations, therefore it is required to be matched with a corresponding MPI_PRECV_INIT call.

but that doesn't mean the first statement is correct. There clearly is a conflict here between the two.