Compartilhar via


função de retorno de chamada MPI_Grequest_free_function

MPI_Grequest_free_function é um espaço reservado para o nome da função definida pelo aplicativo.

Sintaxe

int MPI_Grequest_free_function(
  _In_opt_ void *extra_state
);

Parâmetros

  • extra_state [in, opcional]
    Estado extra.

Retornar valor

Todas as funções de retorno de chamada retornam um código de erro. O código é passado de volta e tratado conforme apropriado para o código de erro pela função MPI que invocou a função de retorno de chamada. Por exemplo, se os códigos de erro forem retornados, o código de erro retornado pela função de retorno de chamada será retornado pela função MPI que invocou a função de retorno de chamada. No caso de uma chamada MPI_Waitany e MPI_Testany que invoca query_fn e free_fn, a chamada de MPI retornará o código de erro retornado pelo último retorno de chamada, ou seja, free_fn. Se uma ou mais das solicitações em uma chamada para MPI_Waitsome, MPI_Waitall, MPI_Testsome ou MPI_Testall falharem, a chamada de MPI retornará MPI_ERR_IN_STATUS. Nesse caso, se a chamada MPI tiver sido passada uma matriz de status, o MPI retornará em cada um dos status que correspondem a uma solicitação generalizada concluída o código de erro retornado pela invocação correspondente de sua função de retorno de chamada free_fn. No entanto, se a função MPI tiver sido passada MPI_STATUSES_IGNORE, os códigos de erro individuais retornados por cada função de retorno de chamada serão perdidos.

Fortran

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

Comentários

A função free_fn é invocada para limpo recursos alocados pelo usuário quando a solicitação generalizada é liberada.

O retorno de chamada free_fn é invocado pelo MPI_{Wait|Test}{any|alguma chamada|all} que concluiu a solicitação generalizada associada a esse retorno de chamada. free_fn é invocado após a chamada para query_fn para a mesma solicitação. No entanto, se a chamada MPI tiver concluído várias solicitações generalizadas, a ordem na qual free_fn funções de retorno de chamada são invocadas não será especificada pelo MPI.

O retorno de chamada free_fn também é invocado para solicitações generalizadas que são liberadas por uma chamada para MPI_Request_free (nenhuma chamada para MPI_{Wait|Test}{any|some|all} ocorrerá para essa solicitação). Nesse caso, a função de retorno de chamada será chamada na chamada de MPI MPI_Request_free ou na chamada de MPI MPI_Grequest_complete, o que acontecer por último, ou seja, nesse caso, o código de liberação real será executado assim que as chamadas MPI_Request_free e MPI_Grequest_complete tiverem ocorrido. A solicitação não será desalocada até que free_fn seja concluída. Observe que free_fn será invocado apenas uma vez por solicitação por um programa correto.

Requisitos

Produto

Pacote Redistribuível do HPC Pack 2012 MS-MPI, Pacote Redistribuível HPC Pack 2008 R2 MS-MPI, Pacote Redistribuível do HPC Pack 2008 MS-MPI ou Utilitários de Cliente HPC Pack 2008

parâmetro

Mpi.h; Mpif.h

Confira também

Funções externas de MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany