Under the interpretation of using whether the target process has observed, rather than received the message, a consistent interpretation is that the MPI_Cancel fails at the source, as it would if the message had been received. Its possible that the standard should require programs that have matched a message with Mprobe/Improbe to received the message before MPI_Finalize is called. However, the standard is out of date with respect to cancel of send, and should be updated (either to make this precise or to delete cancel of send). As Pavan has noted, there are a number of active proposals addressing this. Bill William Gropp Director, Parallel Computing Institute Thomas M. Siebel Chair in Computer Science Chief Scientist, NCSA University of Illinois Urbana-Champaign On Oct 31, 2015, at 6:12 AM, Marek Tomáštík <[email protected]> wrote:
Hello, I am trying to find out what should happen, according to the MPI 3.0* standard, in the following scenario: 1) process 0 initiates a nonblocking send operation with MPI_Issend 2) process 1 matches the message with MPI_Mprobe, but doesn't yet call MPI_Mrecv/MPI_Imrecv 3) process 0 calls MPI_Cancel to cancel the send.
I cannot think of anything the cancel operation could do that wouldn't contradict either the specification of MPI_Cancel, or of the matched receive functions. How can this situation be handled in compliance with the standard?
Thank you in advance, Marek Tomáštík
*or 3.1 -- I believe there weren't any changes in this area? _______________________________________________ mpi-forum mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum