MPI_Compare_and_swap 函数

执行远程原子比较和交换操作。

语法

int MPIAPI MPI_Compare_and_swap(
  _In_  void         *origin_addr,
  _In_  void         *compare_addr,
  _Out_ void         *result_addr,
        MPI_Datatype datatype,
        int          target_rank,
        MPI_Aint     target_disp,
        MPI_Win      win
);

参数

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

  • compare_addr [in]
    comparebuffer 的初始地址

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

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

  • target_rank
    目标的排名

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

  • win
    window 对象

返回值

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

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

Fortran

    MPI_COMPARE_AND_SWAP(ORIGIN_ADDR, COMPARE_ADDR, RESULT_ADDR,
                DATATYPE, TARGET_RANK, TARGET_DISP, WIN, IERROR)
        <type> ORIGIN_ADDR(*), COMPARE_ADDR(*), RESULT_ADDR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
        INTEGER DATATYPE, TARGET_RANK, WIN, IERROR

注解

此函数将比较缓冲区compare_addr数据类型的一个元素与target_rankwin 指定的目标窗口中偏移量target_disp的缓冲区进行比较,并将目标处的值替换为源缓冲区 origin_addr中的值(如果比较缓冲区和目标缓冲区相同)。 目标处的原始值在缓冲区 result_addr返回。 参数数据类型必须属于以下预定义数据类型类别之一:C 整数、Fortran 整数、逻辑、多语言类型或 Byte。 (origin_addr和result_addr) 的原点缓冲区和结果缓冲区必须不相交。

要求

产品

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 通信函数