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


функция MPI_Irecv

Инициирует операцию получения и возвращает дескриптор запрошенной операции связи.

Синтаксис

int MPIAPI MPI_Irecv(
  _In_opt_ void         *buf,
           int          count,
           MPI_Datatype datatype,
           int          source,
           int          tag,
           MPI_Comm     comm,
  _Out_    MPI_Request  *request
);

Параметры

  • buf [in, необязательный]
    Указатель на буфер, содержащий отправляемые данные.

  • count
    Количество элементов в буферном массиве. Если часть данных сообщения пуста, задайте для параметра count значение 0.

  • datatype
    Тип данных элементов в буфере.

  • source
    Ранг процесса отправки в указанном коммуникаторе. Укажите константу MPI_ANY_SOURCE , чтобы указать, что любой источник является допустимым.

  • Тег
    Тег сообщения, который можно использовать для различения различных типов сообщений. Укажите константу MPI_ANY_TAG , чтобы указать, что любой тег является допустимым.

  • Comm
    Дескриптор для коммуникатора.

  • request [out]
    При возврате содержит дескриптор для запрошенной операции связи.

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

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

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

Fortran

    MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR

Комментарии

Эта функция является локальной, она возвращается немедленно и не ожидает никакого другого процесса. Эта функция может возвращать данные перед получением сообщения в буфер.

Требования

Продукт

Распространяемый пакет HPC 2012 MS-MPI, пакет HPC 2008 R2 распространяемый пакет MS-MPI, пакет HPC 2008 MS-MPI или клиентские служебные программы пакета HPC 2008

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

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

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

MPI_Send

MPI_Recv

MPI_Wait

MPI_Test

MPI_Comm

MPI_Datatype