Compartilhar via


MPI_Grequest_query_function função de retorno de chamada

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

Sintaxe

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

Parâmetros

  • extra_state [in, opcional]
    Estado extra.

  • status [out]
    Objeto status MPI.

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 um MPI_{Wait|Test}qualquer chamada que invoque 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_{Wait|Falha em Test}{some|all} e, em seguida, a chamada de MPI retornará MPI_ERR_IN_STATUS. Nesse caso, se a chamada MPI tiver passado 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_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Comentários

A função query_fn calcula o status que deve ser retornado para a solicitação generalizada. O status também inclui informações sobre o cancelamento bem-sucedido/malsucedido da solicitação (resultado a ser retornado por MPI_Test_cancelled).

O retorno de chamada query_fn é invocado pelo MPI_{Wait|Test}{any|some|all} call that completed the generalized request associated with this callback. A função de retorno de chamada também é invocada por chamadas para MPI_Request_get_status, se a solicitação for concluída quando a chamada ocorrer. Em ambos os casos, o retorno de chamada é passado uma referência à variável status correspondente passada pelo usuário para a chamada de MPI; o status definido pela função de retorno de chamada é retornado pela chamada MPI. Se o usuário forneceu MPI_STATUS_IGNORE ou MPI_STATUSES_IGNORE para a função MPI que faz com que query_fn sejam chamados, o MPI passará um objeto de status válido para query_fn e esse status será ignorado após o retorno da função de retorno de chamada. Observe que query_fn é invocado somente depois que MPI_Grequest_complete é chamado na solicitação; ele poderá ser invocado várias vezes para a mesma solicitação generalizada, por exemplo, se o usuário chamar MPI_Request_get_status várias vezes para essa solicitação. Observe também que uma chamada para MPI_{Wait|Test}{some|all} pode causar várias invocações de query_fn funções de retorno de chamada, uma para cada solicitação generalizada concluída pela chamada de MPI. A ordem dessas invocações não é especificada pelo MPI.

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