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


функция MPI_Imrecv

Выполняет неблокирующее получение сообщения, сопоставленного MPI_Mprobe или MPI_Improbe.

Синтаксис

int MPIAPI MPI_Imrecv(
  _Out_   void         *buf,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _Inout_ MPI_Message  *message,
  _Out_   MPI_Request  *request
);

Параметры

  • buf [out]
    Указатель на адрес буфера получения.

  • count [in]
    Количество элементов типа данных в buf.

  • datatype [in]
    Тип данных MPI элементов в buf.

  • message [in, out]
    Содержит указатель на сообщение.

  • request [out]
    При возврате содержит указатель на дескриптор MPI_REQUEST , представляющий операцию связи.

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

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

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

Fortran

    MPI_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR

Комментарии

Эта функция является неблокирующим вариантом MPI_Mrecv и запускает неблокирующее получение сопоставленного сообщения. Семантика завершения аналогична MPI_Irecv.

При возвращении из этой функции для дескриптора сообщения устанавливается значение MPI_MESSAGE_NULL.

Если эта функция вызывается с MPI_MESSAGE_NO_PROC в качестве аргумента сообщения, вызов возвращается немедленно с объектом запроса, который, после завершения, возвращает объект состояния с исходным = MPI_PROC_NULL, тегом = MPI_ANY_TAG и count = 0, как если бы был получен от MPI_PROC_NULL. Вызов этой функции с MPI_MESSAGE_NULL является ошибочным.

Требования

Продукт

Microsoft MPI версии 6

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

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

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

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe