[mpich-discuss] Non-blocking collectives
Rajeev Thakur
thakur at mcs.anl.gov
Sat Jun 29 14:45:30 CDT 2013
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 <thakur at mcs.anl.gov> 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."
More information about the discuss
mailing list