Re: Semantics of MPI Cancel?

Marc Snir (snir@watson.ibm.com)
Mon, 10 Mar 1997 17:25:30 -0400




> So, I propose the following clarification: "A message that has been
> matched by a call to MPI-PROBE must be received by a subsequent call to
> MPI_RECV or MPI_IRECV."

Marc, in the example I presented, I made the Iprobe() call ask for a
different tag than the message's. This is to make sure that we cannot
use such an escape hatch by saying that the user knew the message was
there. This forces the correct implementation to delay Finalize until
it is sure that all of the source processes of its unreceived messages
have called Finalize themselves (i.e. told it that they won't be
cancelling any of these messages).

***
Raja, I missed your example. You seem to worry about the case that process
A calls
finalize and, some time later, process B sends a message to process A,
next cancels the send. This should be legal, the cancel should succeed.
Good reason, indeed, to put a barrier inside the finalize, to make sure
that process A
is around until B finishes its send/cancel games.
*****

-=-