Partilhar via


MPI_Grequest_free_function função de chamada de retorno

MPI_Grequest_free_function é um marcador de posição para o nome da função definida pela aplicação.

Sintaxe

int MPI_Grequest_free_function(
  _In_opt_ void *extra_state
);

Parâmetros

  • extra_state [em, opcional]
    Estado extra.

Valor devolvido

Todas as funções de chamada de retorno devolvem um código de erro. O código é devolvido e tratado conforme adequado para o código de erro pela função MPI que invocou a função de chamada de retorno. Por exemplo, se forem devolvidos códigos de erro, o código de erro devolvido pela função de chamada de retorno será devolvido pela função MPI que invocou a função de chamada de retorno. No caso de uma chamada de MPI_Waitany e MPI_Testany que invoca query_fn e free_fn, a chamada MPI devolverá o código de erro devolvido pela última chamada de retorno, nomeadamente free_fn. Se um ou mais dos pedidos numa chamada para MPI_Waitsome, MPI_Waitall, MPI_Testsome ou MPI_Testall falharem, a chamada MPI irá devolver MPI_ERR_IN_STATUS. Nesse caso, se a chamada MPI tiver sido transmitida uma matriz de estados, o MPI devolverá em cada um dos estados que correspondem a um pedido generalizado concluído o código de erro devolvido pela invocação correspondente da respetiva função de chamada de retorno free_fn . No entanto, se a função MPI tiver sido transmitida MPI_STATUSES_IGNORE, os códigos de erro individuais devolvidos por cada função de chamada de retorno serão perdidos.

Fortran

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

Observações

A função free_fn é invocada para limpar os recursos alocados pelo utilizador quando o pedido generalizado é libertado.

A chamada de retorno free_fn é invocada pelo MPI_{Wait|Test}{any|some|all} chamada que concluiu o pedido generalizado associado a esta chamada de retorno. free_fn é invocada após a chamada para query_fn para o mesmo pedido. No entanto, se a chamada de MPI tiver concluído vários pedidos generalizados, a ordem pela qual free_fn funções de chamada de retorno são invocadas não é especificada pelo MPI.

A chamada de retorno free_fn também é invocada para pedidos generalizados que são libertados por uma chamada para MPI_Request_free (nenhuma chamada para MPI_{Wait|Test}{any|some|all} ocorrerá para tal pedido). Neste caso, a função de chamada de retorno será chamada no MPI_Request_free de chamada de MPI ou na chamada de MPI MPI_Grequest_complete, o que acontecer da última vez, ou seja, neste caso, o código de libertação real é executado assim que as chamadas MPI_Request_free e MPI_Grequest_complete ocorrerem. O pedido só é desalocado depois de free_fn concluído. Tenha em atenção que free_fn será invocada apenas uma vez por pedido por um programa correto.

Requisitos

Produto

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package ou HPC Pack 2008 Client Utilities

Cabeçalho

Mpi.h; Mpif.h

Ver também

Funções Externas do MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany