Compartilhar via


função MPI_Imrecv

Executa um recebimento sem bloqueio para uma mensagem correspondente a MPI_Mprobe ou MPI_Improbe.

Sintaxe

int MPIAPI MPI_Imrecv(
  _Out_   void         *buf,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _Inout_ MPI_Message  *message,
  _Out_   MPI_Request  *request
);

Parâmetros

  • buf [out]
    Um ponteiro para o endereço do buffer de recebimento.

  • count [in]
    O número de elementos de tipo de dados no buf.

  • datatype [in]
    O tipo de dados MPI dos elementos em buf.

  • message [in, out]
    Contém um ponteiro para a mensagem.

  • solicitação [out]
    No retorno, contém um ponteiro para um identificador de MPI_REQUEST que representa a operação de comunicação.

Retornar valor

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

No Fortran, o valor retornado é armazenado no parâmetro IERROR .

Fortran

    MPI_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR

Comentários

Essa função é a variante sem bloqueio de MPI_Mrecv e inicia um recebimento não bloqueado de uma mensagem correspondente. A semântica de conclusão é semelhante a MPI_Irecv.

Ao retornar dessa função, o identificador de mensagem é definido como MPI_MESSAGE_NULL.

Se essa função for chamada com MPI_MESSAGE_NO_PROC como o argumento de mensagem, a chamada retornará imediatamente com um objeto de solicitação que, quando concluído, produzirá um objeto status definido comoMPI_PROC_NULL de origem = ,MPI_ANY_TAG de marca = e contagem = 0, como se um recebimento de MPI_PROC_NULL fosse emitido. Uma chamada para essa função com MPI_MESSAGE_NULL é errônea.

Requisitos

Produto

Microsoft MPI v6

parâmetro

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções ponto a ponto de MPI

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe