Операционные системы распределенных вычислительных систем
Коллективные коммуникации.
Для обеспечения коллективных коммуникаций введены следующие функции:
· барьер для всех членов группы (BARRIER);
· передача сообщения всем членам группы от одного (BROADCAST);
· сбор данных от всех членов группы для одного (GATHER);
· рассылка данных всем членам группы от одного (SCATTER);
· сбор данных от всех членов группы для всех (ALLGATHER);
· рассылка данных всем членам группы от всех (ALLTOALL);
· глобальные операции (сумма, максимум, и т.п.), когда результат сообщается всем членам группы или только одному. При этом пользователь может сам определить глобальную операцию - функцию;
Схема перемещения данных между 4 процессами
Данные
Pr-0
A0
A0
Pr-1
BROADCAST
A0
Pr-2
è
A0
Pr-3
A0
Pr-0
A0
A1
A2
A3
SCATTER
A0
Pr-1
è
A1
Pr-2
GATHER
A2
Pr-3
ç
A3
Pr-0
A0
B0
C0
D0
A0
Pr-1
A0
B0
C0
D0
ALLGATHER
B0
Pr-2
A0
B0
C0
D0
ç
C0
Pr-3
A0
B0
C0
D0
D0
<
/p>
Pr-0
A0
A1
A2
A3
A0
B0
C0
D0
Pr-1
B0
B1
B2
B3
ALLTOALL
A1
B1
C1
D1
Pr-2
C0
C1
C2
C3
è
A2
B2
C2
D2
Pr-3
D0
D1
D2
D3
A3
B3
C3
D3
Названия функций и параметры:
MPI_BARRIER(IN comm)
MPI_BCAST(IN/ OUT buffer, IN cnt, IN type, IN root, IN comm)
MPI_GATHER(IN sendbuf, IN sendcnt, IN sendtype, OUT recvbuf,
IN recvcnt, IN recvtype, IN root, IN comm)
MPI_SCATTER(IN sendbuf, IN sendcnt, IN sendtype, OUT recvbuf,
IN recvcnt, IN recvtype, IN root, IN comm)
MPI_ALLGATHER(IN sendbuf, IN sendcnt, IN sendtype,
OUT recvbuf, IN recvcnt, IN recvtype, IN comm)
MPI_ALLTOALL(IN sendbuf, IN sendcnt, IN sendtype, OUT recvbuf,
IN recvcnt, IN recvtype, IN comm)
PVM (Parallel Virtual Machine).
Широко известная система PVM [5] была создана для объединения нескольких связанных сетью рабочих станций в единую виртуальную параллельную ЭВМ. Система представляет собой надстройку над операционной системой UNIX и используется в настоящее время на различных аппаратных платформах, включая и ЭВМ с массовым параллелизмом.
Задача пользователя представляет собой множество подзадач, которые динамически создаются на указанных процессорах распределенной системы и взаимодействуют между собой путем передачи и приема сообщений (а также посредством механизма сигналов).
Достоинства - простота, наличие наследованного от OS UNIX аппарата процессов и сигналов, а также возможность динамического добавления к группе вновь созданных процессов.
Недостатки - низкая производительность и функциональная ограниченность (например, имеется только один режим передачи сообщений - с буферизацией).