MPI_Rput 函数

基于请求的 RMA 放置操作。

语法

int MPIAPI MPI_Rput(
  _In_  void         *origin_addr,
        int          origin_count,
        MPI_Datatype origin_datatype,
        int          target_rank,
        MPI_Aint     target_disp,
        int          target_count,
        MPI_Datatype target_datatype,
        MPI_Win      win,
  _Out_ MPI_Request  *request
);

参数

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

  • origin_count
    源缓冲区中的条目数。

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

  • target_rank
    目标的排名。

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

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

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

  • win
    用于通信的 Window 对象。

  • request [out]
    RMA 请求。

返回值

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

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

Fortran

    MPI_RPUT(ORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK,
                TARGET_DISP, TARGET_COUNT, TARGET_DATATYPE, WIN, REQUEST, IERROR)
        <type> ORIGIN_ADDR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
        INTEGER ORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, TARGET_COUNT,
        TARGET_DATATYPE, WIN, REQUEST, IERROR

注解

MPI_Rput 类似于 MPI_Put,只不过它分配通信请求对象并将其与参数请求) (请求 句柄相关联。 完成MPI_Rput操作 (即在相应的测试或等待) 指示发送方现在可以自由更新源缓冲区中的位置。 它并不表示数据在目标窗口中可用。 如果需要远程完成,可以使用 MPI_Win_flushMPI_Win_flush_allMPI_Win_unlockMPI_Win_unlock_all

要求

产品

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