Compartilhar via


Função MPI_Grequest_start

Cria e retorna uma solicitação definida pelo usuário.

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 [in]
    Função de retorno de chamada invocada quando status de solicitação é consultada.

  • free_fn [in]
    Função de retorno de chamada invocada quando a solicitação é liberada.

  • cancel_fn [in]
    Função de retorno de chamada invocada quando a solicitação é cancelada.

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

  • solicitação [out]
    Solicitação generalizada.

Retornar valor

Retorna MPI_SUCCESS em caso de êxito. Caso contrário, o valor retornado será um código de erro.

Em Fortran, o valor retornado é 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

Comentários

Os valores retornados das funções de retorno de chamada devem ser um código de erro ou classe MPI válido. Esse valor pode ser o valor retornado de qualquer rotina de MPI (com uma exceção indicada abaixo) ou qualquer uma das classes de erro de MPI. Para programas portáteis, MPI_ERR_OTHER podem ser usados; para fornecer informações mais específicas, crie uma nova classe de erro de MPI ou código com MPI_Add_error_class ou MPI_Add_error_code e retorne esse valor.

O padrão MPI não está claro nos valores retornados das rotinas de retorno de chamada. No entanto, há observações no padrão que implicam que esses são códigos de erro de MPI. Por exemplo, as páginas 169 linha 46 até a página 170, linha 1 exigem que o free_fn retorne um código de erro MPI que pode ser usado nas funções de conclusão de MPI quando eles retornam MPI_ERR_IN_STATUS.

O único caso especial é o valor de erro retornado por MPI_Comm_dup quando a rotina de retorno de chamada de atributo retorna uma falha. O padrão MPI não está claro sobre quais valores podem ser usados para indicar um retorno de erro. Além disso, o conjunto de testes do Intel MPI fez uso de valores diferentes de zero para indicar falha e esperava que esses valores fossem retornados pelo MPI_Comm_dup quando as rotinas de atributo encontrassem um erro. Esses valores de erro podem não ser códigos de erro ou classes de MPI válidos. Por isso, é responsabilidade do usuário usar códigos de erro MPI válidos em troca dos retornos de chamada de atributo, se esses códigos de erro devem ser retornados por um retorno de chamada de solicitação generalizado ou detectar e converter esses códigos de erro em códigos de erro MPI válidos (lembre-se de que as classes de erro MPI são códigos de erro válidos).

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

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções externas de MPI

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function