[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