次の方法で共有


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内のデータ型の 1 つの要素を、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 通信関数