[Mpi3-rma] RMA proposal 1 update

Rajeev Thakur thakur at mcs.anl.gov
Wed May 26 13:32:53 CDT 2010


One difference between a lockall and multiple nested locks is that
lockall takes a single lock type for the entire set. With multiple
nested locks, the user could make a thousand calls to Win_lock, with
arbitrary shared and exclusive locks, and the implementation would have
to keep track of the thousand lock states.

Rajeev
 


> -----Original Message-----
> From: Rajeev Thakur [mailto:thakur at mcs.anl.gov] 
> Sent: Wednesday, May 26, 2010 12:36 PM
> To: 'MPI 3.0 Remote Memory Access working group'
> Subject: RE: [Mpi3-rma] RMA proposal 1 update
> 
> Implementation wise, allowing nested locks (with exclusive) 
> may not be a trivial change.
> 
> Rajeev 
> 
> > -----Original Message-----
> > From: mpi3-rma-bounces at lists.mpi-forum.org 
> > [mailto:mpi3-rma-bounces at lists.mpi-forum.org] On Behalf Of 
> > Pavan Balaji
> > Sent: Wednesday, May 26, 2010 11:52 AM
> > To: MPI 3.0 Remote Memory Access working group
> > Subject: Re: [Mpi3-rma] RMA proposal 1 update
> > 
> > 
> > On 05/26/2010 11:40 AM, Rajeev Thakur wrote:
> > >> Yes, you do -- so my notes (a) and (b) below are only 
> for the "if 
> > >> lockall is only for shared locks" case.
> > > 
> > > Not just lockall. The user would have to assert that no 
> > other process
> > > will call regular lock with an exclusive lock.
> > 
> > Correct. But if it's a different synchronization primitive, 
> we don't 
> > have to care about that case.
> > 
> > >> I think there are two parts here -- (1) to remove the 
> > restriction on 
> > >> whether only one lock can be acquired; and (2) to provide 
> > the lockall 
> > >> convenience function.
> > >>
> > >> (1) is a minor change to the standard and should be included.
> > > 
> > > If you allow nested locks with exclusive locks, the user code may
> > > deadlock depending on what the implementatation chooses to 
> > do: block on
> > > a lock or defer everything until unlock. The user code may 
> > work in some
> > > cases, and may not work in other cases.
> > 
> > That's a user error, and is to be dealt by other tools 
> outside of the 
> > scope of MPI.
> > 
> > There are a lot of ways a user can screw up even within the 
> > current MPI 
> > standard. We can't drop flexibility because someone might screw up.
> > 
> >   -- Pavan
> > 
> > -- 
> > Pavan Balaji
> > http://www.mcs.anl.gov/~balaji
> > _______________________________________________
> > mpi3-rma mailing list
> > mpi3-rma at lists.mpi-forum.org
> > http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma
> > 
> 




More information about the mpiwg-rma mailing list