Параллельная реализация численного решения задачи на

реклама
Параллельная реализация
численного решения задачи на
восстановление граничной
функции для открытых акваторий
Карепова Е.Д.
Шайдуров В.В.
Дементьева Е.В.
Суперкомпьютерные технологии
математического моделирования
Якутск - 2011
Институт вычислительного моделирования СО РАН
Overview

Моделирование распространения поверхностных волн в больших
акваториях

Задача о граничной функции – задача оптимального управления

Параллельный алгоритм


Распределенная память: декомпозиция расчетной области, реализация
обменов, реализации MPI и стратегия управления памятью

Общая память: цикл с зависимостью по данным в теле цикла, проблема
операции редукции

Сравнение MPI и OpenMP

Технология CUDA – пока больше проблем
Численные эксперименты по восстановлению граничной функции
Моделирование
поверхностных волн в
больших акваториях
Институт вычислительного моделирования СО РАН
Дифференциальная постановка
прямой задачи
Пример расчетной области
47652 узлов, 86452 элементов, шаг сетки 0.3°
Граничные и начальные условия
После дискретизации по времени на каждом временном шаге
получаем эллиптическую задачу
L = f + Bd,
C  =φob
Задача
на ассимиляцию
данных наблюдений
(5-6)
L  f  Bd ,
inf 
v
d
2
HC
(7)
C  ob

inf   d
v
2
HC
2
L2 ( 1 )
(8)
 Ad  g
2
L2 ( 1 )
A  CL1B, g  ob  CL1 f
В общем случае функция d не известна
Для замыкания нашей задачи (1) – (3) рассмотрим дополнительное
условие, заданное на части границы Г0:
m0  obs , где obs известная функция
(4).
ЗАДАЧА. Найти граничную функцию d, компоненты скорости (u,v)
и возвышение свободной поверхности ξ , удовлетворяющие системе (1),
граничному условию (2), начальным данным (3) и условию замыкания (4).
[Агошков В.И. Методы оптимизации и
сопряженные уравнения в задачах математической
физики. – М: ИВМ РАН, 2003. - 256 с.]
(9)
Задача оптимального
управления
L = f + Bd,
C  =φob
(5-6)
(5)-(6) некорректна
L  f  Bd ,
inf 
v
d
2
HC

C  ob
(7)
2
L2 ( 1 )
(8)
inf   d
v
2
HC
 Ad  g
2
L2 ( 1 )
A  CL1B, g  ob  CL1 f
(9)
Вариационные уравнения (Эйлера)
Внутренний источник.
Динамическое восстановление
Решение задачи на установление для
определения начальных данных
на Г2
За данные "наблюдений" принимались значения свободной поверхности из
установившегося решения, а значения граничной d функции "забывались".
Параллельный алгоритм
• Распределенная память: декомпозиция расчетной области,
реализация обменов, реализации MPI и стратегия управления памятью
• Общая память: цикл без зависимости по данным в теле цикла,
проблема операции редукции
• Сравнение MPI и OpenMP
• Технология CUDA
Институт вычислительного моделирования СО РАН
Распределенная
память. MPI
(ν + 1) итерация Якоби
i,j+1
i-1,j
i,j
i-1,j-1
i+1,j+1
ν итерация Якоби
i+1,j
i,j-1
1. Декомпозиция расчетной области.
Без теневых граней:
Total exchange time
Exchange costs for static memory allocation
исходная область не включает взаимно
перекрывающиеся подобласти.
Пересчет значений на границах между
подобластями предполагает обмен с
дополнительным суммированием при
обмене частичной невязкой на каждой
итерации Якоби
10
8
6
4
2
0
0
4
8
12
2. Обмены данными точка-точка.
Неблокирующие
обмены:
16
20
24
28время 32
коммуникаций не зависит от количества
The number of processesпроцессов,
(pcs), one участвующих
process per one
core
в обмене
3. Операция редукции по всем точкам
расчетной области.
Время редукции растет логарифмически от
числа процессов
MVS-1000/ICM cluster
(developed in ICM SB RAS)
99-cores cluster consists of:

27 computational nodes AMD
Athlon64/3500+/1Gb (one-processor one-core);

12 computational nodes AMD Athlon64 X2
Dual Core/4800+/2Gb

(one-processor two-core);

