SHMEM_SWAP(3) | Open MPI | SHMEM_SWAP(3) |
shmem_double_swap(3), shmem_float_swap(3), shmem_int_swap(3), shmem_long_swap(3), shmem_swap(3), shmem_int4_swap(3), shmem_int8_swap(3), shmem_real4_swap(3), shmem_real8_swap(3), shmem_longlong_swap(3) - Performs an atomic swap to a remote data object
C or C++:
#include <mpp/shmem.h> double shmem_double_swap(double *target, double value,
int pe); float shmem_float_swap(float *target, float value, int pe); int shmem_int_swap(int *target, int value, int pe); long shmem_long_swap(long *target, long value, int pe); long long shmem_longlong_swap(long long *target,
long long value, int pe); long shmem_swap(long *target, long value, int pe);
Fortran:
INCLUDE "mpp/shmem.fh" INTEGER pe INTEGER SHMEM_SWAP ires = SHMEM_SWAP(target, value, pe) INTEGER(KIND=4) SHMEM_INT4_SWAP ires = SHMEM_INT4_SWAP(target, value, pe) INTEGER(KIND=8) SHMEM_INT8_SWAP ires = SHMEM_INT8_SWAP(target, value, pe) REAL(KIND=4) SHMEM_REAL4_SWAP res = SHMEM_REAL4_SWAP(target, value, pe) REAL(KIND=8) SHMEM_REAL8_SWAP res = SHMEM_REAL8_SWAP(target, value, pe)
The atomic swap routines write value to address target on PE pe, and return the previous contents of target in one atomic operation.
The arguments are as follows:
The term remotely accessible is defined in intro_shmem(3).
The contents that had been at the target address on the remote PE prior to the swap is returned.
May 26, 2022 | 4.1.4 |