共用方式為


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_fnfree_fnMPI_WaitanyMPI_Testany呼叫的情況下,MPI 呼叫會傳回最後回呼所傳回的錯誤碼,也就是free_fn。 如果在呼叫MPI_WaitsomeMPI_Waitall、MPI_TestsomeMPI_Testall中的一或多個要求失敗,MPI 呼叫會傳回MPI_ERR_IN_STATUS。 在這種情況下,如果 MPI 呼叫已傳遞狀態陣列,則 MPI 會在每個對應至已完成一般化狀態的狀態中傳回,其 free_fn 回呼函式的對應調用所傳回的錯誤碼。 不過,如果已MPI_STATUSES_IGNORE傳遞 MPI 函 式,則每個回呼函式傳回的個別錯誤碼將會遺失。

Fortran

    SUBROUTINE GREQUEST_FREE_FUNCTION(EXTRA_STATE, IERROR)
        INTEGER IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

備註

釋放一般化要求時,會叫用 free_fn 函式來清除使用者配置的資源。

MPI_{Wait| 會叫用free_fn回呼|Test}{any|some|all} 呼叫,該呼叫已完成與此回呼相關聯的一般化要求。 free_fn 在呼叫相同要求 query_fn 之後叫用。 不過,如果 MPI 呼叫已完成多個一般化要求,則 MPI 不會指定 叫用free_fn 回呼函式的順序。

free_fn回呼也會針對呼叫所釋放的一般化要求叫用,MPI_Request_free ( 不呼叫 MPI_{Wait|Test}{any|some|all} 會針對這類要求) 發生。 在此情況下,會在 MPI 呼叫 MPI_Request_free或 MPI 呼叫MPI_Grequest_complete呼叫中呼叫回呼函式,亦即,在此案例中,會在呼叫 MPI_Request_freeMPI_Grequest_complete 發生時立即執行實際的釋放程式代碼。 要求在 free_fn 完成之前不會解除分配。 請注意,free_fn只會由正確的程序針對每個要求叫用一次。

規格需求

產品

HPC Pack 2012 MS-MPI 可轉散發套件、HPC Pack 2008 R2 MS-MPI 可轉散發套件、HPC Pack 2008 MS-MPI 可轉散發套件或 HPC Pack 2008 用戶端公用程式

標頭

Mpi.h;Mpif.h

另請參閱

MPI 外部函式

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany