Re: [mpich-discuss] Non-blocking collectives
It doesn't have to be a matching Wait. The implementation is required to make progress on other pending communication while it is blocked in a Wait. On Jun 29, 2013, at 2:43 PM, Jed Brown wrote:
Rajeev Thakur <[email protected]> writes:
I think the Wait is allowed to wait until others call Wait.
Do you read this as allowing an implementation to defer completion until a _matching_ MPI_Wait is called, or merely until the application re-enters MPI somehow (sufficiently many times, or blocking)? I had the latter interpretation, which would allow non-blocking operations on different communicators to be used without risking deadlock.
If the intent was really that the implementation can block until a _matching_ MPI_Wait is called, then I think the standard should clarify this point because it risks deadlock in a natural use case.
See the Advice to Users on 197:27-29:
"Users should be aware that implementations are allowed, but not required (with exception of MPI_IBARRIER), to synchronize processes during the completion of a nonblocking collective operation."
participants (1)
-
Rajeev Thakur