функция 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по