Udostępnij za pośrednictwem


funkcja wywołania zwrotnego MPI_Grequest_free_function

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

Składnia

int MPI_Grequest_free_function(
  _In_opt_ void *extra_state
);

Parametry

  • extra_state [in, opcjonalnie]
    Stan dodatkowy.

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 wywołania MPI_Waitany i MPI_Testany , które wywołuje zarówno wywołanie 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_Waitsome, MPI_Waitall, MPI_Testsome lub MPI_Testall zakończy się niepowodzeniem, 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_FREE_FUNCTION(EXTRA_STATE, IERROR)
        INTEGER IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Uwagi

Funkcja free_fn jest wywoływana w celu oczyszczenia zasobów przydzielonych przez użytkownika po uwolnieniu uogólnionych żądań.

Wywołanie zwrotne free_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. free_fn jest wywoływany po wywołaniu metody query_fn dla tego samego żądania. Jeśli jednak wywołanie MPI zakończyło wiele uogólnionych żądań, kolejność wywoływania funkcji wywołania zwrotnego free_fn nie jest określona przez interfejs MPI.

Wywołanie zwrotne free_fn jest również wywoływane dla uogólnionych żądań, które są zwalniane przez wywołanie MPI_Request_free (bez wywołania do MPI_{Wait|Test}{any|some|all} wystąpi dla takiego żądania). W takim przypadku funkcja wywołania zwrotnego będzie wywoływana w wywołaniu MPI MPI_Request_free lub w wywołaniu MPI MPI_Grequest_complete, w zależności od tego, co się dzieje ostatnio, tj. w tym przypadku rzeczywisty kod zwalniania jest wykonywany tak szybko, jak tylko oba wywołania MPI_Request_free i MPI_Grequest_complete wystąpiły. Żądanie nie zostanie cofnięty do momentu zakończenia free_fn . Należy pamiętać, że free_fn będą wywoływane tylko raz na żądanie przez poprawny program.

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