共用方式為


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_rank視窗中target_disp位移的緩衝區進行比較,然後 win 會將目標上的值取代為原始緩衝區中的值,origin_addr如果比較緩衝區和目標緩衝區相同。 目標的原始值會在緩衝區 result_addr中傳回。 參數數據類型必須屬於下列其中一個預先定義的數據類型類別:C 整數、Fortran 整數、邏輯、多語言類型或 Byte。 來源和結果緩衝區必須脫離 (origin_addrresult_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 Communications 函式