Partilhar via


função MPI_Improbe

Sonda uma mensagem de forma não bloqueada. Fornece um mecanismo para receber a mensagem específica que foi correspondida independentemente das operações de pesquisa/receção intervenientes. A mensagem correspondida é desativada na fila de receção, dando à aplicação a oportunidade de decidir como receber a mensagem com base nas informações devolvidas pela operação de pesquisa correspondente que não está a bloquear. Em seguida, a mensagem correspondente é recebida com 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

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

  • etiqueta [em]
    Etiqueta de mensagem ou MPI_ANY_TAG.

  • vírgula [em]
    Identificador do comunicador MPI.

  • sinalizador [fora]
    Na devolução, contém um ponteiro para um número inteiro que indica se a origem, a etiqueta e a vírgula especificadas são correspondidas. Um valor não zero indica que os parâmetros são correspondidos.

  • mensagem [fora]
    Na devolução, contém um ponteiro para a mensagem correspondente.

  • status [out]
    Na devolução, contém um ponteiro para uma estrutura de MPI_Status onde as informações sobre a mensagem são armazenadas.

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

Observações

Esta função devolve o sinalizador = verdadeiro se existir uma mensagem que possa ser recebida e que corresponda ao padrão especificado pela origem, etiqueta e vírgula dos argumentos. A chamada corresponde à mesma mensagem que teria sido recebida por uma chamada para MPI_Recv executada no mesmo ponto do programa e devolve no estado o mesmo valor que teria sido devolvido por MPI_Recv. Além disso, devolve na mensagem uma alça para a mensagem correspondente. Caso contrário, a chamada devolve um sinalizador = falso e deixa o estado e a mensagem indefinidos.

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_Mprobe

MPI_Recv

MPI_Imrecv