shmem_add(3)
shmem_short_add, shmem_int_add, shmem_int4_add, shmem_int8_add, shmem_long_add, shmem_longlong_add - Performs an atomic add operation on a remote data object
As shipped in IRIX 6.5.19. Added in IRIX 6.5.19.
NAME shmem_short_add, shmem_int_add, shmem_int4_add, shmem_int8_add, shmem_long_add, shmem_longlong_add - Performs an atomic add operation on a remote data object SYNOPSIS C or C++: #include <mpp/shmem.h> void shmem_short_add(short *target,short value, int pe); void shmem_int_add(int *target, int value, int pe); void shmem_long_add(long *target, long value, int pe); void shmem_longlong_add(long long *target, long long value, int pe); Fortran: INTEGER pe CALL SHMEM_INT4_ADD(target, value, pe) CALL SHMEM_INT8_ADD(target, value, pe) DESCRIPTION The shmem_add routine performs an atomic add operation. It adds value to target on Processing Element (PE) pe and atomically increments the target without returning the value. The arguments are as follows: target The remotely accessible integer data object to be updated on the remote PE. If you are using C/C++, the type of target should match that implied in the SYNOPSIS section. If you are using the Fortran compiler, it must be of type integer with an element size of 4 bytes for SHMEM_INT4_ADD and 8 bytes for SHMEM_INT8_ADD. value The value to be atomically added to target. If you are using C/C++, the type of value should match that implied in the SYNOPSIS section. If you are using Fortran, it must be of type integer with an element size of target. pe An integer that indicates the PE number upon which target is to be updated. If you are using Fortran, it must be a default integer value. NOTES The term remotely accessible is defined in intro_shmem(3). The atomic add routines write directly into another PE's memory without notifying that PE, so the receiving PE should use shmem_set_cache_inv(3) or shmem_set_cache_line_inv(3) to set automatic cache invalidation. If this is not done, the receiving PE's data cache might become incoherent. SEE ALSO intro_shmem(3), shmem_cache(3)