якобовский - введение в параллельное программирование...
DESCRIPTION
TRANSCRIPT
![Page 1: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/1.jpg)
Балансировка загрузки процессоров
Институт математического моделированияРоссийской академии наук
mail: [email protected]
web: http://lira.imamod.ru
Нижний Новгород
2009
М.В.Якобовский
![Page 2: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/2.jpg)
Задачи большого вызова (Kenneth G. Wilson, Cornell University, 1987)
• Вычислительная газовая динамика:– Создание летательных аппаратов, эффективных автомобилей– Предсказание погоды, и глобальных климатических изменений – Оптимизация нефтедобычи, …
• Молекулярная динамика:– Создание материалов с заданными свойствами– Разработка новых лекарственных соединений– Сверхпроводимость, Свойства веществ в экстремальных состояниях, …
• Символьные вычисления– Распознавание речи– Компьютерное зрение– Изучение сложных систем– Автономные системы управления
• Квантовая хромодинамика и теория конденсированных сред• Управляемый термоядерный синтез, Геном человека, …
http://en.wikipedia.org/wiki/Grand_Challenge
2
![Page 3: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/3.jpg)
Дозвуковая аэродинамическая труба Т-104, ЦАГИ
• Скорость потока 10–120 м/с• Диаметр сопла 7 м• Длина рабочей части 13 м• Мощность вентилятора
28.4 МВтhttp://www.tsagi.ru/rus/base/t104
Суперкомпьютер СКИФ МГУ «ЧЕБЫШЁВ»• Пиковая производительность 60 TFlop/s• Мощность комплекса 0.72 МВт
http://parallel.ru/cluster/skif_msu.html
3
![Page 4: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/4.jpg)
4
![Page 5: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/5.jpg)
5
![Page 6: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/6.jpg)
6
![Page 7: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/7.jpg)
7
![Page 8: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/8.jpg)
Суперкомпьютеры
• Не просто составляют конкуренцию натурному эксперименту, но:– Необходимы для его проведения– Позволяют делать то, что натурный эксперимент
делать не позволяет
8
![Page 9: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/9.jpg)
Суперкомпьютеры• Используются неэффективно и далеко не в полной
мере• Необходимы:
– Вычислительное ядро: адаптация алгоритмовк архитектуре многопроцессорных системс распределённой памятью
– Специальное математическое обеспечение: визуализация, генерация сеток, рациональное разбиение на подобласти, динамическая балансировка загрузки процессоров, использование CAD-технологий, использование гетерогенных систем и GRID-технологий
– Интеграция в единый программный комплекс
9
![Page 10: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/10.jpg)
10
![Page 11: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/11.jpg)
11
![Page 12: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/12.jpg)
НЕВЯЗКОЕ ОБТЕКАНИЕ КУЗОВА АВТОМОБИЛЯ(М = 0.12)
СЕТКА: 430 949 УЗЛОВ, 2 430 306 ТЕТРАЭДРОВ12
![Page 13: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/13.jpg)
Сетка: 209 028 730 узлов, 1 244 316 672 тетраэдра (24 Гб)
МВС: МВС-100К
1. Запуск задачи на 128, 192, 256, 320, 384 и 437 модулях с порождением 2 и 4 параллельных MPI процессов (до 1748 параллельных процессов).
2. Запуск задачи на 437 модулях в рамках гибридной модели параллелизма MPI + OpenMP (3496 параллельных процессов)
НЕВЯЗКОЕ ОБТЕКАНИЕ КУЗОВА АВТОМОБИЛЯ
13
![Page 14: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/14.jpg)
Суперкомпьютеры
МСЦ РАН: процессор: Intel(R) Xeon(R) CPU X5365 @ 3.00GHz ядер на узел: 8 память узла: 4/8 Гб число узлов: 782 (6256 ядер) коммуникации: InfiniBand DDR производительность: 75 TFLOPS
СКИФ МГУ: процессор: Intel(R) Xeon(R) CPU E5472 @ 3.00GHz ядер на узел: 8 память узла: 8 Гб число узлов: 630 (5040 ядер) коммуникации: InfiniBand DDR производительность: 60 TFLOPS
14
![Page 15: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/15.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
АкустикаВычислительные эксперименты по ЗПК
АкустикаВычислительные эксперименты по ЗПК
![Page 16: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/16.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Звукопоглощающие конструкцииЗвукопоглощающие конструкции
Панель ЗПК Расчетная область
РезонаторАкустические волны в импедансной трубе
Сотовая конструкция резонаторов
Перфорированный экран
![Page 17: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/17.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Эксперимент 1: Модель 2D и 3D импедансной трубы Эксперимент 1: Модель 2D и 3D импедансной трубы
2D задача
Концентрация сетки около горла резонатора
Размер сетки до 90К узлов
3D задача
Размер сетки до 1М узлов
![Page 18: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/18.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
3D импедансная труба 3D импедансная труба
Течение в отверстии резонаторной камерыТечение в отверстии резонаторной камеры
![Page 19: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/19.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Эффект свиста Слой смешения
Возмущения плотности
Эксперимент 2: 2D канал с резонаторами (2/2) Эксперимент 2: 2D канал с резонаторами (2/2)
![Page 20: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/20.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Базовая численная схема (1/2)Базовая численная схема (1/2)
Декартова сетка Неструктурированная треугольная сетка
Медианные ячейки
Ячейки на центрах описанных окружностей
2D контрольные объемы 3D контрольные объемы
Декартова сетка Неструктурированная тетраэдральная сетка
![Page 21: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/21.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Базовая численная схемаБазовая численная схема
Пространственный шаблон для определения потока между узлами I и JПространственный шаблон для определения потока между узлами I и J
2D треугольная сетка 3D тетраэдральная сетка
2D шаблон высокого порядка: Противопоточные треугольники + соседи
3D шаблон высокого порядка: Противопоточные тетраэдры + соседи
(сложность для распараллеливания)
![Page 22: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/22.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Канал с 5 резонаторамиКанал с 5 резонаторами
Уравнения Эйлера, нет погранслоя, М=0.4
Возмущения плотности
Применимость не только суперкомпьютеров, но и Grid технологий
![Page 23: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/23.jpg)
Институт Математического Моделирования РАН Институт Математического Моделирования РАН 125047, M125047, Mиусская пл. 4а, Москваиусская пл. 4а, Москва
Heat and Mass Transfer Technological CenterHeat and Mass Transfer Technological CenterColom 11, E-08222, Terrassa, Barcelona, SpainColom 11, E-08222, Terrassa, Barcelona, Spain
Производительность вычисленийПроизводительность вычислений
Две различные параллельные системы использовались для тестов1) Типичный малобюджетный кластер с обычной сетью Ethernet
Узел: 2CPU Intel Xeon 3GHzСеть: Ethernet 1Gbit
2) “Продвинутый” кластер с высокопроизводительной сетью низкой латентности Узел: 2CPU AMD Opteron 2.4HzСеть: Myrinet
Эти системы имею существенно различное отношение производительности процессора и сети
Тестовая задача: Модельная 2D задача – импедансная труба. Размер сетки 80 000 узлов, схема 5-го порядка
Пример разбиения сетки
![Page 24: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/24.jpg)
Статическая балансировка загрузки
nVvVEVG i ,,,
pVVVR ,,1
jiVVVV ji
p
kk
,,1
ki kjVv Vv
jiipkVR
vvwvwJ ,maxmin,,1
24
![Page 25: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/25.jpg)
• Равномерное распределение суммарного веса узлов/рёбер
• Минимизация максимального веса исходящих из домена ребер
• Минимизация суммарного веса разрезанных ребер
• Минимизация максимальной степени доменов
• Обеспечение связности доменов
• Обеспечение связности множества внутренних узлов доменов
3
0
4
1 2
5
6 THREAD 0
THREAD 1
THREAD 1
3
0
4
1 2
5
6 THREAD 0
А.Н. Андрианов, А.В. Жохова, Б.Н. ЧетверушкинА.Н. Андрианов, А.В. Жохова, Б.Н. ЧетверушкинПроцессоровПроцессоров 1111 3131 4747 6363 New_sort New_sort 13.5913.59 5.59 5.59 4.38 4.38 4.164.16METISMETIS 13.6113.61 11.0011.00 11.1011.10 10.5610.56
Критерии декомпозиции графов
25
![Page 26: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/26.jpg)
Чему равно 25/4 ?
6.25
26
![Page 27: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/27.jpg)
25/4=
6.25
27
![Page 28: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/28.jpg)
25/4=
4
6 9 6.25
28
![Page 29: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/29.jpg)
25/4 = 4 ? 6 ? 9• Разрезать решетку 5 х 5 на 4 части
29
![Page 30: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/30.jpg)
Декомпозиция сетки из 25 узлов на 4 части
30
![Page 31: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/31.jpg)
25/4 = 4 ? 6 ? 9
• Дисбаланс 9/4=2.25
• Декомпозиция решетки 5 х 5 на 4 домена
4
6 9
6
31
![Page 32: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/32.jpg)
25/4 = 4 ? 6 ? 9
• Дисбаланс 13/12 : 8%
• Декомпозиция решетки 5 х 5 на 2 домена
32
![Page 33: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/33.jpg)
25/4 = 4 ? 6 ? 9
• Дисбаланс 7/6 : 17%
• Декомпозиция решетки 5 х 5 на 4 домена
33
![Page 34: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/34.jpg)
25/4 = 4 ? 6 ? 9
• Дисбаланс 9/4=2.25
• Декомпозиция решетки 5 х 5 на 4 домена
4
6 9
6
34
![Page 35: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/35.jpg)
25/4 = 4 ? 6 ? 9
• Дисбаланс 9/4=2.25
• Декомпозиция решетки 5 х 5 на 4 домена
4
6 9
6
35
![Page 36: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/36.jpg)
• Дисбаланс 9/4=2.25
25/4 = 4 ? 6 ? 9• Декомпозиция решетки 5 х 5 на 4 домена
4
6 9
6
Потери 9/6.25=1.44
Потери 9/7=1.2936
![Page 37: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/37.jpg)
Декомпозиция сетки 25х25 на 7 частей
37
![Page 38: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/38.jpg)
Разбиение тетраэдральной сетки, содержащей 2 10∙ 8 узлов, на 125 процессорах
• вычисления производились на кластере СКИФ МГу (1250 4-хядерных процессоров, 60 TFlop/s)
геометрическая декомпозиция
ParMETIS
число доменов 80 000 20 000
время 21 сек. 10 сек.
число вершин в домене
2612 2613 2 328 10 932мин. макс.
среднее число связей с соседними доменами
14 14
число некомпактных доменов
229 36438
![Page 39: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/39.jpg)
Фрагмент треугольной сетки из 75790 вершин
результат геометрической декомпозиции
результат перераспределения малых блоков вершин
39
![Page 40: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/40.jpg)
Иерархический алгоритм
ОгрублениеОгрубление
Восстановлени
Восстановлени
ее
ДекомпозицияДекомпозиция40
![Page 41: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/41.jpg)
Огрубление графа
41
![Page 42: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/42.jpg)
Локальное уточнение
1133
5544
22
66
77
1133
5544
22
66
77
Kernighan-Lin (KL)и Fiduccia-Mattheyses (FM)
42
![Page 43: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/43.jpg)
Связность ядер доменов
Bvid ik
kA:min 111 ,\\ TTTTT kkkk A
43
![Page 44: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/44.jpg)
Инкрементный
алгоритм декомпозиции
графа
44
![Page 45: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/45.jpg)
Редуцирование доменов
один домен
а
б
свободные вершины
45
![Page 46: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/46.jpg)
Инкрементный алгоритм, Dm=8
46
![Page 47: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/47.jpg)
Инкрементный алгоритм, Dm=25
47
![Page 48: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/48.jpg)
Результат локального разбиения сетки из 75790 вершин на 50 доменов на 5 процессорах
48
![Page 49: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/49.jpg)
Результат сбора плохих групп доменов и их повторного разбиения
49
![Page 50: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/50.jpg)
Адаптивные сетки
Обтекание профиля NACA0012 (M=0.85, Re=104)под нулевым углом атаки:
Поле продольной скорости Фрагмент сетки50
![Page 51: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/51.jpg)
Равномерная сетка
X
Y
0 0.5 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Frame 001 05 Jun 2006 Value field
X
Y
0 0.5 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Frame 001 05 Jun 2006 Value field
Слева – ??круглое?? пятно примеси
51
![Page 52: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/52.jpg)
X
Y
0 0.5 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Frame 001 05 Jun 2006 Value field
X
Y
0 0.5 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Frame 001 05 Jun 2006 Value field
Адаптивная сетка
Слева – круглое пятно примеси
52
![Page 53: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/53.jpg)
Адаптивные декартовы сетки• Вначале сетка состоит из одной прямоугольной ячейки• Каждая ячейка может быть разделена на четыре ячейки одинакового размера• Если ячейки когда-то составляли одну ячейку, то они могут быть объединены обратно• Каждая ячейка хранит величину, описывающую среднее значение неизвестной функции
в пределах ячейки (метод конечных объёмов)
При данных предположениях сетку удобно хранить в виде четверичного дерева:
Дополнительные ограничения на размеры ячеек:• Задан максимально допустимый размер ячеек• Задан минимально допустимый размер ячеек• Размеры соседних ячеек должны различаться не более, чем в 2 раза
53
![Page 54: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/54.jpg)
На рисунках показаны результаты решения простейшей задачи переноса на равномерной (слева) и адаптивной (справа) сетках с одинаковым числом ячеек (4096 штук). Скорость переноса направлена под углом 45° к линиям сетки; начальное условие показано пунктиром
Сравнение с равномерной сеткой
0.1
0.1
0.10.30.50.70.9
1.1
-0.1
-0.1
0 0.25 0.5 0.75 10
0.25
0.5
0.75
1
0.1
0.9
0 0.25 0.5 0.75 10
0.25
0.5
0.75
1
54
![Page 55: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/55.jpg)
Адаптивная сетка
55
![Page 56: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/56.jpg)
Решение двумерной задачи фильтрации нефтеводяной смеси в области
с неоднородной проницаемостьюВ юго-западном углу находится скважина, нагнетающая воду, в северо-восточном углу — добывающая скважина. 5-ти точечная схемаПоле проницаемости с разбросом значений на 4 порядка).
56
![Page 57: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/57.jpg)
Решение двумерной задачи фильтрации нефтеводяной смеси в области
с неоднородной проницаемостьюВ юго-западном углу находится скважина, нагнетающая воду, в северо-восточном углу — добывающая скважина. 5-ти точечная схемаПоле проницаемости с разбросом значений на 4 порядка).
57
![Page 58: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/58.jpg)
Динамическая балансировка загрузки
• Перераспределение вычислительных узлов между процессорами необходимо:– При изменение конфигурации сетки– При изменение вычислительной сложности
обработки узлов– При изменении эффективной
производительности процессоров
58
![Page 59: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/59.jpg)
Декомпозиция пакетом Metis
59
![Page 60: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/60.jpg)
Нумерация с помощью кривой ГильбертаФормируется простой рекурсивной процедуройЛокальное изменение сетки приводит к локальному изменению кривой
60
![Page 61: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/61.jpg)
61
Диффузная балансировка Декомпозиция с помощью кривой Гильберта
![Page 62: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/62.jpg)
62
![Page 63: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/63.jpg)
Стратегии балансировки загрузки
Wij - вычислительная нагрузка, ассоциированная с узлом сетки i на шаге j
• Wij = Wi
j – не зависит от времени
• Wij ≈ Wi
j-1 – меняется медленно
• Wij ≠ Wi
j-1 – меняется значительно и
не прогнозируемо
СтатическаяСтатическая Динамическая Динамическая диффузнаядиффузная
ДинамическаяДинамическая??
63
![Page 64: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/64.jpg)
5%
65%
CH4
30%
Моделирование задач горения на многопроцессорных системах
64
![Page 65: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/65.jpg)
65
![Page 66: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/66.jpg)
Здесь A оператор, - плотность, y(i) – массовые доли i-х компонент, u, v - скорости, p - давление, E – полная энергия, I – сорости образования компонент.
I. Блок Газовой динамики (GD):
II. Блок химической кинетики (CHEM):
Моделирование задач горения
,fAt
UU
U , , , ,( )y u v Ei T
f iT( , , , , )0 0 0 0
0 UU
At
U UU U
j jj j
tA A
1
11
20
.
d
dtf
U , T
if )0,0,0,,0(
66
![Page 67: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/67.jpg)
Блок схема алгоритма
ГД
,02
1 )(1
)1(1
jk
jj
kj
AAt
UUUU
;10 sk ,)0(
1 jj UU
ХК
,ftd
d
U
T)0,0,0,,0( if .
yi, T
_ _ yi, T
67
![Page 68: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/68.jpg)
Распределение времени счета
1 3 5 7 9
11 13 15 17 19 21 23 25 27 29
Р1
0.00
5.00
10.00
15.00
20.00
25.00 Время вычислений прииспользовании методагеометрического параллелизма
наилучшеевозможное время
число процессоров
свремя
вычислений
![Page 69: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/69.jpg)
Структура и возможности алгоритма
A
D
B
E
C
A
D
B
E
C
A
D
B
E
C
task
Calculation process
Control process
Processor
69
![Page 70: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/70.jpg)
Сотояния обрабатывающего процесса
• занят - если установлен соответствующий флаг. Этот флаг устанавливается перед передачей обрабатывающему процессу необработанной точки (неважно локальной или внешней) и сбрасывается после того, как точка уже обработана и управляющий процесс получил от обрабатывающего процесса результат;
• свободен - если не занят, т.е. готов к получению очередной свободной точки.
![Page 71: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/71.jpg)
Управляющий процесс
• 1. если - есть необработанные точки (неважно локальные или внешние) и- обрабатывающий процесс свободен,
• тоустановить флаг обрабатываемой точки,одна из необработанных точек передается на обработку обрабатывающему процессу.
![Page 72: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/72.jpg)
Управляющий процесс• 2. если
- нет локальных необработанных точек и- нет внешних точек и- нет обрабатываемых точек и- флаг запроса на получение необработанных точек не установлен и- есть процессоры, которые еще не ответили, что не могут предоставить точки для обработки (соответствующий флаг флаг запрета обменов не установлен),
• то• послать запрос на получение необработанных точек
одному из таких процессоров.• установить флаг запроса на получение
необработанных точек
![Page 73: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/73.jpg)
Управляющий процесс
• Иначе (если не 2)• 3. если
- все переданные точки получены обратно обработанными и- от всех процессоров получено сообщение о том, что точки для обработки предоставлены быть не могут и- всем процессорам послано сообщение о том, что точки для обработки предоставлены быть не могут,тозавершение работы
![Page 74: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/74.jpg)
Управляющий процесс• 4. получить очередное сообщение от любого
процессора или от своего обрабатывающего процесса.
• 5. обработать полученное сообщение• 6. перейти к началу цикла (п. 1)
![Page 75: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/75.jpg)
Окончание при выполнение всех условий:
• нет локальных необработанных точек• нет внешних точек• нет обрабатываемых точек• всем процессорам был послан запрос на получение
необработанных точек• всем процессорам было послано сообщение о том, что
необработанные точки предоставлены быть не могут• от всех процессоров получено сообщение о том, что
необработанные точки предоставлены быть не могут• все локальные точки обработаны и получены
результаты обработки всех переданных точек
![Page 76: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/76.jpg)
Кластеры и эффективность
High speed network Mbyte/sec
Low speed network
Client
Server
32 processors 12 processors
1.00
6.00
11.00
16.00
21.00
26.00
31.00
36.00
41.00
1 5 9 13 17 21 25 29 33 37 41 45
Np
speedup
Cluster1
CFD
Cluster2 Chemical
Cluster4 Chemical
Cluster3 Chemical
Control
76
![Page 77: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/77.jpg)
Схема взаимодействия процессов
![Page 78: якобовский - введение в параллельное программирование (2)](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495ebd2b47959c07a8b456f/html5/thumbnails/78.jpg)
Выводы
• Балансировка загрузки процессоров – ключевой этап обеспечения высокой эффективности использования многопроцессорной системы.
• С ростом числа процессоров возрастает актуальность использования динамической балансировки загрузки
78