MPI_Grequest_start, funkcja
Tworzy i zwraca żądanie zdefiniowane przez użytkownika.
Składnia
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
);
Parametry
query_fn [in]
Funkcja wywołania zwrotnego wywoływana po wysłaniu zapytania o stan żądania.free_fn [in]
Funkcja wywołania zwrotnego wywoływana po uwolnieniu żądania.cancel_fn [in]
Funkcja wywołania zwrotnego wywoływana po anulowaniu żądania.extra_state [in, opcjonalnie]
Dodatkowy stan przekazany do powyższych funkcji.żądanie [out]
Uogólnione żądanie.
Wartość zwracana
Zwraca MPI_SUCCESS po powodzeniu. W przeciwnym razie zwracana wartość jest kodem błędu.
W fortran wartość zwracana jest przechowywana w parametrze 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
Uwagi
Wartości zwracane z funkcji wywołania zwrotnego muszą być prawidłowym kodem błędu MPI lub klasą. Ta wartość może być wartością zwracaną z dowolnej procedury MPI (z jednym wyjątkiem zanotowany poniżej) lub dowolną z klas błędów MPI. W przypadku programów przenośnych można użyć MPI_ERR_OTHER ; aby podać bardziej szczegółowe informacje, utwórz nową klasę błędów MPI lub kod z MPI_Add_error_class lub MPI_Add_error_code i zwróć daną wartość.
Standard MPI nie jest jasny dla wartości zwracanych z procedur wywołania zwrotnego. Istnieją jednak uwagi w standardzie, które sugerują, że są to kody błędów MPI. Na przykład strony 169 wiersz od 46 do strony 170, wiersz 1 wymagają, aby free_fn zwrócić kod błędu MPI, który może być używany w funkcjach uzupełniania MPI po powrocie MPI_ERR_IN_STATUS.
Jeden specjalny przypadek to wartość błędu zwrócona przez MPI_Comm_dup , gdy procedura wywołania zwrotnego atrybutu zwraca błąd. Standard MPI nie jest jasne, jakie wartości mogą być używane do wskazania powrotu błędu. Ponadto zestaw testowy Intel MPI używał wartości innych niż zero do wskazywania awarii i oczekuje się, że te wartości zostaną zwrócone przez MPI_Comm_dup , gdy procedury atrybutów napotkały błąd. Takie wartości błędów mogą nie być prawidłowymi kodami błędów lub klasami MPI. W związku z tym jest to odpowiedzialność użytkownika za używanie prawidłowych kodów błędów MPI w zamian z wywołań zwrotnych atrybutów, jeśli te kody błędów mają zostać zwrócone przez uogólnione wywołanie zwrotne żądań lub wykryć i przekonwertować te kody błędów na prawidłowe kody błędów MPI (przypomnij sobie, że klasy błędów MPI są prawidłowymi kodami błędów).
Wymagania
Produkt |
Pakiet redystrybucyjny HPC Pack 2012 MS-MPI, pakiet redystrybucyjny HPC Pack 2008 R2 MS-MPI, pakiet redystrybucyjny HPC Pack 2008 MS-MPI lub narzędzia klienckie HPC Pack 2008 |
Nagłówek |
Mpi.h; Mpif.h |
Biblioteka |
Msmpi.lib |
DLL |
Msmpi.dll |