
- •Параллельные алгоритмы обмена информацией
- •План
- •Системы с общей и распределенной памятью
- •Обмен данными в системах с общей памятью
- •Обмен сообщениями
- •Топологии систем
- •Некоторые типы топологий
- •Гиперкуб размерности n
- •Гипердерево (fat tree)
- •Особенности гипердерева
- •Особенности использования топологий
- •Характеристики топологий
- •Параметры топологий при количестве узлов p
- •Методы передачи сообщений
- •Режимы передачи
- •Время передачи сообщения
- •Оценка времени
- •Принцип привилегированной передачи
- •Параллельные алгоритмы обмена сообщениями
- •Предача от одного процессора другому
- •Иллюстрация (сообщение 1000 байт)
- •Рассылка от одного всем и редукция
- •Централизованная схема рассылки и редукции
- •Эффективный способ широковещательной рассылки
- •Широковещательная передача в модели бинарного дерева
- •Эффективность широковещательной передачи для разных топологий
- •Графическая иллюстрация
- •Аккумуляция и редукция на одном узле
- •Особенность редукции
- •Обобщенная передача от всех всем
- •Схема
- •Время передачи
- •Иллюстрация
- •Обощенная редукция
- •Обобщенная передача от одного всем
- •Эффективная схема
- •Обобщенная передача от всех одному
- •Обобщенный обмен сообщениями
- •Схема для гиперкуба
- •Оценка времени
- •Иллюстрация
- •Выводы
- •Вопросы

Особенности использования топологий
Разные аппаратные средства имеют свою топологию
Ethernet – звезда
SCI – тор
Myrinet, QSnet – гипердерево
CrayT3E – решетка
Обычно в любой момент времени одновременно могут обмениваться данными друг с другом только два адаптера или процессора
Не перекрывающиеся пары процессоров могут обмениваться параллельно

Характеристики топологий
Диаметр – максимально возможная длина пути между двумя узлами
Связность – сколько существует разных путей передачи между двумя процессорами
Сколько процессоров связаны с одним
Минимально сколько путей необходимо удалить, чтобы разделить на две несвязанные области
Ширина бисекции – минимально сколько путей необходимо удалить, чтобы разбить область на две несвязанные
Цена – общее количество путей передачи данных

Параметры топологий при количестве узлов p

Методы передачи сообщений
Сообщение атомарная порция данных
Маршрутизация – определение пути с минимальной задержкой для данной топологии
Обычно аппаратные средства или операционная система обеспечивает прозрачную маршрутизацию
Иногда выгоднее выполнять маршрутизацию в параллельных программах
Типы передачи при маршрутизации
С буферизацией (store-and-forward)
Вначале принимается все сообщение в буфер
Потом передается дальше
Сквозная передача (cut-through, передача пакетов )
Сообщение передается дальше даже, если оно получено не все
Обычно сквозная передача более обеспечивает меньшую задержку
Сквозная передача иногда обеспечивает такую же задержку, как и передача с буферизацией из-за перегрузки каналов связи

Режимы передачи
Синхронный режим – передатчик ожидает подтверждения, пока приемник не принял данные
Асинхронный режим – передатчик не ожидает, пока данные будут приняты процессором назначения и может выполнять другие действия
Во время передачи-приема процессор может выполнять другие действия
Асинхронный режим обеспечивает меньшее время решения задачи, но более сложен в использовании

Время передачи сообщения
Время передачи сообщения зависит от длины сообщения и времени передачи единицы информации
Кроме полезной информации каждое сообщение имеет служебную информацию, которая вносит накладные расходы (overhead)
Для сообщения размером m единиц (байт, слов),
при времени начальной задержки tc и времени передачи одной единицы данных to
Время передачи с буферизацией при длине пути l
Время сквозной передачи

Оценка времени
Сообщение 1Кбайт
Технология Gigabit Ethernet
Скорость 1Gbit/с (125 Мбайт/с)
Время передачи одного байта 7.6 нс
Время начальной задержки 33 мкс
Время передачи сообщения ~42 мкс
Процессор
1 GFlops
1000 операций – 1мкс
Время передачи значительно больше времени обработки данных

Принцип привилегированной передачи
Для повышения скорости вычислений самая медленна операция должна выполняться по возможности раньше
Передача информации – самая медленная операция
Принцип Send-ahead – как только появляется возможность передавать данные это необходимо делать

Параллельные алгоритмы обмена сообщениями
Передача сообщения от одного процессора другому
Передача сообщения от одного процессора всем (широковещательный режим от одного всем)
Передача сообщений от всех процессоров одному (аккумуляция, редукция)
Передача сообщения от всех процессоров всем
Обобщенная передача сообщений от одного процессора всем (scatter)
Обобщенная передача от всех процессоров одному (gather)
Обобщенная передача от всех всем (allgather)

Предача от одного процессора другому
send(p,m) — передача повідомлення m процесору p;
recv(p,m) — прийом повідомлення з процесора p у масив m.