MPI_Grequest_start関数
ユーザー定義要求を作成して返します。
構文
int MPIAPI MPI_Grequest_start(
_In_ MPI_Grequest_query_function *query_fn,
_In_ MPI_Grequest_free_function *free_fn,
_In_ MPI_Grequest_cancel_function *cancel_fn,
_In_opt_ void *extra_state,
_Out_ MPI_Request *request
);
パラメーター
query_fn [入力]
要求の状態が照会されたときに呼び出されるコールバック関数。free_fn [in]
要求が解放されたときに呼び出されるコールバック関数。cancel_fn [in]
要求が取り消されたときに呼び出されるコールバック関数。extra_state [in, optional]
上記の関数に渡される追加の状態。request [out]
一般化された要求。
戻り値
成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。
Fortran では、戻り値は IERROR パラメーターに格納されます。
Fortran
MPI_GREQUEST_START(QUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, REQUEST, IERROR)
INTEGER REQUEST, IERROR
EXTERNAL QUERY_FN, FREE_FN, CANCEL_FN
INTEGER (KIND=MPI_ADDRESS_KIND) EXTRA_STATE
注釈
コールバック関数からの戻り値は、有効な MPI エラー コードまたはクラスである必要があります。 この値は、任意の MPI ルーチンからの戻り値 (以下に示す 1 つの例外を除く) または MPI エラー クラスのいずれかになります。 移植可能なプログラムの場合は、 MPI_ERR_OTHER を使用できます。より具体的な情報を提供するには、 MPI_Add_error_classまたはMPI_Add_error_code を使用して新しい MPI エラー クラスまたはコード を作成し、その値を返します。
MPI 標準は、コールバック ルーチンからの戻り値では明確ではありません。 ただし、標準には、MPI エラー コードであることを示すメモがあります。 たとえば、169 行目 46 行目から 170 行目の場合、 MPI_ERR_IN_STATUS を返すときに MPI 入力候補関数で使用できる MPI エラー コード をfree_fnが返す必要があります。
1 つの特殊なケースは、属性コールバック ルーチンがエラーを返したときに MPI_Comm_dup によって返されるエラー値です。 MPI 標準では、エラーの戻り値を示すために使用できる値が明確ではありません。 さらに、Intel MPI テスト スイートでは、エラーを示すために 0 以外の値を使用しており、属性ルーチンでエラーが発生したときに 、これらの 値がMPI_Comm_dupによって返されることが想定されました。 このようなエラー値は、有効な MPI エラー コードまたはクラスではない可能性があります。 このため、属性コールバックからの戻り値として有効な MPI エラー コードを使用するか、それらのエラー コードを一般化された要求コールバックによって返すか、またはそれらのエラー コードを検出して有効な MPI エラー コードに変換する必要があります (MPI エラー クラスは有効なエラー コードであることを思い出してください)。
要件
製品 |
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 |