18.2.149. shmem_longlong_add

shmem_int_add(3), shmem_int4_add(3), shmem_int8_add(3), shmem_long_add(3), shmem_longlong_add(3) - 执行原子加法操作。

18.2.149.1. 概述

C或C++:

#include <mpp/shmem.h>

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语言:

include 'mpp/shmem.h'

INTEGER pe

CALL SHMEM_INT4_ADD(target, value, pe)
CALL SHMEM_INT8_ADD(target, value, pe)

18.2.149.2. 描述

原子加法例程将value值添加到位于PE pe上地址target处的数据中。该操作在完成时确保在获取和更新之间不会有其他进程修改目标地址的值。

参数如下:

target

远程可访问的整型数据对象,将在远程PE上进行更新。如果使用C/C++,目标类型应与SYNOPSIS部分隐含的类型匹配。如果使用Fortran编译器,则必须是整型,元素大小为4字节(对应SHMEM_INT4_ADD)或8字节(对应SHMEM_INT8_ADD)。

value

需要原子性添加到目标的值。如果使用C/C++语言,该值的类型应与概述部分隐含的类型匹配。如果使用Fortran语言,则必须是整数类型且元素大小与目标一致。

pe

一个整数,表示目标将被更新的PE编号。如果使用Fortran,它必须是一个默认的整数值。

18.2.149.3. 注意事项

术语"远程可访问"的定义见intro_shmem(3)。

另请参阅

intro_shmem(3) shmem_cache(3)