Быков А.Н., Жданов А.С

advertisement
Смешанная модель
параллельных вычислений
OpenMP&MPI
в программе газовой динамики
Быков А.Н., Жданов А.С.
(РФЯЦ-ВНИИЭФ, Россия)
7 мая 2016 г.
Задачи
численного
моделирования
трехмерных нестационарных физических
процессов при разработке специальной
техники требуют больших вычислительных
ресурсов.
Достижение
необходимого
уровня
быстродействия программ при решении
таких задач невозможно без применения
параллельных вычислений.
Две базовые модели параллельных
вычислений:
вычисления на распределенной между
процессорами памяти. Взаимодействие
между
процессами
осуществляется
посредством передачи сообщений,
 параллельные вычисления на общем
поле памяти.

Модель, в которой представлены оба
базовых типа, называется смешанной.
В настоящее время существуют де факто два
стандарта, определяющие набор функций для
обеспечения параллельных вычислений.

Стандарт MPI (и соответствующая библиотека)
определяет схему и базовые процедуры
взаимодействия
процессов
посредством
обмена сообщениями.

Стандарт OpenMP разработан для обеспечения
взаимодействия между процессами на общей
памяти. В отличие от MPI, он представляет
собой набор директив, встраиваемых в тело
программы.
Система уравнений газовой динамики
d
dt
_
    div U
_
dU
1
   gradP
dt

_
d
P
   div U
dt

P P  ,  
Декомпозиция области решения по
процессорам
Линейка
Столбики
Обмен гранями
Схема обмена гранями для одного из процессоров
Параллельно-конвейерный метод
t1
t2
t3
t4
t5
P1
P2
P3
P4
Схема параллельно-конвейерного метода для линейки из 4 процессоров (P1-P4)
на четыре момента времени (t1-t4)
Распределение вычислений происходит
вне процедур и обеспечивается заданием
их параметров.
subroutine parallel(……)
!Приём и отправка данных
call MPI_IRECV(…)
call MPI_ISEND(…)
!Вычисления без учёта данных других процессов
call serial(2,kb-1,2,lb)
!Ожидание данных
call MPI_WAIT(…)
!Вычисления с использованием полученных данных
call serial(kb,kb,2,lb)
!Ожидание завершения отправки данных
call MPI_WAIT(…)
end
Алгоритм процедур представляет собой
трёхмерный цикл, изменяя диапазон итераций
циклов можно выделить нужную подобласть из
области решения
subroutine serial(kn,kv,ln,lv)
…………………………
do lm = kn, kv
do mm = ln, lv
do km = 2, mb
!Вычисление термодинамических характеристик
!ячеек
…………………………
enddo
enddo
enddo
end
Схема работы программы на основе
OpenMP внутри MPI процесса
создание потоков
 описание области видимости
переменных
 обеспечение корректной работы
процедур интерфейса MPI
 распределение итераций
вычислительного цикла между потоками

subroutine sub(……)
…………………………
!$OMP PARALLEL
call parallel(……)
!$OMP END PARALLEL
…………………………
end
subroutine parallel(……)
!$OMP MASTER
call MPI_IRECV(…)
call MPI_ISEND(…)
!$OMP END MASTER
call serial(2,kb-1,2,lb)
!$OMP BARRIER
!$OMP MASTER
call MPI_WAIT(…)
!$OMP END MASTER
call serial(kb,kb,2,lb)
!$OMP BARRIER
!$OMP MASTER
call MPI_WAIT(…)
!$OMP END MASTER
end
Характеристики итерационного алгоритма
решения данного класса задач,
определяющие механизм распределения
вычислительной работы
итерации по двум направлениям
независимы и могут выполняться
параллельно;
 на каждом шаге используется своя
область памяти;
 объём вычислений для разных итераций
примерно одинаков

subroutine serial(kn,kv,ln,lv)
…………………………
!определение диапазона итераций для данного
потока
call iteration (ln,lv,kn,kv)
do lm = kn, kv
do mm = ln, lv
do km = 2, mb
!Вычисление термодинамических характеристик
!ячеек
…………………………
enddo
enddo
enddo
end
subroutine iteration (ln,lb,kn,kb)
!n-число потоков в группе
n=omp_get_max_threads()
!i-номер потока
i=omp_get_thread_num ()
!проверка на совпадение границ диапазона
(ln,lb)
if (ln.ne.lb) then
!len- общее число итераций
len=lb-ln+1
!chunk- число итераций для каждого потока
chunk=len/n
ln=…………………………
lb=…………………………
else
!распределение итераций по направлению (kn,kb)
end if
end
Модели параллельных вычислений
время работы алгоритма T p , реализующего модель
параллельных вычислений
Tser
ref
Tp  C p 
 t p  C p  Tp  t p
p
Tser -время последовательного выполнения алгоритма
t p - время, затраченное на обеспечение параллельных
вычислений
p - число процессоров
C p  1 - коэффициент кэширования
Tp
ref
-время работы алгоритма при отсутствие издержек
t p  0 и Cn  1
критерии оценки параллельных вычислений
• ускорение
Tser
Sp 
Tp
• эффективность
ref
Tp
Tser
Ep 

