Re: [Mpi-forum] [EXTERNAL] Wording in MPI standard
The issue is not whether the local non-blocking operation will complete, but whether starting a local non-blocking operation is enough to satisfy the matching non-local operation. It is essentially saying that once an operation has been started and matched, completion is local. That is, completion of a send operation that has been started and satisfied by a matching receive operation (that has also been started) is not dependent on whether that receive operation has been completed. The send side doesn't have to wait for the receive side to call MPI_WAIT in order for the send to complete. I'm not sure there's any semantic difference between "... the receive should complete..." versus "... the receive must complete...", but the latter does seem stronger. -Ron On Nov 26, 2012, at 11:44 AM, Bronis R. de Supinski wrote:
Scott:
The problem with your suggestion is that completion has a well defined meaning in MPI that requires the completion call. If the receive completed without any call then a subsequent attempt to complete it would be an error. I believe that is reason the term "satisfied" was used.
Bronis
On Mon, 26 Nov 2012, Pavan Balaji wrote:
Scott,
I'm not sure. I've cc'ed the list on this email.
-- Pavan
On 11/26/2012 10:42 AM US Central Time, Scott Pakin wrote:
Pavan,
On 11/19/2012 11:59 PM, Pavan Balaji wrote:
Thanks. I didn't see the email come through, though. Do you know if email from non-subscribers gets silently dropped?
I attached the message I tried posting. Want to try resending it yourself? If not, I suppose I can subscribe, resend, then probably unsubscribe.
Thanks, -- Scott
Attached Message
Subject: Unclear wording in MPI spec From: Scott Pakin <[email protected]> Date: 11/19/2012 11:14 AM
To: <[email protected]>
From a discussion I had with Pavan Balaji at SC'12, I believe a minor wording change is needed in the MPI 3.0 standard, page 56, lines 30-35:
Progress: A call to MPI_WAIT that completes a receive will eventually terminate and return if a matching send has been started, unless the send is satisfied by another receive. In particular, if the matching send is nonblocking, then the receive should complete even if no call is executed by the sender to complete the send. Similarly, a call to MPI_WAIT that completes a send will eventually return if a matching receive has been started, unless the receive is satisfied by another send, and even if no call is executed to complete the receive.
Perhaps that should say, "...the receive *is required* to complete even if no call is executed...".
-- Scott
-- Pavan Balaji http://www.mcs.anl.gov/~balaji _______________________________________________ mpi-forum mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
_______________________________________________ mpi-forum mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
participants (1)
-
Brightwell, Ronald