Partilhar via


MPI_Grequest_query_function função de chamada de retorno

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

Sintaxe

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

Parâmetros

  • extra_state [em, opcional]
    Estado extra.

  • status [out]
    Objeto de estado de MPI.

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 um MPI_{Wait|Teste}qualquer chamada que invoque 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_{Aguardar|Test}{some|all} falhou e, em seguida, 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_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Observações

A função query_fn calcula o estado que deve ser devolvido para o pedido generalizado. O estado também inclui informações sobre o cancelamento bem-sucedido/sem êxito do pedido (resultado a devolver por MPI_Test_cancelled).

A chamada de retorno query_fn é invocada pelo MPI_{Wait|Test}{any|some|all} chamada que concluiu o pedido generalizado associado a esta chamada de retorno. A função de chamada de retorno também é invocada por chamadas para MPI_Request_get_status, se o pedido estiver concluído quando a chamada ocorrer. Em ambos os casos, é transmitida uma referência à variável de estado correspondente transmitida pelo utilizador à chamada MPI; o estado definido pela função de chamada de retorno é devolvido pela chamada de MPI. Se o utilizador tiver fornecido MPI_STATUS_IGNORE ou MPI_STATUSES_IGNORE à função MPI que faz com que query_fn seja chamada, o MPI transmitirá um objeto de estado válido para query_fn e este estado será ignorado após a devolução da função de chamada de retorno. Tenha em atenção que query_fn só é invocada depois de MPI_Grequest_complete ser chamado no pedido; pode ser invocado várias vezes para o mesmo pedido generalizado, por exemplo, se o utilizador chamar MPI_Request_get_status várias vezes para este pedido. Tenha também em atenção que uma chamada para MPI_{Wait|Test}{some|all} pode causar várias invocações de funções de chamada de retorno query_fn, uma para cada pedido generalizado que é concluído pela chamada de MPI. A ordem destas invocações não é especificada pelo MPI.

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