12 computational nodes 2 X Dual-Core AMD
Opteron Processor 2216/4Gb
(two-processor two-core).
Manage node, access server, file server with 400 Gb
disk space Athlon64/3500+/1Gb.
Total disk space 1Тб.
Operating system Gentoo Linux.
Managing network FastEthernet (100 Mb/sec),
Interconnect GigaEthernet (1000 Mb/sec).
SKIF Cyberia
(cluster of the Tomsk state university)









283/566/ 1132 computational
nodes/processors/cores
Processor dual core Intel®Xeon® 5150,
2,66GHz (Woodcrest)
Manage node dual core Intel®Xeon®
5150, 2,66GHz (Woodcrest)
Interconnect InfiniBand (950 Mb/sec)
Peak performance 12 TFlops
Real performance for Linpack 9,013
TFlops (75% peak)
Total main memory 1 136 Gb
Total disk space 22,56 Tb
File server 10 Тб
Hewlett-Packard BL460c solution
(cluster of the Novosibirsk state university & Institute of
Computational Technologies)






64/ 512 computational
nodes/cores
Interconnect
InfiniBand DDR 4x
Peak performance
5.447 TFlops
Real performance for
Linpack 4.09 TFlops
Total main memory
1 024 Gb
File server 24 Тб
Зависимость ускорения вычислений от количества
доступных процессоров для различных кластерных
систем и способов реализаций двухточечных обменов
Без перекрытий,
Без перекрытий,
Без перекрытий,
Без перекрытий,
Теория
35
30
неблокирующ ие обмены (SKIF Cyberia)
обмены SendRecv (SKIF Cyberia)
неблокирующ ие обмены (кластер ИВМ СО РАН)
обмены SendRecv (кластер ИВМ СО РАН)
25
20
15
10
5
0
0
2
4
6
8
10
12
14
16
18
20
количество процессов
22
24
26
28
30
32
β_calc = T_calc / T_1
Время вычислений
1,E+00
Теория
8,E-01
SKIF Cyberia, Томск
кластер ИВМ СО РАН, Красноярск
6,E-01
HP, Новосибирск
4,E-01
2,E-01
0,E+00
2
6
10
14
18
22
количество процессов
26
30
Сравнение двух реализаций MPI и
стратегий управления памятью

В исследовании была сопоставлена производительность двух
популярных реализаций MPI:

MPICH2 v.1.2.1p1

OpenMPI v.1.4.1, являющегося «наследником» пакета LAM

Рассматриваемая задача тестировалась в двух модификациях
выделением памяти под основные массивы и буферы:



со статическим
с динамическим (calloc/free)
Сразу отметим, что вариант со статическим выделением не показал
существенного преимущества какого-то одного пакета: расхождения
во времени счета и во времени обменов данными во всех
опробованных конфигурациях оказались достаточно малы, чтобы не
принимать их во внимание.
Время выполнения (с)
Время выполнения (фрагмент)
900
Статическое
800
Динамическое c mallopt
700
Динамическое без LP
600
Динамическое
500
400
300
200
100
4
8
12
16
20
Количество процессов, p (шт)
24
28
32
Ускорение:
Теория VS Численный эксперимент
Theory
35
Numerical experiments
acceleration
30
25
20
15
10
5
0
0
2
4
6
8
10
12
14
16
18
20
number of processes
22
24
26
28
30
32
Гибридная модель: MPI+OpenMP
Идеология:
каждый MPI-процесс порождает несколько нитей OpenMP
Мотивация:
 Широкое распространение распределенных систем с
многоядерными узлами, кластеров из SMP-систем;
 Эффективное использование многоуровневой иерархии
памяти:


обращение к общей памяти вместо MPI-сообщений;
меньший объем вычислений (не требуется дополнительное
суммирование при обмене частичной невязкой на каждой
итерации Якоби).
Общая память. OpenMP


Время на создание/уничтожение нитей.
Время на синхронизацию нитей при распределении работы тела
цикла.
В опции schedule конструкции #pragma omp for можно управлять
параметром распределения итераций цикла между нитями
(«портфель задач»):





