Поделиться через


функция MPI_Improbe

Пробует сообщение неблокирующим способом. Предоставляет механизм для получения определенного сообщения, которое было сопоставлено независимо от промежуточных операций проверки и получения. Соответствующее сообщение выводится из очереди получения, что дает приложению возможность решить, как получить сообщение на основе сведений, возвращенных неблокирующей операцией проверки соответствия. Затем соответствующее сообщение получается с помощью функции MPI_Mrecv или MPI_Imrecv .

Синтаксис

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
);

Параметры

  • source [in]
    Исходный ранг или MPI_ANY_SOURCE.

  • тег [in]
    Тег сообщения или MPI_ANY_TAG.

  • comm [in]
    Дескриптор коммуникатора MPI.

  • flag [out]
    При возврате содержит указатель на целое число, указывающее, совпадают ли указанные источник, тег и comm . Ненулевое значение указывает, что параметры совпадают.

  • message [out]
    При возврате содержит указатель на соответствующее сообщение.

  • status [out]
    При возврате содержит указатель на структуру MPI_Status , в которой хранятся сведения о сообщении.

Возвращаемое значение

Возвращает MPI_SUCCESS об успешном выполнении. В противном случае возвращаемое значение является кодом ошибки.

В Fortran возвращаемое значение хранится в параметре IERROR .

Fortran

    MPI_IMPROBE(SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS, IERROR)
          INTEGER SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR

Комментарии

Эта функция возвращает флаг = true , если есть сообщение, которое может быть получено и соответствует шаблону, заданному источником аргументов, тегом и comm. Вызов соответствует тому же сообщению, которое было бы получено вызовом MPI_Recv выполнено в той же точке программы и возвращает в состоянии то же значение, которое было бы возвращено MPI_Recv. Кроме того, он возвращает в сообщении дескриптор сопоставленного сообщения. В противном случае вызов возвращает флаг = false и оставляет состояние и сообщение неопределенными.

Требования

Продукт

Microsoft MPI версии 6

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

См. также раздел

Функции типа "точка — точка" MPI

MPI_Mprobe

MPI_Recv

MPI_Imrecv