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 |