- STATIC – статически, блоками по m итераций;
- DYNAMIC – динамически, блоками по m (каждая нить берет на
выполнение первый еще не взятый блок итераций);
- GUIDED – размер блока итераций уменьшается экспоненциально до
величины m;
Время на синхронизацию нитей внутри основного цикла при
сборке невязки по треугольникам.
Время на синхронизацию при выполнении глобальной редукции
при расчете критерия останова итераций Якоби.
Различное распределения итераций
цикла между нитями
7
Static
6
Dynamic
Guided
speedup
5
4
3
2
1
0
1
2
3
4
5
threads
6
7
8
9
Зависимость ускорения вычислений от количества
доступных нитей OpenMP
speedup
7
Кластер СФУ
6
кластер ИВМ
5
кластер ТГУ
4
3
2
1
0
0
2
4
threads
6
8
Сравнение OpenMP и MPI
Ускорение: Sp=T1/Tp
Среднее время работы программы (сек.), 1 процесс
СФУ
без подключения с подключением с подключением
библиотек
MPI
OpenMP
46,6
52,4
95,9
+ 3%
+ 47%
Среднее время работы программы (сек.), 1 процесс
ТГУ
без подключения с подключением с подключением
библиотек
MPI
OpenMP
41,1
46,2
82,2
9,00E+01
Гибридная модель: MPI+OpenMP
MPI
8,00E+01
MPI+OpenMP
time(sec)
7,00E+01
последовательный код
6,00E+01
5,00E+01
4,00E+01
MP (Кластер ТГУ)
3,00E+01
MPI+OpenMP (кластер ТГУ)
1,55E+01
2,00E+01
MPI (кластер СФУ)
1,00E+01
MPI+OpenMP (кластер СФУ)
0,00E+00
acceleration (sec)
0
1
2
3
4
5
6
7
8
9
10
11
12
threads
1,05E+01
5,50E+00
5,00E-01
0
5
10
15
threads
20
25
30
13
Среднее время работы
Гибридная модель: MPI+OpenMP.
без подключения с по
библиотек
MPI
46,6
MPI (кластер ТГУ)
MPI+OpenMP (кластер ТГУ)
MPI+OpenMP (кластер СФУ)
MPI (кластер СФУ)
speedup
10,5
5,5
0,5
0
5
10
15
threads
20
25
Технология CUDA
Nvidia Tesla C2050







