[Mpi3-ft] MPI_Comm_validate() protection

Darius Buntinas buntinas at mcs.anl.gov
Tue Dec 20 11:21:47 CST 2011


Yeah, this might be OK.  How do we word that in the standard?

-d

On Dec 20, 2011, at 10:44 AM, Josh Hursey wrote:

> How about:
> When calling validate the epoch should only change when there is a new
> failure detected. So when switching from an inactive to active
> collective mode.
> 
> If there is no new failure on the communicator, then, in your example,
> the Ibcast would complete successfully at all processes. Since without
> a new failure the epoch should not change on the communicator.
> 
> If there is a new failure detected before or in the validate then a
> new 'cut' would be made (increments a global epoch on the
> communicator). The Ibcast in P0 would either complete successfully or
> with an error (depending on how the collective is implemented). The
> Ibcast in P1 would match after the 'cut'. So P1 would be waiting for
> P0 to post a new Ibcast to match.
> 
> The user should be programing around such scenarios, so that
> collectives match correctly after a validate. So I would say that the
> example is correct, but unsafe without additional process failure
> checking logic.
> 
> So only when a process failure occurs the validate forces the
> cancelation of outstanding collective operations, and effectively
> resets matching.
> 
> Thoughts?
> 
> -- Josh
> 
> On Tue, Dec 20, 2011 at 11:16 AM, Darius Buntinas <buntinas at mcs.anl.gov> wrote:
>> Hmm.  There was a reason we added that.
>> 
>> I think this had to do with separating collectives from one "epoch" from those of another, so that no one does anything like this:
>> 
>> P0                     P1
>> -------------------    -------------------
>> MPI_Ibcast()
>> MPI_Comm_validate()    MPI_Comm_validate()
>> .                      MPI_Ibcast()
>> MPI_Wait()             MPI_Wait()
>> 
>> Maybe we should say that validate completes-with-error all outstanding collective operations.  But in that case if the user spans a collective across a validate the collective may complete successfully at one process (e.g., root of bcast) and complete-with-an-error on another, but validate() would show that no processes have failed (no process failures would normally indicate that the bcast completed successfully).  I guess we can call this a user error, and just say don't do that.
>> 
>> -d
>> 
>> On Dec 20, 2011, at 9:03 AM, Josh Hursey wrote:
>> 
>>> In 17.7.1 the proposal states:
>>>  "All collective communication operations initiated before the call
>>> to MPI_COMM_VALIDATE must also complete before it is called, and no
>>> collective calls may be initiated until it has completed."
>>> 
>>> Considering the case where FailHandlers are used in the 'ALL'
>>> operating mode. In this mode, a user may want to call validate in all
>>> of the FailHanlders to synchronize them. But if the FailHandler was
>>> triggered out of a collective operation over a communicator that does
>>> -not- include the failed process then the user cannot write a correct
>>> program (since they cannot cancel, and may not be able to complete the
>>> collective operation).
>>> 
>>> My suggestion is that we remove this sentence. Do folks have a problem
>>> with this?
>>> 
>>> Thanks,
>>> Josh
>>> 
>>> --
>>> Joshua Hursey
>>> Postdoctoral Research Associate
>>> Oak Ridge National Laboratory
>>> http://users.nccs.gov/~jjhursey
>>> _______________________________________________
>>> mpi3-ft mailing list
>>> mpi3-ft at lists.mpi-forum.org
>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft
>> 
>> 
>> _______________________________________________
>> mpi3-ft mailing list
>> mpi3-ft at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft
>> 
> 
> 
> 
> --
> Joshua Hursey
> Postdoctoral Research Associate
> Oak Ridge National Laboratory
> http://users.nccs.gov/~jjhursey
> 
> _______________________________________________
> mpi3-ft mailing list
> mpi3-ft at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft





More information about the mpiwg-ft mailing list