At 01:39 PM 12/1/2008, Rajeev Thakur wrote:
MPI_Cancel cannot simply be ignored. For example, if there is an MPI_Isend followed by MPI_Cancel, and the matching receive is never called, the cancel cannot fail.
Are you sure that this is the way it works? It doesn't say so explicitly in the spec and the notes for MPI_Cancel on http://www-unix.mcs.anl.gov/mpi/www/ say "Cancel has only been implemented for receive requests; it is a no-op for send requests". However, if we do need to provide the above semantics for MPI_Cancel, we will have to deal with a funny non-locality of behavior. Suppose we have an MPI_Ibcast and one of the receivers calls MPI_Cancel. What happens to the other participants? Do they all have to call MPI_Cancel to not participate or is any one calling it sufficient? What about things like MPI_Gather and MPI_AlltoAll? We certainly don't want to force non-all-to-all operations to have to do an all-reduce at the end to check for cancellation. Greg Bronevetsky Post-Doctoral Researcher 1028 Building 451 Lawrence Livermore National Lab (925) 424-5756 [email protected]