oshmpi
oshmpi copied to clipboard
Misc: develop non-blocking AMO
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.hin OSHMPI
TODO
- Implement functions
- Add 1 test in tests/