Scott: My apologies. I misread your message. I thought you were referring to the last sentence in the paragraph, which says "and even if no call is executed to complete the receive". I agree with your suggestion that "should" should be changed to "must" in "the receive should complete even if no call is executed by the sender to complete the send" ("shall" would also work). Bronis On Mon, 26 Nov 2012, Scott Pakin wrote:
Bronis,
On 11/26/2012 11:44 AM, Bronis R. de Supinski wrote:
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.
The current text says that "the receive *should* complete even if no call is executed by the sender to complete the send." If a subsequent attempt to complete such a send would be an error, then the standard would have to say, "the receive *must not* complete even if no call is executed by the sender to complete the send," which is in disagreement with what a typical (all?) MPI implementation does.
I'm merely taking issue with the use of "should," which seems to let an MPI implementation decide whether to complete the receive but not allow applications to rely on this happening. "Must" or "is required to" would let applications reason better about progress.
-- Scott