MPI_Grequest_free_functionコールバック関数
MPI_Grequest_free_function は、アプリケーション定義関数名のプレースホルダーです。
構文
int MPI_Grequest_free_function(
_In_opt_ void *extra_state
);
パラメーター
-
extra_state [in, optional]
追加の状態。
戻り値
すべてのコールバック関数はエラー コードを返します。 コードは返され、コールバック関数を呼び出した MPI 関数によってエラー コードに応じて処理されます。 たとえば、エラー コードが返された場合、コールバック関数によって返されるエラー コードは、コールバック関数を呼び出した MPI 関数によって返されます。 query_fnとfree_fnの両方を呼び出すMPI_Waitany呼び出しとMPI_Testany呼び出しの場合、MPI 呼び出しは最後のコールバックによって返されたエラー コード (つまり、free_fn) を返します。 MPI_Waitsome、MPI_Waitall、MPI_Testsome、またはMPI_Testallの呼び出しで 1 つ以上の要求が失敗した場合、MPI 呼び出しはMPI_ERR_IN_STATUSを返します。 このような場合、MPI 呼び出しに状態の配列が渡された場合、MPI は、完了した一般化された要求に対応する各状態で、 free_fn コールバック関数の対応する呼び出しによって返されるエラー コードを返します。 ただし、MPI 関数が MPI_STATUSES_IGNORE渡された場合、各コールバック関数によって返される個々のエラー コードは失われます。
Fortran
SUBROUTINE GREQUEST_FREE_FUNCTION(EXTRA_STATE, IERROR)
INTEGER IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
注釈
free_fn関数は、一般化された要求が解放されたときにユーザー割り当てリソースをクリーンするために呼び出されます。
free_fn コールバックは、MPI_{Wait|このコールバックに関連付けられた一般化された要求を完了した Test}{any|some|all} 呼び出し。 free_fn は、同じ要求に対する query_fn の呼び出し後に呼び出されます。 ただし、MPI 呼び出しが複数の一般化された要求を完了した場合、 free_fn コールバック関数が呼び出される順序は MPI によって指定されません。
free_fn コールバックは、 MPI_Request_free の呼び出しによって解放される一般化された要求に対しても呼び出されます ( MPI_ の呼び出しはありません {Wait|Test}{any|some|all} は、このような要求に対して発生します)。 この場合、コールバック関数は、MPI 呼び出し MPI_Request_freeで呼び出されるか、MPI 呼び出し MPI_Grequest_completeで呼び出されます。つまり、この場合、実際の解放コードは、 MPI_Request_free と MPI_Grequest_complete の両方の呼び出しが発生するとすぐに実行されます。 要求は、 free_fn が完了するまで割り当て解除されません。 free_fnは、正しいプログラムによって要求ごとに 1 回だけ呼び出されることに注意してください。
要件
製品 |
HPC Pack 2012 MS-MPI 再頒布可能パッケージ、HPC Pack 2008 R2 MS-MPI 再頒布可能パッケージ、HPC Pack 2008 MS-MPI 再頒布可能パッケージまたは HPC Pack 2008 クライアント ユーティリティ |
ヘッダー |
Mpi.h;Mpif.h |