[Mpi3-rma] MPI RMW operations

Howard Pritchard howardp at cray.com
Tue Mar 25 10:14:45 CDT 2008

Hello Brian,

That was the idea. 

The problem as we saw it is that in non-mpi shared memory
applications, atomic memory operations are typically used for lightweight
synchronization.  Having to always use potentially heavyweight lock/unlock
sequences seems to defeat the purpose of adding rmw operations to the
mpi specification. 

This is a special case of the more general discussion that we should
have about global visibility of rma operations, etc. 


Brian W. Barrett wrote:

>If MPI_MODE_PASSIVE_EPOCH_IMPLICIT is not given, is synchronization  
>explicit using the standard epoch functions?
>On Mar 24, 2008, at 9:09 PM, Shipman, Galen M. wrote:
>>Howard and I have been working on the RMW operations listed below for
>>- Galen Shipman - ORNL
>>Single operand RMW operations
>>MPI_Rmw(void *operand_addr,
>>                     int count,
>>                    MPI_Datatype datatype,
>>                    void *result_addr,
>>                    int target_rank,
>>                    MPI_Aint target_disp,
>>                    int assert,
>>                    MPI_RMW_Op op,
>>                     MPI_Win win)
>>Two operand RMW operations
>>MPI_Rmw2(void *operand_addr,
>>                       int count,
>>                       MPI_Datatype datatype,
>>                      void *operand2_addr,
>>                      void *result_addr,
>>                      int target_rank,
>>                      MPI_Aint target_disp,
>>                       int assert,
>>                      MPI_RMW_2_Op op,
>>                       MPI_Win win)
>>MPI_RMW_Op Predefined RMW single operand operations
>>The following predefined operations are supplied for MPI_RMW and  
>>functions. These operations are invoked  by placing the following  
>>in op.
>>Name             Meaning
>>MPI_RMW_INC             increment
>>MPI_RMW_PROD    product
>>MPI_RMW_SUM             sum
>>MPI_RMW_LAND    logical and
>>MPI_RMW_LOR             logical or
>>MPI_RMW_LXOR    logical xor
>>MPI_RMW_BAND    binary and
>>MPI_RMW_BOR             binary or
>>MPI_RMW_BXOR    binary xor
>>MPI_RMW_SWAP    swap value
>>MPI_RMW_2_Op Predefined RMW two operand operations
>>Name                                            Meaning
>>MPI_RMW2_MASK_SWAP      swap masked bits
>>MPI_RMW2_COMP_SWAP      compare and swap
>>Note: MPI_RMW2_COMP_SWAP is an equality comparison, we may wish to
>>consider multiple comparison operations such as >, >=, <, <=, ==, <>.
>>Both MPI_Rmw and MPI_Rmw2 take an assert argument.
>>equivalent to:
>>the MPI library knows that the window lock at the target need not be
>>mpi3-rma mailing list
>>mpi3-rma at lists.mpi-forum.org


Howard Pritchard 
Cray Inc.

More information about the mpiwg-rma mailing list