Compartilhar via


Função MPI_Improbe

Investiga uma mensagem de maneira não bloqueada. Fornece um mecanismo para receber a mensagem específica que foi correspondida, independentemente das operações de investigação/recebimento intermediadas. A mensagem correspondente é desativada da fila de recebimento, dando ao aplicativo a oportunidade de decidir como receber a mensagem com base nas informações retornadas pela operação de investigação correspondente sem bloqueio. Em seguida, a mensagem correspondente é recebida usando a função MPI_Mrecv ou MPI_Imrecv .

Sintaxe

int MPIAPI MPI_Improbe(
  _In_  int         source,
  _In_  int         tag,
  _In_  MPI_Comm    comm,
  _Out_ Int         *flag,
  _Out_ MPI_Message *message,
  _Out_ MPI_Status  *status
);

Parâmetros

  • source [in]
    Classificação de origem ou MPI_ANY_SOURCE.

  • tag [in]
    Marca de mensagem ou MPI_ANY_TAG.

  • comm [in]
    Identificador do comunicador de MPI.

  • sinalizador [out]
    No retorno, contém um ponteiro para um inteiro que indica se a origem, a marca e a comm especificadas são correspondentes. Um valor diferente de zero indica que os parâmetros são correspondidos.

  • mensagem [out]
    No retorno, contém um ponteiro para a mensagem correspondente.

  • status [out]
    No retorno, contém um ponteiro para uma estrutura MPI_Status em que as informações sobre a mensagem são armazenadas.

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_IMPROBE(SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS, IERROR)
          INTEGER SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR

Comentários

Essa função retornará o sinalizador = true se houver uma mensagem que possa ser recebida e que corresponda ao padrão especificado pela origem, marca e comm dos argumentos. A chamada corresponde à mesma mensagem que teria sido recebida por uma chamada para MPI_Recv executada no mesmo ponto do programa e retorna em status o mesmo valor que teria sido retornado por MPI_Recv. Além disso, ele retorna na mensagem um identificador para a mensagem correspondente. Caso contrário, a chamada retornará o sinalizador = false e deixará status e a mensagem indefinidas.

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 do MPI

MPI_Mprobe

MPI_Recv

MPI_Imrecv