Число ядер CUDA: 448
Частота работы ядер CUDA: 1.15 GHz
Производительность операций с плавающей
запятой с двойной точностью (пиковая): 515 GFlop
Производительность операций с плавающей
запятой с одинарной точностью (пиковая):
1.03 TFlop
Полный объем памяти: 3Gb
Частота памяти: 1.5 GHz
Пропускная способность: 144 Gb/s
Задача Дирихле для уравнения Пуассона
методом Якоби конечными разностями
Размер
сетки
(N*N): N
Коли-во
итераций
Время
(CPU), с
Время
(GPU), с
Ускорение
Время
без глоб.
редукции
(GPU), с
Ускорение
272
15896
18,37
3,76
4,89
3,01
6,10
512
29896
124,06
17,90
6,93
15,00
8,27
992
30816
488,40
59,91
8,15
52,38
9,32
1952
26204 1595,60
191,60
8,33
167,51
9,53
2432
25560 2379,20
286,40
8,31
252,89
9,41
3632
24880 5346,28
614,28
8,70
546,65
9,78
4832
24748 9408,43 1079,81
8,71
961,45
9,79
Задача Дирихле для уравнения Пуассона
методом Якоби конечными разностями
10000
Время (CPU), с
Время, с
8000
Время (GPU), с
6000
4000
2000
0
992
1952
2432
3632
Размерность сетки N*N, N
4832
Численные эксперименты
по восстановлению
граничной функции
Institute of Computational Modeling of SB RAS
Киреев И.В., Пятаев C.Ф. Пикселная технология дискретизации акватории
Мирового океана // Вычислительные технологии. - 2009. - Т.14, № 5. - C. 30-39.
Dynamic recovery ξ (II, with space)
наблюдения,
наблюдения,
xi
xixi
наблюдения,xi
наблюдения,
6,00E-01
8,00E-01
xi,
xi,
xi,
16,67
20,83
29,17
xi,
0,08
6,67
8,33
12,5
2,5
5 минут
минут
минут
минут
минут
25
33,33
xi,
xi,
5,00E-01
6,00E-01
4,00E-01
4,00E-01
3,00E-01
2,00E-01
2,00E-01
1,00E-01
0,00E+00
0,00E+00146
-2,00E-01
146
-1,00E-01
-4,00E-01
-2,00E-01
-3,00E-01
-6,00E-01
149
149
152
152
155
155
158
158
161
161
149
152
155
158
161
Решение задачи на установление для
определения начальных данных
на Г2
За данные "наблюдений" принимались значения свободной поверхности из
установившегося решения, а значения граничной d функции "забывались".
“Наблюдаемые” данные
2,00E+00
2,00E+00
xi exact
1,60E+00
1,20E+00
1,20E+00
Xi
xi
1,60E+00
xi exact
xi + noise 10%
8,00E-01
8,00E-01
4,00E-01
4,00E-01
0,00E+00
exact xi
xi_obs
1,6
Xi
1,2
1. Smooth
2. With white noise
3. Observation with gaps
0,8
0,4
0,0
-0,4
144
142
140
138
136
134
132
phi
146
phi
2,0
144
142
140
138
136
134
132
130
146
144
142
140
138
136
134
132
130
phi
0,00E+00
Восстановление с «гладкими» данными
наблюдений
1
4
2
3
9
2
Xi
D
2,5
exact
2
2
1,5
9
0,5
0
0
44
46
48
phi
50
52
54
exact
1
1
42
1
42
44
46
48
phi
50
52
54
Восстановление с «зашумленными»
данными наблюдений (I)
5,E+00
1
4,E+00
5
19
1
5
1,50
19
exact d
xi exact
1,10
2,E+00
xi
d
3,E+00
0,70
1,E+00
0,30
0,E+00
-1,E+00
132,00
137,00
142,00
phi
-0,10
132,00
137,00
142,00
phi
Восстановление с «зашумленными»
данными наблюдений (II)
1
1
30
40
3,8
30
1,4
40
exact d
xi exact
d
xi
2,8
xi + noise
0,9
1,8
0,4
0,8
-0,1
144
142
phi
140
138
136
134
132
144,00
142,00
phi
140,00
138,00
136,00
134,00
132,00
-0,2
Восстановление с данными наблюдений,
заданными на части жидкой границы (II)
10
10
3,9
40
40
1,5
80
80
3,1
exact xi
142
xi_obs
2,3
xi
d
142
1,1
exact d
0,7
1,5
0,3
0,7
-0,1
144
142
phi
140
138
136
134
132
146,0
144,0
142,0
phi
140,0
138,0
136,0
134,0
132,0
130,0
-0,1
Внутренний источник.
Динамическое восстановление
Dynamic recovery, ξ (I)
наблюдения,
xi
наблюдения,
наблюдения,
наблюдения,xi
xixi
8,00E-01
0,08
минут
xi,xi,
xi,
xi,
16,67
20,83
29,17
33,33
xi,
6,67
8,33
12,5
2,5
25
5 минут
минут
минут
6,00E-01
4,00E-01
2,00E-01
0,00E+00
146
-2,00E-01
-4,00E-01
-6,00E-01
149
152
155
158
161
Dynamic recovery ξ (II, with space)
наблюдения,
наблюдения,
xi
xixi
наблюдения,xi
наблюдения,
6,00E-01
8,00E-01
xi,
xi,
xi,
16,67
20,83
29,17
xi,
0,08
6,67
8,33
12,5
2,5
5 минут
минут
минут
минут
минут
25
33,33
xi,
xi,
5,00E-01
6,00E-01
4,00E-01
4,00E-01
3,00E-01
2,00E-01
2,00E-01
1,00E-01
0,00E+00
0,00E+00146
-2,00E-01
146
-1,00E-01
-4,00E-01
-2,00E-01
-3,00E-01
-6,00E-01
149
149
152
152
155
155
158
158
161
161
149
152
155
158
161
Dynamic recovery d (II, with space)
точное
точное
точное
точное
точноеddddd
8,00E-01
d,d,d,
d,
16,67
20,83
29,17
33,33
d,
0,08
6,67
8,33
12,5
2,5
25
5 минут
минут
минут
минут
6,00E-01
4,00E-01
2,00E-01
0,00E+00
146
-2,00E-01
-4,00E-01
-6,00E-01
149
152
155
158
161
Спасибо за внимание!
Скачать