共用方式為


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_classMPI_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

另請參閱

MPI 外部函式

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function