ВУЗ:
Составители:
Рубрика:
- 11 -
4. Тип alltoall: каждый-каждому
Раздача/сборка БЛД от всех процес-
сов во все процессы
MPI_Alltoall(sendbuf, sendcount, send-
type, recvbuf, recvcount, recvtype,
root, comm).
5. Барьерная синхронизация группы
процессов MPI_Barrier
При вызове этой процедуры управ-
ление в вызывающую программу не
возвращается до тех пор, пока все про-
цессы группы не произведут вызовов
MPI_Barrier(comm), где comm - ком-
муникатор
6. Глобальные (собирающие данные
со всех процессов) операции редукции
(сложение, вычисление максимума, ми-
нимума и определенные пользователем),
результат передается одному или всем
процессам (MPI_Reduce,
MPI_Allreduce, MPI_Reduce_Scatter,
MPI_Scan).
Вообще говоря, для написания подавляющего большинства программ дос-
таточно всего 6 функций интерфейса MPI:
MPI_Init
- инициализация MPI-библиотеки
MPI_Comm_size
- определение числа процессов
MPI_Comm_rank
- определение процессом собственного номера
MPI_Send
- посылка сообщения
MPI_Recv
- получение сообщения
MPI_Finalize
- завершение программы MPI
среди которых основными являются функции
MPI_Send/MPI_Recv
обмена
сообщениями типа ‘точка-точка’.
Например, функция широковещательной передачи
MPI_Bcast
посылает со-
общение
buffer
от процесса
source
всем процессам группы
comm
(включая се-
бя). Она вызывается всеми процессами группы с одинаковыми аргументами
count, datatype, source, comm
; в момент возврата управления содержимое
buffer
гарантированно скопировано в
buffer
всех процессов.
Коллективные функции
MPI_Bcast
и
MPI_Reduce
можно выразить через
парные операции
MPI_Send
и
MPI_Recv
. Например, операция
MPI_Bcast
для
рассылки целого числа N всем процессам (в т.ч. самому себе) эквивалентна
следующему циклу (однако
MPI_Bcast
выполняется быстрее):
- 11 -
4. Тип alltoall: каждый-каждому
Раздача/сборка БЛД от всех процес-
сов во все процессы
MPI_Alltoall(sendbuf, sendcount, send-
type, recvbuf, recvcount, recvtype,
root, comm).
5. Барьерная синхронизация группы
процессов MPI_Barrier
При вызове этой процедуры управ-
ление в вызывающую программу не
возвращается до тех пор, пока все про-
цессы группы не произведут вызовов
MPI_Barrier(comm), где comm - ком-
муникатор
6. Глобальные (собирающие данные
со всех процессов) операции редукции
(сложение, вычисление максимума, ми-
нимума и определенные пользователем),
результат передается одному или всем
процессам (MPI_Reduce,
MPI_Allreduce, MPI_Reduce_Scatter,
MPI_Scan).
Вообще говоря, для написания подавляющего большинства программ дос-
таточно всего 6 функций интерфейса MPI:
MPI_Init - инициализация MPI-библиотеки
MPI_Comm_size - определение числа процессов
MPI_Comm_rank - определение процессом собственного номера
MPI_Send - посылка сообщения
MPI_Recv - получение сообщения
MPI_Finalize - завершение программы MPI
среди которых основными являются функции MPI_Send/MPI_Recv обмена
сообщениями типа ‘точка-точка’.
Например, функция широковещательной передачи MPI_Bcast посылает со-
общение buffer от процесса source всем процессам группы comm (включая се-
бя). Она вызывается всеми процессами группы с одинаковыми аргументами
count, datatype, source, comm; в момент возврата управления содержимое buffer
гарантированно скопировано в buffer всех процессов.
Коллективные функции MPI_Bcast и MPI_Reduce можно выразить через
парные операции MPI_Send и MPI_Recv. Например, операция MPI_Bcast для
рассылки целого числа N всем процессам (в т.ч. самому себе) эквивалентна
следующему циклу (однако MPI_Bcast выполняется быстрее):
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »
