MPI_Get_accumulate 函数

执行原子读-修改-写,并在累加操作之前返回数据。

语法

int MPIAPI MPI_Get_accumulate(
  _In_  void         *origin_addr,
        int          origin_count,
        MPI_Datatype origin_datatype,
  _Out_ void         *result_addr,
        int          result_count,
        MPI_Datatype result_datatype,
        int          target_rank,
        MPI_Aint     target_disp,
        int          target_count,
        MPI_Datatype datatype,
        MPI_Op       op,
        MPI_Win      win
);

参数

  • origin_addr [in]
    缓冲区的初始地址

  • origin_count
    缓冲区中的条目数

  • origin_datatype
    每个缓冲区条目的数据类型

  • result_addr [out]
    结果缓冲区的初始地址

  • result_count
    结果缓冲区中的条目数

  • result_datatype
    结果缓冲区中每个条目的数据类型

  • target_rank
    目标的排名

  • target_disp
    从窗口开始到目标缓冲区开始的置换

  • target_count
    目标缓冲区中的条目数

  • datatype
    目标缓冲区中每个条目的数据类型

  • op
    预定义的化简操作

  • win
    window 对象

返回值

返回成功 时MPI_SUCCESS 。 否则,返回值为错误代码。

在 Fortran 中,返回值存储在 IERROR 参数中。

Fortran

    MPI_GET_ACCUMULATE(ORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE, RESULT_ADDR, RESULT_COUNT, RESULT_DATATYPE,
                TARGET_RANK, TARGET_DISP, TARGET_COUNT, TARGET_DATATYPE, OP, WIN, IERROR)
        <type> ORIGIN_ADDR(*), RESULT_ADDR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
        INTEGER ORIGIN_COUNT, ORIGIN_DATATYPE, RESULT_COUNT, RESULT_DATATYPE, TARGET_RANK, TARGET_COUNT,
        TARGET_DATATYPE, OP, WIN, IERROR

注解

在 target_rank 和 win 指定的目标窗口中,从源缓冲区 (origin_addr) origin_datatype类型的origin_count元素累积到target_rankwin 指定的目标窗口中的偏移target_disp缓冲区,并在结果缓冲区中返回result_addr目标缓冲区的内容(由 target_disp 指定的) target_counttarget_datatype。 从源传输到目标的数据必须适合目标缓冲区中,而不用截断。 同样,从目标复制到源的数据必须适合结果缓冲区中,而不用截断。

(origin_addr和result_addr) 的原点缓冲区和结果缓冲区必须不相交。 每个数据类型参数必须是预定义数据类型或派生数据类型,其中所有基本组件都属于同一预定义数据类型。 所有数据类型参数都必须从相同的预定义数据类型构造。 操作 操作 适用于该预定义类型的元素。 target_datatype 不得指定重叠条目,并且目标缓冲区必须位于目标窗口或动态窗口中的附加内存中。 操作是针对每个基本数据类型以原子方式执行的。

要求

产品

HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具

标头

Mpi.h;Mpif.h

Msmpi.lib

DLL

Msmpi.dll

另请参阅

MPI One-Sided 通信函数