MPI_Grequest_query_function回呼函式
MPI_Grequest_query_function 是應用程式定義函數名稱的佔位元。
語法
int MPI_Grequest_query_function(
_In_opt_ void *extra_state,
_Out_ MPI_Status *status
);
參數
extra_state [in, 選擇性]
額外狀態。status [out]
MPI 狀態物件。
傳回值
所有回呼函式都會傳回錯誤碼。 程式代碼會傳回,並針對叫用回呼函式的 MPI 函式的錯誤碼適當處理。 例如,如果傳回錯誤碼,則回呼函式所傳回的錯誤碼將會由叫用回呼函式的 MPI 函式傳回。 在 MPI_{Wait 的情況下|Test}任何 叫用 query_fn 和 free_fn的呼叫,MPI 呼叫會傳回最後一個回呼所傳回的錯誤碼,也就是 free_fn。 如果呼叫中的一或多個要求 MPI_{Wait|Test}{some|all} 失敗,則 MPI 呼叫會傳回 MPI_ERR_IN_STATUS。 在這種情況下,如果 MPI 呼叫已傳遞狀態陣列,則 MPI 會傳回對應至已完成的一般化狀態的每個狀態, 要求其free_fn 回呼函式的對應調用所傳回的錯誤碼。 不過,如果 MPI 函式已傳遞MPI_STATUSES_IGNORE,則每個回呼函式傳回的個別錯誤碼將會遺失。
Fortran
SUBROUTINE GREQUEST_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
INTEGER STATUS(MPI_STATUS_SIZE), IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
備註
query_fn函式會計算應該針對一般化要求傳回的狀態。 狀態也包含MPI_Test_cancelled) 傳回的要求成功/失敗取消 (結果的相關信息。
query_fn MPI_{Wait|Test}{any|some|all} 呼叫,該呼叫已完成與此回呼相關聯的一般化要求。 如果呼叫發生時完成要求,呼叫也會叫用回呼函式 MPI_Request_get_status。 在這兩種情況下,回呼都會將參考傳遞給用戶傳遞至 MPI 呼叫的對應狀態變數;回呼函式所設定的狀態是由 MPI 呼叫所傳回。 如果使用者對導致呼叫query_fn的 MPI 函式提供MPI_STATUS_IGNORE或MPI_STATUSES_IGNORE,則 MPI 會將有效的狀態對象傳遞至query_fn,而且傳回呼函式時,將會忽略此狀態。 請注意,只有在要求上呼叫 MPI_Grequest_complete 之後,才會叫用 query_fn ;針對相同的一般化要求,可能會叫用數次,例如,如果使用者為此要求呼叫 MPI_Request_get_status 數次。 另請注意,呼叫 MPI_{Wait|Test}{some|all} 可能會導致多個 調用query_fn 回呼函式,每個由 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 |