Tp  p
Tp
Sp

p
Используя T p  C p  T p
1
Ep 
ref
Cp  tp
tp
ref
ref

 t p , находим E p :
tp
Tp
ref
- время издержек при
использовании параллельной модели, нормированное
относительно времени работы алгоритма T p ref
время выполнения алгоритма Tm mod 1&mod 2, реализующего
модели mod1 и mod2 на p  k процессорах
Tm
mod1&mod 2
 Cp 
Tp
Sk
ref
 tp
mod 2
mod1
m  p k
Проведя алгебраические преобразования, найдём
зависимость эффективности смешанной модели
mod1&mod 2 от эффективностей “чистых” моделей
E
m
mod1
Ep
mod 2
и Ek
при определенных числе процессоров и
коэффициенте кэширования :
Em
mod1&mod 2

Ep
C p  Ep
mod1
mod1
 k  Ek
 Ek
mod 2
mod 2
 (1  C p  E p
mod1
)
(1)
Постановка задачи об адиабатическом разлете трехосного
газового эллипсоида в вакуум
В трехосном эллипсоиде с полуосями ах=1, аy=1, аz=1 заполненном газом с
показателем адиабаты =1.4, задано начальное распределение плотности и
удельной внутренней энергии:
x, y, z,0  1   
1
 1
1 
x, y, z,0
 1
2
 x  y  z 
 x, y , z      
 
 ax   a y   az 
2
2
Исследование эффективности программы
Режим дробления - с увеличением числа процессоров объём вычислений на каждом
процессорре уменьшается, число точек во всей задаче фиксированно.
Sp = t1 / tp - ускорение
Ep = Sp / P - эффективность распараллеливания
P - число процессоров
t1 - время счета на одном процессоре
tp - время счета на P процессорах
Эффективность программ на основе MPI и
OpenMP&MPI
100
90
Эффективность [%]
80
70
60
50
40
30
20
10
0
6
48
90
132 174 216 258 300 342 384 426 468 510 552
Число процессоров
OpenMP&MPI (small)
MPI (small)
OpenMP&MPI (middle)
MPI (middle)
OpenMP&MPI (large)
MPI (large)
Влияние аппаратных особенностей
кластерной системы на
эффективность программы
Из графика видно, что основное падение
эффективности происходит на 6 процессорах, то есть на
одном узле. Поэтому было высказано предположение, что
снижение эффективности определяется не возрастанием
коммуникационной нагрузки, а тем, что системная шина
узла не справляется с передачей данных между
процессорами и оперативной памятью.
Для определения масштаба влияния этого фактора
на эффективность вычислений несколько идентичных
последовательных задач выполнены на одном узле.
Выполнение последовательной программы
в группе на узле
Число
процессо Замедление
в
Эффективность
(%)
1
1
100
2
1.15
86.67
3
1.37
72.80
4
1.65
60.67
5
1.98
50.56
6
2.31
43.33
Экспериментальная и оценочная
эффективность
Подставляя эффективность программы на основе MPI Epmod1 и фиксируя параметры k=6, Cp=1и Ekmod2 (эффективность
OpenMP на одном узле) в формулу:
Em
mod1&mod 2

Ep
C p  Ep
mod1
mod1
 k  Ek
 Ek
mod 2
mod 2
 (1  C p  E p
mod1
)
(1)
получим оценку сверху эффективности распараллеливания
смешанной модели.
Экспериментальная и оценочная эффективность
программы
100
90
80
Эффективность [%]
70
60
50
40
30
20
10
0
6
48
90
132
174
216
258
300
342
384
426
468
510
552
Число процессоров
OpenMP&MPI (small)
оценка
Экспериментальная и оценочная эффективность
программы решения двумерного стационарного
уравнения переноса (автор Запасская А.С)
100
99,7%
99,2%
97,6%
98,8%
Эффективность
95
95,1%
88,2%
90
87,27%
85
86,1%
82,4%
80
86,76%
84,53%
84,7%
81,79%
81,5%
79,2%
80,1%
78,3%
75,87
75
75,6%
71,33%
70
1
2
3
4
6
12
Число процессоров
MPI
OpenMP&MPI, 2 потока
OpenMP&MPI, 4 потока
OpenMP&MPI, 3 потока (теор. зн.)
OpenMP
OpenMP&MPI, 3 потока
OpenMP&MPI, 2 потока (теор. зн.)
OpenMP&MPI, 4 потока (теор. зн.)
Заключение

Выполнен теоретический анализ эффективности
смешанной модели. Полученные оценки позволяют
прогнозировать эффективность смешанной модели
(MPI&OpenMP) на основе эффективности модели с
передачей сообщений (MPI).

Разработана
параллельная
программа
газовой
динамики,
реализующая
смешанную
модель
параллельных вычислений. В результате численных
экспериментов получено, что для данной программы
на данной вычислительной системе ни одна из моделей
не имеет существенных преимуществ перед другой.
Download