18.2.65. shmem_float_swap
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) - 对远程数据对象执行原子交换操作
18.2.65.1. 概述
C或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)
18.2.65.2. 描述
原子交换例程将value写入PE pe上的目标地址target,并在一个原子操作中返回target的先前内容。
参数如下:
- target
要在远程PE上更新的可远程访问的整数数据对象。如果使用C/C++,目标类型应与SYNOPSIS部分隐含的类型匹配。如果使用Fortran,则必须是以下类型:
SHMEM_SWAP: 默认类型的整数
SHMEM_INT4_SWAP: 4字节整数
SHMEM_INT8_SWAP: 8字节整数
SHMEM_REAL4_SWAP: 4字节实数
SHMEM_REAL8_SWAP: 8字节实数
- value
将被原子性写入远程PE的值。value的类型与target相同。
- pe
一个整数,表示目标将被更新的PE编号。如果使用Fortran,它必须是一个默认的整数值。
18.2.65.3. 注意事项
术语"远程可访问"的定义见intro_shmem(3)。
18.2.65.4. 返回值
远程PE上目标地址原有的内容在交换后被返回。
另请参阅
intro_shmem(3)