Udostępnij za pośrednictwem


funkcja wywołania zwrotnego MPI_Grequest_query_function

MPI_Grequest_query_function jest symbolem zastępczym nazwy funkcji zdefiniowanej przez aplikację.

Składnia

int MPI_Grequest_query_function(
  _In_opt_ void       *extra_state,
  _Out_    MPI_Status *status
);

Parametry

  • extra_state [in, opcjonalnie]
    Stan dodatkowy.

  • status [out]
    Obiekt stanu MPI.

Wartość zwracana

Wszystkie funkcje wywołania zwrotnego zwracają kod błędu. Kod jest przekazywany z powrotem i traktowany zgodnie z potrzebami dla kodu błędu przez funkcję MPI, która wywołała funkcję wywołania zwrotnego. Jeśli na przykład kody błędów zostaną zwrócone, kod błędu zwrócony przez funkcję wywołania zwrotnego zostanie zwrócony przez funkcję MPI, która wywołała funkcję wywołania zwrotnego. W przypadku MPI_{Wait|Test}każde wywołanie, które wywołuje zarówno query_fn, jak i free_fn, wywołanie MPI zwróci kod błędu zwrócony przez ostatnie wywołanie zwrotne, a mianowicie free_fn. Jeśli co najmniej jedno żądanie w wywołaniu MPI_{Wait|Test}{some|all} nie powiódł się, a następnie wywołanie MPI zwróci MPI_ERR_IN_STATUS. W takim przypadku, jeśli wywołanie MPI zostało przekazane tablicy stanów, funkcja MPI zwróci w każdym ze stanów, które odpowiadają ukończonym uogólnionym żądaniu kod błędu zwrócony przez odpowiednie wywołanie funkcji wywołania zwrotnego free_fn. Jeśli jednak funkcja MPI została przekazana MPI_STATUSES_IGNORE, poszczególne kody błędów zwrócone przez poszczególne funkcje wywołania zwrotnego zostaną utracone.

Fortran

    SUBROUTINE GREQUEST_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Uwagi

Funkcja query_fn oblicza stan, który powinien zostać zwrócony dla uogólnionego żądania. Stan zawiera również informacje o pomyślnym/nieudanym anulowaniu żądania (wynik, który ma zostać zwrócony przez MPI_Test_cancelled).

Wywołanie zwrotne query_fn jest wywoływane przez MPI_{Wait|Test}{any|some|all} wywołanie, które zakończyło uogólnione żądanie skojarzone z tym wywołaniem zwrotnym. Funkcja wywołania zwrotnego jest również wywoływana przez wywołania do MPI_Request_get_status, jeśli żądanie zostanie ukończone po wywołaniu. W obu przypadkach wywołanie zwrotne jest przekazywane odwołanie do odpowiedniej zmiennej stanu przekazanej przez użytkownika do wywołania MPI; stan ustawiony przez funkcję wywołania zwrotnego jest zwracany przez wywołanie MPI. Jeśli użytkownik podał MPI_STATUS_IGNORE lub MPI_STATUSES_IGNORE do funkcji MPI, która powoduje wywołanie query_fn , interfejs MPI przekaże prawidłowy obiekt stanu do query_fn, a ten stan zostanie zignorowany po powrocie funkcji wywołania zwrotnego. Należy pamiętać, że query_fn jest wywoływana dopiero po wywołaniu MPI_Grequest_complete w żądaniu; Może być wywoływany kilka razy dla tego samego uogólnionych żądań, np. jeśli użytkownik wywołuje MPI_Request_get_status kilka razy dla tego żądania. Zwróć również uwagę, że wywołanie metody MPI_{Wait|Test}{niektóre|wszystkie} może spowodować wiele wywołań funkcji wywołania zwrotnego query_fn, po jednym dla każdego uogólnionego żądania zakończonego przez wywołanie MPI. Kolejność tych wywołań nie jest określona przez interfejs MPI.

Wymagania

Produkt

Pakiet redystrybucyjny PROGRAMU HPC Pack 2012 MS-MPI, pakiet redystrybucyjny HPC Pack 2008 R2 MS-MPI, pakiet redystrybucyjny PAKIETU HPC Pack 2008 MS-MPI lub narzędzia klienckie PAKIETU HPC Pack 2008

Nagłówek

Mpi.h; Mpif.h

Zobacz też

Funkcje zewnętrzne MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany