динамическая балансировка загрузки процессоров при

advertisement
ДИНАМИЧЕСКАЯ БАЛАНСИРОВКА ЗАГРУЗКИ ПРОЦЕССОРОВ ПРИ
МОДЕЛИРОВАНИИ ЗАДАЧ ГОРЕНИЯ1
М.А.Корнилина, М.В.Якобовский
Институт математического моделирования РАН, Москва
Введение
Развитие высокотехнологичных производств, рост внимания к проблемам атмосферного загрязнения токсичными продуктами горения и промышленными выбросами обуславливает
большой и устойчивый интерес к проблемам движения вязкого многокомпонентного химически реагирующего газа. Моделирование химически реагирующих течений представляет интерес для многих областей науки и техники, таких как газовая промышленность, аэродинамика и
космическая техника, для расчетов режимов обтекания летательных аппаратов сложной формы, процессов горения топлива в котлах тепловых электростанций и горения газа при аварийных выбросах на скважинах и трубопроводах и многих других. Для широкого класса задач
химические процессы, протекающие при высокой температуре, являются неотъемлемой составляющей изучаемых явлений. Многокомпонентность среды и протекающие химические реакции существенны для описания газодинамических процессов и их необходимо учитывать
при моделировании. В свою очередь, процессы теплопроводности, диффузии и переноса импульса, определяя состав газовой смеси, оказывают влияние на ход химических процессов и
энерговыделение. В связи с этим при моделировании реагирующих газовых течений необходимо учитывать взаимное влияние газодинамических и химических процессов.
Предлагается эффективный параллельный алгоритм совместного решения уравнений,
описывающих газодинамические и химические процессы, в полной мере использующий ресурсы относительно недорогих высокопроизводительных многопроцессорных систем с распределенной памятью. Основная часть процессорного времени (до 90%) при моделировании
реагирующих течений приходится на решение жестких систем обыкновенных дифференциальных уравнений (СОДУ), описывающих химическую кинетику. Основной проблемой при
решении систем ОДУ на параллельных вычислительных комплексах является обеспечение
равномерной загрузки процессоров. Ее специфика заключается в том, что интенсивность течения химических реакций существенно зависит от параметров потока, особенно от температуры
и состава. В сравнительно небольших областях повышенной температуры, реакции идут
наиболее активно и концентрации веществ быстро и значительно меняются. Время решения
СОДУ для одной точки в такой области ("горячей" точки) может в десятки раз превышать
среднее время решения СОДУ в остальных точках. Следовательно, необходимо равномерно
распределить по процессорам именно "горячие" точки, на обработку которых требуется
наибольшее время. Отметим, что расположение "горячих" точек со временем изменяется, поэтому для увеличения эффективности параллельной программы следует на каждом шаге заново перераспределять расчетные точки по процессорам, то есть решать задачу динамической
балансировки загрузки. Традиционные методы построения параллельных алгоритмов, успешно используемые при решении задач газовой динамики, при совместном решении уравнений
химической кинетики и газовой динамики приводят к резкому (в десятки раз) падению эффективности и не применимы при использовании большого числа процессоров.
Постановка задачи
Система уравнений, описывающая газодинамические процессы и кинетику горения затопленной струи метана может быть записана следующим образом [1]:
T
U
 AU  f , U   ,  y (i ) ,  u,  v, E , f  (0, i ,0,0,0) T ,
(1)
t

1

Работа выполнена при поддержке гранта № 99-01-01215 РФФИ
где A - нелинейный дифференциальный оператор,  - плотность, yi - массовая доля i-го вещества в единице массы смеси, u, v - компоненты скорости, p - давление, E - полная энергия,  i массовые скорости образования веществ.
С помощью метода суммарной аппроксимации она разделяется по физическим процессам на газодинамический блок и блок химической кинетики:
U
 AU  0 .
I. Газодинамический блок (ГД):
(2)
t
dU
 f , где f  (0, i ,0,0,0) T .
(3)
dt
Газодинамический блок аппроксимируется с помощью полунеявной разностной схемы,
для решения которой используется следующий итерационный процесс:
II. Блок химической кинетики (ХК):
( k 1)
( 0)

U j 1  U j 1  ( kj)1
(4)
  A U  AU j   0, 0  k  s  1; U j 1  U j .

t 2

Для интегрирования систем обыкновенных дифференциальных уравнений (СОДУ)
блока химической кинетики (4) в каждом узле пространственной сетки применялся стандартный программный комплекс DVODE. Химические процессы представлены здесь членами производства и расхода массы. Они представляют собой пример «локального» явления, которое
не зависит от пространственных градиентов. В ходе химических реакций новые значения концентраций и температуры в каждом узле расчетной сетки определяются предыдущими значениями величин, взятых только в этом узле сетки, и, следовательно, могут находиться независимо от соседних узлов.
Таким образом, на каждом временном интервале поочередно решаются блоки уравнений газовой динамики и химической кинетики. Основная часть затрат при моделировании реагирующих течений приходится на решение жестких систем обыкновенных дифференциальных
уравнений, описывающих химическую кинетику - от 70 до 90% процессорного времени.
Параллельный алгоритм моделирования газодинамического блока построен на основе
метода геометрического параллелизма и, при равномерном распределении точек по процессорам обеспечивает равномерную загрузку последних на этом этапе. Распараллеливание блока
химической кинетики на основе метода геометрического параллелизма крайне не эффективно
по следующим причинам:
1. точки в которых протекают интенсивные химические реакции локализованы в сравнительно узкой зоне - на фронте пламени и непосредственно за ним (рис. 1). Как
правило, точки описывающие фронт пламени, сосредоточены на сравнительно небольшом числе процессоров. В результате, время обработки блока химической кинетики значительно больше для процессоров, содержащих "горячие точки" (рис. 2),
по сравнению с временем, затрачиваемым процессорами, моделирующими области
удаленные от горящего факела;
2. положение фронта пламени меняется с течением времени и "горячие точки" на разных шагах расчета могут располагаться на разных процессорах;
3. поскольку скорости реакций сильно зависят от температуры и величины концентраций, участвующих в реакциях веществ, время решения СОДУ тоже сильно меняется
как от точки к точке в пространстве, так и на разных шагах по времени. Время решения системы ОДУ в каждой точке практически не поддается априорной оценке.
Можно лишь предположить, что при низких температурах химические реакции,
рассматриваемые в данной работе, практически не протекают.
Перечисленные факторы делают неприменимыми для распараллеливания блока ХК методы статической балансировки загрузки, в том числе и метод геометрического параллелизма.
Известный метод динамической балансировки загрузки - метод коллективного решения, предполагает наличие некоторого управляющего процессора, содержащего все необходимые исходные данные - концентрации веществ, температуру и т.д. каждой из расчетных точек.
Сбор этой информации на каждом шаге, передача ее на обрабатывающие процессоры, прием
полученных результатов и обратная рассылка для проведения очередного газодинамического
шага снижают эффективность распараллеливания до неприемлемого уровня. Основная причина такого положения кроется в наличии "узкого горла" - единственного управляющего процессора, что требует передачи большого объема данных на каждом шаге и ограничивает возможности обрабатывающих процессоров всей системы.
5%
65%
30%
CH4
Рис. 1. Разбиение расчетной области по процессорам в соответствии с принципом геометрического
параллелизма. 3%< y CH 4 <9% - массовая концентрация метана
в 25.00 с
р
е
м 20.00
я
15.00
наилучшее
возможное время
10.00
5.00
29
27
25
23
число процессоров
21
19
17
13
15
9
11
5
7
1
0.00
3
в
ы
ч
и
с
л
е
н
и
й
Время вычислений при
использовании метода
геометрического параллелизма
Р1
Рис. 2. Распределение нагрузки по расчету "горячих" точек по процессорам
В связи с этим предлагается алгоритм, основывающийся на принципах коллективного
решения, но в значительной мере свободный от его недостатков за счет передачи каждому из
обрабатывающих процессоров управляющих функций, что позволяет значительно снизить
общий объем передаваемых в системе данных.
Параллельный алгоритм
Предлагаемый алгоритм обеспечивает следующие возможности:
 преимущественная обработка каждым из процессоров локальных точек (точек, хранящихся на данном процессоре), точки с других процессоров запрашиваются только
если все локальные обработаны или переданы на обработку другим процессорам;
 передача точек для обработки на удаленных процессорах и обработка локальных
точек выполняются одновременно;
 объем передаваемой информации значительно сокращен по сравнению с передаваемым в случае применения традиционного алгоритма «коллективного решения»;
 сокращены затраты времени на управление перераспределением точек.
