Семинар 8. Параллельное программирование на MPI (часть 1)
Вложение параллельных программ в пространственно-распределённые вычислительные системы на основе методов разбиения графов
1. Вложение параллельных программ
в пространственно-распределённые
вычислительные системы на основе
методов разбиения графов
Вторая всероссийская научно-техническая конференция
“Суперкомпьютерные технологии” (СКТ-2012)
с. Дивноморское, Геленджикский район, 24-29 сентября 2012 г.
apaznikov@gmail.com
Лаборатория вычислительных систем Института физики полупроводников им. А.В. Ржанова СО РАН
Кафедра вычислительных систем ФГОБУ ВПО “СибГУТИ”
Курносов Михаил Георгиевич, Пазников Алексей Александрович
2. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников
Мультикластерные вычислительные системы
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 2Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
? MPI-программа
3. Специализированные
библиотеки MPI
• MPICH-G2
• PACX
• GridMPI
• mpiG
• MCMPI
• Stampi
• X-Com
• NumGRID
Стандартные средства
GNU/Linux
• VPN
• NAT
• Routing
• IPv6*
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников
Средства диспетчеризации параллельных задач
в пространственно-распределённых ВС
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 3
Christian Kauhaus, Adrian Knoth, Thomas Peiselt, Dietmar Fey. Efficient Message Passing
on Multi-Clusters: An IPv6 Extension to Open MPI // Proceedings of KiCC'07 – 2007. – 6p.
*
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
4. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 4
Выполнение параллельных программ
в пространственно-распределённых ВС на основе IPv6
Конфигурация тестовой подсистемы мультикластерной ВС
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
5. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 5
Иерархическая организация памяти
кластерных вычислительных систем
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
6. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 6
Выполнение параллельных программ
на пространственно-распределённых ВС на основе IPv6
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
7. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 7
Вложение в мультикластерные системы с иерархической
организацией коммуникационных сред
),,,,( mqpjitВремя передачи сообщений:
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
8. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 8
Модели параллельной программы
V = (1, 2, …, N} – множество ветвей параллельной программы,
E ⊆ V × V – информационно-логические связи между ветвями
(обмены),
dij – вес ребра (i, j) ∈ E, характеризующий обмены между ветвями
параллельной программы.
G = (V, E) – граф обменов параллельной программы,
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
9. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 9
Модели параллельной программы
Что понимается под весом dij ребра?
1) mij – средний размер сообщения, передаваемого
между ветвями.
2) nij – количество информационных обменов.
Учитываются только дифференцированные обмены!
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
10. The Parallel Ocean Program, NP = 16The Parallel Ocean Program, NP = 32The Parallel Ocean Program, NP = 64The Parallel Ocean Program, NP = 128
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 10
Графы параллельных программ
Моделирование процессов в мировом океане
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
11. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 11
Вложение параллельных программ
MPI-программа
Мультикластерная
вычислительная система
?
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
12. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 12
Задача оптимального вложения параллельных программ
в ВС с иерархической организацией коммуникационной среды
,1
1
∑=
=
N
j
ijx ,,...,2,1 Mi =
,1
1
∑=
≤
M
i
ijx ,,...,2,1 Nj =
{ },1,0∈ijx ., CjVi ∈∈
при ограничениях:
)(
1 1 1
),( min),,,(max)(
ijx
M
j
N
p
N
q
qpzjqip
Vi
qpjitxxXF →
⋅⋅= ∑∑∑= = =
∈
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
13. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 13
Иерархический метод вложения параллельных программ
Подсистем 1 (8 ядер) Подсистема 2 (16 ядер) Подсистема 3 (16 ядер)
The Parallel Ocean Program (POP), NP = 40
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
14. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 14
Иерархический метод вложения параллельных программ
Подсистем 1 (8 ядер) Подсистема 2 (16 ядер) Подсистема 3 (16 ядер)
The Parallel Ocean Program (POP), NP = 40
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
15. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 15
Иерархический метод вложения параллельных программ
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
METHOD HierarchicMap (G, l)
Входные данные:
Выходные данные:
G – информационный граф параллельной программы;
l – текущий уровень разбиения.
xij – вложение; xij = 1, если ветвь i назначена на ЭМ j,
иначе xij = 0.
1
2
3
4
5
6
if l = L – 1 then
return GL,1, GL,2, …,
else
(Gl+1,1, Gl+1,2, …, ) ← PartGraph(G, nl+1)
for i = 1 to nl+1 do
HierarchicMap(Gl+1,i, l + 1)
LnLG ,
1,1 ++ lnlG
16. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 16
Алгоритмы иерархического многоуровневого
разбиения графов
Пакеты разбиения графов: METIS, hwloc (scotch), gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
17. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 17
Вложение MPI-программ в мультикластерную систему
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
сайт: cpct.sibsutis.ru/~apaznikov
e-mail: apaznikov@gmail.com
18. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 18
Организация экспериментов
Программное обеспечение подсистем:
• Библиотека стандарта MPI OpenMPI 1.4.5 (с поддержкой IPv6).
• Пакет профилирования MPI-программ VampirTrace.
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
19. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 19
Организация экспериментов
Параллельные MPI-программы:
• The Parallel Ocean Program (POP) – пакет моделирования процессов
в мировом океане.
• GRAPH500 – обработка неструктурированных данных графового типа.
• SWEEP3D – моделирование процесса распространения нейтронов.
• LU, SP, MG, BT – программы из пакета тестов производительности
NAS Parallel Benchmark (NPB).
Параметры экспериментов:
• Максимальный ранг параллельной программы – 120.
• Пакеты разбиения графов: METIS, hwloc (scotch), gpart.
• При вложении использовались два типа графов задач.
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
20. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 20
Время выполнения параллельной MPI-программы
The Parallel Ocean Program
NP = 64 NP = 120
– линейное вложение – METIS – Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
21. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 21
Время выполнения параллельной MPI-программы
SWEEP 3D
NP = 64 NP = 120
– линейное вложение – METIS – Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
22. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 22
Время выполнения параллельной MPI-программы
NPB LU
NP = 64 NP = 120
– линейное вложение – METIS – Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
23. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 23
Время выполнения параллельной MPI-программы
NPB MG
NP = 32 NP = 64
– линейное вложение – METIS – Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
24. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 24
Время выполнения параллельной MPI-программы
NPB BT
NP = 36 NP = 64
– линейное вложение – METIS – Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
25. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 25
Время выполнения параллельной MPI-программы
NPB SP
NP = 36 NP = 64
– линейное вложение – METIS – Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
26. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 26
Время выполнения параллельной MPI-программы
The Parallel Ocean Program
NP = 64 NP = 120
– линейное вложение – разбиение по узлам
– разбиение по подсистемам – иерархический подход
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
27. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 27
Время выполнения параллельной MPI-программы
SWEEP 3D
NP = 64 NP = 120
– линейное вложение – разбиение по узлам
– разбиение по подсистемам – иерархический подход
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
28. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 28
Время выполнения параллельной MPI-программы
NPB LU
NP = 64 NP = 120
– линейное вложение – разбиение по узлам
– разбиение по подсистемам – иерархический подход
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
29. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 29
Время выполнения параллельной MPI-программы
NPB MG
NP = 32 NP = 64
– линейное вложение – разбиение по узлам
– разбиение по подсистемам – иерархический подход
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
30. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 30
Время выполнения параллельной MPI-программы
NPB BT
NP = 36 NP = 64
– линейное вложение – разбиение по узлам
– разбиение по подсистемам – иерархический подход
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
31. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 31
Время выполнения параллельной MPI-программы
NPB SP
NP = 36 NP = 64
– линейное вложение – разбиение по узлам
– разбиение по подсистемам – иерархический подход
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
32. • POP ⇒ Scotch (до 5 раз при NP = 120)
• SWEEP3D ⇒ gpart (на 30% при NP = 120)
• GRAPH500 ⇒ METIS, Scotch, gpart (до 10 раз при NP = 32)
• NPB LU ⇒ линейное вложение
• NPB MG ⇒ METIS, Scotch, gpart (до 5 раз при NP = 64)
• NPB BT ⇒ линейное вложение
• NPB SP ⇒ gpart (на 30% при NP = 64)
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников
Рекомендации по использованию
алгоритмов вложения
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 32
Предложенные алгоритмы наиболее эффективны для
разреженными графов MPI-программ с преобладанием
дифференцированных обменов.
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
33. • Предложен подход к выполнению параллельных MPI-программ
в мультикластерных системах на основе протокола IPv6.
• Созданные алгоритмы вложения в пространственно-
распределённые ВС позволяют в несколько раз сократить время
решения некоторых задач. Наиболее эффективен иерархический
алгоритм вложения.
• Выбор типа графов задач оказывает незначительное влияние на
результат вложения.
• Необходимо создать алгоритм автоматического выбора
алгоритма вложения параллельных программ.
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников
Заключение
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 33Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
34. Спасибо за внимание!
Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 34Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
35. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 35
Время работы алгоритмов вложения
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
36. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 36
Время выполнения параллельной MPI-программы
GRAPH500
NP = 32
– линейное вложение – METIS
– Scotch – gpart
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
37. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 37
Время выполнения параллельной MPI-программы
The Parallel Ocean Program
NP = 64 NP = 120
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
38. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 38
Время выполнения параллельной MPI-программы
SWEEP 3D
NP = 64 NP = 120
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
39. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 39
Время выполнения параллельной MPI-программы
GRAPH500
NP = 32
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
40. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 40
Время выполнения параллельной MPI-программы
NPB LU
NP = 64 NP = 120
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
41. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 41
Время выполнения параллельной MPI-программы
NPB MG
NP = 32 NP = 64
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
42. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 42
Время выполнения параллельной MPI-программы
NPB BT
NP = 36 NP = 64
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012
43. Семинар «Вычислительные системы», Новосибирск, 29 апреля 2011 г.Михаил Курносов, Алексей Пазников 43
Время выполнения параллельной MPI-программы
NPB SP
NP = 36 NP = 64
Курносов М.Г., Пазников А.А. Вложение параллельных программ … с. Дивноморское, Геленджикский район, 24-29 сентября 2012