Partilhar via


função MPI_Grequest_start

Cria e devolve um pedido definido pelo utilizador.

Sintaxe

int MPIAPI MPI_Grequest_start(
  _In_     MPI_Grequest_query_function  *query_fn,
  _In_     MPI_Grequest_free_function   *free_fn,
  _In_     MPI_Grequest_cancel_function *cancel_fn,
  _In_opt_ void                         *extra_state,
  _Out_    MPI_Request                  *request
);

Parâmetros

  • query_fn [em]
    Função de chamada de retorno invocada quando o estado do pedido é consultado.

  • free_fn [em]
    Função de chamada de retorno invocada quando o pedido é libertado.

  • cancel_fn [em]
    Função de chamada de retorno invocada quando o pedido é cancelado.

  • extra_state [in, opcional]
    Estado extra transmitido para as funções acima.

  • pedido [fora]
    Pedido generalizado.

Valor devolvido

Devolve MPI_SUCCESS com êxito. Caso contrário, o valor devolvido é um código de erro.

Em Fortran, o valor devolvido é armazenado no parâmetro IERROR .

Fortran

    MPI_GREQUEST_START(QUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, REQUEST, IERROR)
        INTEGER REQUEST, IERROR
        EXTERNAL QUERY_FN, FREE_FN, CANCEL_FN
        INTEGER (KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Observações

Os valores devolvidos das funções de chamada de retorno têm de ser um código de erro ou classe de MPI válido. Este valor pode ser o valor devolvido de qualquer rotina de MPI (com uma exceção indicada abaixo) ou qualquer uma das classes de erro do MPI. Para programas portáteis, podem ser utilizados MPI_ERR_OTHER ; para fornecer informações mais específicas, crie uma nova classe ou código de erro MPI com MPI_Add_error_class ou MPI_Add_error_code e devolva esse valor.

A norma MPI não é clara sobre os valores devolvidos das rotinas de chamada de retorno. No entanto, existem notas na norma que implicam que se tratam de códigos de erro de MPI. Por exemplo, as páginas 169 linha 46 a página 170, linha 1, requerem que o free_fn devolva um código de erro MPI que possa ser utilizado nas funções de conclusão do MPI quando devolverem MPI_ERR_IN_STATUS.

O único caso especial é o valor de erro devolvido por MPI_Comm_dup quando a rotina de chamada de retorno do atributo devolve uma falha. A norma MPI não é clara sobre que valores podem ser utilizados para indicar uma devolução de erro. Além disso, o conjunto de testes intel MPI utilizou valores não zero para indicar uma falha e esperava que estes valores fossem devolvidos pelo MPI_Comm_dup quando as rotinas de atributos detetaram um erro. Estes valores de erro podem não ser códigos de erro ou classes de MPI válidos. Por este motivo, é da responsabilidade do utilizador utilizar códigos de erro de MPI válidos em troca das chamadas de retorno de atributos, se esses códigos de erro forem devolvidos por uma chamada de retorno de pedido generalizada ou para detetar e converter esses códigos de erro em códigos de erro de MPI válidos (lembre-se de que as classes de erro MPI são códigos de erro válidos).

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

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções Externas do MPI

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function