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 [in]
查詢要求狀態時叫用的回呼函式。free_fn [in]
釋放要求時叫用的回呼函式。cancel_fn [in]
取消要求時叫用的回呼函式。extra_state [in, optional]
傳遞至上述函式的額外狀態。要求 [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 例程的傳回值, (下列一個例外狀況) 或任何 MPI 錯誤類別。 針對可攜式程式,可以使用 MPI_ERR_OTHER ;若要提供更具體的資訊,請使用 MPI_Add_error_class 或 MPI_Add_error_code 建立新的 MPI 錯誤類別或程式代碼,並傳回該值。
回呼例程的傳回值上,MPI 標準並不清楚。 不過,標準中有一點意指這些是 MPI 錯誤碼。 例如,第 169 行 46 到第 170 頁,第 1 行會要求 free_fn 傳回 MPI 錯誤碼,以便在傳回 MPI_ERR_IN_STATUS時用於 MPI 完成函式。
其中一個特殊案例是當屬性回呼例程傳回失敗時 ,MPI_Comm_dup 所傳回的錯誤值。 MPI 標準不清楚哪些值可用來指出錯誤傳回。 此外,Intel MPI 測試套件會使用非零值來表示失敗,而且當屬性例程發生錯誤時 ,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 |