[Mpi3-rma] Updated Proposal 1

Jeff Hammond jhammond at mcs.anl.gov
Sun Nov 28 11:09:23 CST 2010

>> What is the use case multi-element RMW anyways?  I'm definitely going
>> to need message-atomic put, but I'll do the portable i.e. MPI version
>> with RMW-lock + put + RMW-unlock.
> For dynamic windows, a portable pointer will be something like <process,
> displacement>.  If you want to build lock-free data structures, you'd want
> to do swap on pointers.  If you can't do both atomically, then you will need
> to do things differently anyway.  Providing a count for this function could
> be misleading, I'd suggest some text to clarify.

That requires multi-element i.e. message-level atomicity.  As Torsten
said earlier, "the current RMA doesn't offer more than element-wise
atomicity and we don't plan to extend this."  The appropriate way to
do message-level atomicity is active-messages or RMW-lock + RMA +

> Jeff, unless you need trylock there are more efficient ways to do one-sided
> locking on top of existing MPI-2 RMA that don't require polling over the
> network.  I can point you to code if you're interested, I think it's in an
> MPICH example somewhere.

I'm going to want lock, trylock and unlock, so if the approach you
alludes to only provides lock/unlock, then it doesn't work for me.
Besides, I'm not interested in what one can hack on top of MPI-2.
This discussion should be about the right answer for the right reason
within MPI-3.


Jeff Hammond
Argonne Leadership Computing Facility
jhammond at alcf.anl.gov / (630) 252-5381

More information about the mpiwg-rma mailing list