функция MPI_Igather

Собирает данные от всех участников группы к одному участнику без блокировки.

Синтаксис

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            MPI_Datatype sendtype,
  _Out_opt_ void         *recvbuf,
  _In_      int          recvcount,
  _In_      MPI_Datatype recvtype,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Параметры

  • sendbuf [in]
    Указатель на буфер, содержащий данные, отправляемые в корень. Буфер состоит из последовательных элементов sendcount MPI_Datatype, указанных дескриптором типа отправки. Длина сообщения указывается с точки зрения количества элементов, а не количества байтов.

  • sendcount
    Количество элементов sendtype в sendbuf. Если значение равно нулю, то часть данных сообщения пуста.

  • sendtype
    Дескриптор MPI_Datatype , представляющий тип данных каждого элемента в sendbuf.

  • recvbuf [out, optional]
    Указатель на буфер, содержащий данные, полученные из каждого процесса в корневом каталоге, включая данные, отправленные корневым процессом (значимые только в корне). Recvbuf буфера приема игнорируется для всех процессов, не являющихся корневыми. В корневом процессе recvbufсостоит из последовательных элементов MPI_Datatype , указанных дескриптором recvtype . Длина сообщения указывается с точки зрения количества элементов, а не количества байтов.

  • recvcount [in]
    Количество элементов recvtype в recvbuf. Если значение равно нулю, часть данных сообщения пуста (значима только в корневом каталоге).

  • recvtype [in]
    Дескриптор MPI_Datatype , представляющий тип данных каждого элемента в recvbuf (значимый только в корне).

  • root [in]
    Ранг принимающего процесса в MPI_Commком.

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

  • request [out]
    Дескриптор MPI_Request , представляющий операцию связи.

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

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

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

Fortran

    MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Комментарии

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

Все вызовы завершения (например, MPI_Wait) поддерживаются для неблокирующих операций сбора.

Требования

Продукт

Microsoft MPI версии 6

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

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

Коллективные функции MPI

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome