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_addr と result_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 |