На каждом процессоре запускаются два процесса (фрагмент "клиент" рис. 3), один из
них обеспечивает управление, второй – непосредственную обработку заданий (решение системы ОДУ в каждой конкретной, переданной на обработку точке). Поскольку данные вычислительному процессу передаются небольшими порциями, желательно наличие общей памяти у
управляющего и вычислительного процессов, расположенных на одном процессоре. Каждый
из управляющих процессов соединен с остальными виртуальными каналами связи, на всех
процессорах выполняется один и тот же алгоритм, число процессоров принципиального значения не имеет и ограничивается только ресурсами конкретной вычислительной системы.
Parsytec CC-32
TCP/IP
Parsytec CC-12
Клиент
HS-Links, 30 Mбайт/с
TCP/IP, 1 Mбайт/с
Вычислительный
процесс
Управляющий
процесс
Сервер
Процессор
Рис. 3. Структура программы балансировки загрузки
Алгоритм, выполняемый каждым из управляющих процессов и обеспечивающий динамическую балансировку загрузки процессоров на этапе решения уравнений ХК выглядит следующим образом:
1. При наличии необработанных точек и свободном вычислительном процессе, одна из
необработанных точек передается последнему для обработки. После окончания обработки вычислительный процесс посылает соответствующее сообщение управляющему процессу, расположенному на одном с ним процессоре.
2. Если необработанных точек нет, управляющий процесс посылает запрос на получение необработанных точек какому-либо другому управляющему процессу.
3. Управляющий процесс переходит к ожиданию альтернативного ввода либо с локального канала, соединяющего его с вычислительным процессом, либо с любого из внешних виртуальных каналов. Он может получить сообщение о том, что локальная точка обработана, может получить сообщение, содержащее запрошенные ранее точки, может получить запрос на
предоставление локальных точек другим процессорам и некоторые другие.
4. После прихода любого из сообщений оно считывается, обрабатывается и действия 14 повторяются.
Общая схема напоминает поиск информации в распределенной сети, объединяющей
сервера баз данных, что и послужило причиной названия «серверный параллелизм» - каждый
процессор опрашивает остальные в поисках заданий для обработки. Важно, что если некоторый процессор A, получивший несколько точек для обработки от процессора B, не обработал
их все до получения запроса от процессора C, то он может часть из необработанных точек передать для обработки процессору C, обеспечивая наиболее равномерное распределение точек.
Все вышесказанное относилось к случаю, когда все процессоры принадлежат одной
вычислительной системе и имеют возможность непосредственно передавать сообщения друг
другу, используя быстрые виртуальные каналы. Однако, незначительно модифицировав предложенный алгоритм, можно с успехом использовать для вычислений на этапе ХК несколько
вычислительных многопроцессорных комплексов, соединенных относительно медленными
каналами передачи данных (рис. 3). Решение на нескольких многопроцессорных системах
уравнений газодинамического блока неэффективно (из-за большого объема передаваемых через медленные каналы данных), поэтому эти уравнения следует решать только на одной из соединенных систем. Именно эта система выступает в роли сервера, хранящего точки, обрабатывать которые на этапе ХК могут как процессоры системы-сервера, так и подсоединенных систем-клиентов.
Результаты
Для расчетов использовались две многопроцессорные системы с распределенной памятью Parsytec-CC (Германия), в одной - 32 процессора PowerPC-604 (100MHz) и в другой - 12
процессоров PowerPC-604 (130 MHz). За 100% принята эффективность, достигнутая при использовании 4х процессоров PowerPC-604 (100MHz), поскольку расчет на меньшем числе
процессоров неэффективен из-за недостатка оперативной памяти, что отражено на графиках
снижением эффективности в начале кривых (рис. 4).
120%
Эффективность
100%
41.00
36.00
80%
31.00
26.00
60%
21.00
40%
16.00
11.00
20%
0%
Ускорение
Число процессоров
1 5 9 13 17 21 25 29 33 37 41 45
6.00
Число процессоров
1.00
1 5 9 13 17 21 25 29 33 37 41 45
Рис. 4. Эффективность и ускорение при моделировании блока ХК
Поскольку блок ГД выполнялся только на системе Parsytec CC-12, ожидать повышения
ускорения вычислений этого этапа при увеличении числа используемых процессоров на другой системе не следует. В связи с этим на рис. 4 приведены результаты распараллеливания
только блока ХК за вычетом затрат времени на обработку блока ГД. Результаты подтверждают
практически линейный рост производительности на этом этапе с увеличением общего числа
процессоров. Разные кривые соответствуют нескольким разным шагам расчета. Превышение
100%-го уровня эффективности свидетельствует о том, что при большом числе процессоров
алгоритм динамической балансировки загрузки обеспечивает более равномерное распределение по процессорам "горячих" точек.
Литература:
1. Chetverushkin B.N., Iakobovski M.V., Kornilina M.A., Malikov K.Yu., Romanukha N.Yu.
Ecological after-effects numerical modelling under methane combustion. In: Mathematical Models of
Non-Linear Excitations, Transfer, Dynamics, and Control in Condensed Systems and Other Media.
Proc. of a Symp., June 29 – July 3 1998, Tver, Russia (Ed. by L.A. Uvarova, A.E. Arinstein, and
A.V. Latyshev), Kluwer Academic // Plenum Publishers. - New York, Boston, Dordrecht, London,
Moscow. ISBN 0-306-46133-1. – 1999. - pp.147-152.
Download