Partilhar via


função MPI_Imrecv

Efetua uma receção sem bloqueio para uma mensagem correspondida por 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 [fora]
    Um ponteiro para o endereço da memória intermédia de receção.

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

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

  • mensagem [dentro, fora]
    Contém um ponteiro para a mensagem.

  • pedido [fora]
    Na devolução, contém um ponteiro para um identificador de MPI_REQUEST que representa a operação de comunicação.

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_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR

Observações

Esta função é a variante sem bloqueio de MPI_Mrecv e inicia uma receção sem bloqueio de uma mensagem correspondente. A semântica de conclusão é semelhante à MPI_Irecv.

Na devolução desta função, a alça de mensagem está definida como MPI_MESSAGE_NULL.

Se esta função for chamada com MPI_MESSAGE_NO_PROC como argumento de mensagem, a chamada devolve imediatamente com um objeto de pedido que, quando concluída, irá gerar um objeto de estado definido comoMPI_PROC_NULL de origem = , etiqueta = MPI_ANY_TAG e contagem = 0, como se uma receção de MPI_PROC_NULL fosse emitida. Uma chamada para esta função com MPI_MESSAGE_NULL é errónea.

Requisitos

Produto

Microsoft MPI v6

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções Ponto a Ponto do MPI

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe