[Mpi3-rma] current version of proposal

James Dinan dinan at mcs.anl.gov
Wed Mar 2 14:50:17 CST 2011

On 03/02/2011 01:48 PM, Barrett, Brian W wrote:
> On 3/2/11 9:47 AM, "James Dinan"<dinan at mcs.anl.gov>  wrote:
>> When we state that accumulates with the same operation are
>> non-conflicting, should I be interpreting this as CAS is only
>> non-conflicting with other CAS operations?  This is a bit of a stretch
>> since CAS doesn't take an op argument, but I suppose it's doable.  Some
>> text to help the reader make this connection for CAS would definitely
>> help.
> CAS is defined as an accumulate operation (pg 1, ln 38--41), so yes, CAS
> should be interpreted as a different operation than MPI_REPLACE or MPI_SUM
> or...  I personally think this is obvious, but have no objection to an
> additional sentence in the accumulate_ops info key specifying this.  I
> believe that's the only place in the current text where operation
> conflicts are discussed, but I could be wrong.

I think there are two ways to interpret the current text:

1. CAS defines a new accumulate op that can only be performed by 
MPI_Compare_and_swap, thus it is only non-conflicting with itself.

2. MPI_Compare_and_swap has a fixed op=MPI_REPLACE and it is 
non-conflicting with all other accumulate calls if op=MPI_REPLACE is given.

Number 1 seems tricky to me because Get_accumulate with op=MPI_REPLACE 
does an unconditional SWAP.  Number 2 seems to mesh better with existing 
accumulate operations, but do concurrent CAS, SWAP, and REPLACE
operations play nice?


More information about the mpiwg-rma mailing list