次の方法で共有


MPI_Fetch_and_op関数

データの 1 つの要素に対してアトミックな読み取り/変更/書き込みを実行し、累積操作の前にデータ要素を返します。

構文

int MPIAPI MPI_Fetch_and_op(
  _In_  void         *origin_addr,
  _Out_ void         *result_addr,
        MPI_Datatype datatype,
        int          target_rank,
        MPI_Aint     target_disp,
        MPI_Op       op,
        MPI_Win      win
);

パラメーター

  • origin_addr [in]
    バッファーの初期アドレス

  • result_addr [out]
    結果バッファーの初期アドレス

  • datatype
    配信元、結果、およびターゲット バッファー内の各エントリのデータ型

  • target_rank
    ターゲットのランク

  • target_disp
    ウィンドウの先頭からターゲット バッファーの先頭への変位

  • op
    reduce 操作

  • win
    window オブジェクト

戻り値

成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。

Fortran では、戻り値は IERROR パラメーターに格納されます。

Fortran

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

注釈

target_rankと win によって指定されたターゲット ウィンドウ target_dispで、配信元バッファー (origin_addr) からバッファーへのデータ型の 1 つの要素累積し、演算 op を使用して、累積前のターゲット バッファーの内容result_addr結果バッファーに戻ります。

配信元バッファーと結果バッファー (origin_addrresult_addr) は不整合である必要があります。 MPI_Reduceに対する定義済みの操作、およびMPI_NO_OPまたはMPI_REPLACEは、op として指定できます。ユーザー定義関数は使用できません。 datatype 引数は、定義済みのデータ型である必要があります。 操作はアトミックに実行されます。

要件

製品

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