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

Схема
(1 2, d1 d2), (3 4, d3 d4), (5 6, d5 d6), (7 8, d7 d8)
(1 3, d1,d2 d3,d4), (2 4, d1,d2 d3,d4), (5 7, d5,d6 d7,d8), (6 8, d5,d6 d7,d8)
(1 5, d1,d2,d3,d4 d5,d6,d7,d8), (2 6, d1,d2,d3,d4 d5,d6,d7,d8), (3 7, d1,d2,d3,d4 d5,d6,d7,d8), (4 8, d1,d2,d3,d4 d5,d6,d7,d8)
На каждом этапе передается в 2 раза больше данных
2 4
3 1
6 8 5
7

Время передачи

Иллюстрация
Гиперкуб показывает наилучшие результаты

Обощенная редукция
1 2, d1+=d2, d2=d2+d1), (3 4, d3+=d4, d4=d3+d4), (5 6, d5+=d6, d6=d5+d6), (7 8, d7+=d8, d8=d7+d8)
(1 3, d1+=d3, d3=d1+d3), (2 4, d2+=d4, d4=d2+d4), (5 7, d5+=d7, d7=d7+d5), (6 8, d6+=d8, d8=d6+d8)
(1 5, d1+=d5, d5=d5+d1), (2 6, d2+=d6, d6=d2+d6), (3 7, d3+=d7, d7=d3+d7), (4 8, d4+=d8, d8=d4+d8)
Суммирование можно выполнить в необходимом порядке
Подходит для ассоциативных операций

Обобщенная передача от одного всем
Пусть один процессор имеет p сообщений
Каждое из этих сообщений необходимо прислать своему процессору
dk –> k-мк процессору

Эффективная схема
(1 5, d5,d6,d7,d8 5)
(1 3, d3,d4 3), (5 7, d7,d8 7)
(1 2, d2 2), (3 4, d4 4), (5 6, d6 6), (7 8, d8 8)
scatter(p,m,m1)
Все процессоры вызывают функцию
Каждый процессор получает свое сообщение в массиве m
Первый процессор передает из массива m1

Обобщенная передача от всех одному
|
(2 1, d2 1), |
|
gather(p,m,m1) |
|
(4 3, d4 3), |
|
Все процессоры вызывают |
|
(6 5, d6 5), |
|
функцию |
|
(8 7, d8 7) |
|
|
(3 1, d3,d4 1), (7 5, d7,d8 5)
(5 1, d5,d6,d7,d8 1)

Обобщенный обмен сообщениями
Каждый процессор имеет свое сообщение для отправки на другой процессор
Сообщение dij вначале было на процессоре i и должно быть отправлено на процессор j

Схема для гиперкуба
(1 5: d15,d16,d17,d18 5; d51,d52,d53,d54 1), (2 6: d25,d26,d27,d28 6; d61,d62,d63,d64 2), (3 7: d35,d36,d37,d38 7; d71,d72,d73,d74 3), (4 8: d45,d46,d47,d48 8; d81,d82,d83,d84 4)
(1 3: d13,d14,d53,d54 3; d31,d32,d71,d72 1), (2 4: d23,d24,d63,d64 4; d41,d42,d81,d82 2), (5 7: d17,d18,d57,d58 7; d35,d36,d75,d76 5), (6 8: d27,d28,d67,d68 8; d45,d46,d86,d87 6)
(1 2: d12,d32,d52,d72 2; d21,d41,d61,d81 1), (3 4: d14,d34,d54,d74 4; d23,d43,d63,d83 3), (5 6: d16,d36,d56,d76 6; d25,d45,d65,d85 5), (7 8: d18,d38,d58,d78 8; d27,d47,d67,d87 7)
