18.2.115. shmem_long_fadd
shmem_int4_fadd(3), shmem_int8_fadd(3), shmem_int_fadd(3), shmem_long_fadd(3), shmem_longlong_fadd(3) - 对远程数据对象执行原子取加操作
18.2.115.1. 概述
C或C++:
#include <mpp/shmem.h>
int shmem_int_fadd(int *target, int value, int pe)
long shmem_long_fadd(long *target, long value, int pe)
long long shmem_longlong_fadd(long long *target, longlong value,
int pe)
Fortran语言:
INCLUDE "mpp/shmem.fh"
INTEGER pe
INTEGER(KIND=4) SHMEM_INT4_FADD, ires, target, value
ires = SHMEM_INT4_FADD(target, value, pe)
INTEGER(KIND=8) SHMEM_INT8_FADD, ires, target, value
ires = SHMEM_INT8_FADD(target, value, pe)
18.2.115.2. 描述
shmem_fadd函数执行原子性的获取并加操作。原子性的获取并加操作会获取目标的旧值并将值加到目标上,在此过程中确保不会有其他进程在获取和更新之间修改目标值。这些例程会在处理单元(PE)pe上将值加到目标上,并以原子操作的方式返回目标的先前内容。
参数如下:
- target
需要在远程PE上更新的可远程访问的整数数据对象。目标类型应与SYNOPSIS部分中隐含的类型匹配。
- value
需要原子性添加到目标的值。该值的类型应与概述部分中隐含的类型相匹配。
- pe
一个整数,表示目标将被更新的PE编号。如果使用Fortran,它必须是一个默认的整数值。
18.2.115.3. 注意事项
术语"远程可访问"的定义见intro_shmem(3)。
18.2.115.4. 返回值
远程PE上目标地址在原子加法操作之前的内容。
另请参阅
intro_shmem(3)