共用方式為


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 物件。

  • 要求 [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 Communications 函式