oshmpi icon indicating copy to clipboard operation
oshmpi copied to clipboard

Misc: develop non-blocking AMO

Open minsii opened this issue 4 years ago • 0 comments

Description: existing atomic operations (AMO) are blocking (i.e., return when it is locally completed). They are implemented by using corresponding MPI accumulate operation + MPI_Win_flush_local . The new nonblocking version can be directly translated to MPI accumulate operation.

SHMEM_ATOMIC_FETCH_NBI
SHMEM_ATOMIC_COMPARE_SWAP_NBI
SHMEM_ATOMIC_SWAP_NBI
SHMEM_ATOMIC_FETCH_INC_NBI
SHMEM_ATOMIC_FETCH_ADD_NBI
SHMEM_ATOMIC_FETCH_AND_NBI
SHMEM_ATOMIC_FETCH_OR_NBI
SHMEM_ATOMIC_FETCH_XOR_NBI

Starting point

  • Section 9.7.2 Nonblocking Atomic Memory Operations in OpenSHMEM v1.5 spec
  • src/internal/amo_impl.h in OSHMPI

TODO

  • Implement functions
  • Add 1 test in tests/

minsii avatar Mar 03 '21 20:03 minsii