Исследование двух различных реализаций параллельных алгоритмов для расчета распространения кромки лесного пожара

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

2008 Математика и механика № 2

УДК 519.63

М.С. Вдовенко, Г.А. Доррер

ИССЛЕДОВАНИЕ ДВУХ РАЗЛИЧНЫХ РЕАЛИЗАЦИЙ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ ДЛЯ РАСЧЕТА РАСПРОСТРАНЕНИЯ КРОМКИ ЛЕСНОГО ПОЖАРА

Рассмотрены технологические аспекты разработки масштабируемых параллельных программ для кластерных вычислительных систем с использованием библиотеки МР1 на примере задачи моделирования распространения лесных пожаров на кластерной вычислительной системе. Получены расчетные значения ускорений, позволяющие оценить масштабируемость алгоритма и его программной реализации. Приведены значения ускорений, полученные в ходе вычислительного эксперимента, которые хорошо согласуются с теоретическими оценками.

Ключевые слова: моделирование распространения лесных пожаров, параллельный алгоритм, ускорение вычислений.

Разработка программных комплексов для проведения крупномасштабных вычислительных экспериментов на параллельных вычислительных системах для решения задач, связанных с моделированием пожарной ситуации в лесах, представляет собой сложную в теоретическом и практическом плане задачу. Разработка параллельных программ практического уровня сложности для задач математической экологии представляет собою многоэтапный технологический процесс, включающий в себя анализ задачи, выбор модели программы, декомпозиция задачи на параллельные процессы, анализ производительности и организации вычислительного эксперимента.

Анализ задачи и выявление ее потенциального параллелизма

Постановка задачи и метод решения

Данная работа основана на полуэмпирической модели процесса распространения лесного пожара [1]. Рассмотрим алгоритм построения горящей кромки, основанный на численном решении уравнений, описывающих распространение процесса горения, по нескольким слоям лесного горючего. Введя в каждом из слоев прямоугольную сетку с шагами по координатам х и у соответственно Дх и Ау, введем сеточные области Бш, £Д1;, ВДЪ, где - область, где горючий материал находится в исходном состоянии, БД11 - область, где происходит горение, БД^ -область, где горение невозможно, I = 1,2 . Алгоритм состоит в последовательном определении данных областей. Система рассматривается в дискретные моменты г = 0,1,2,.... с шагом А(.

Уравнение нагрева горючего в области ВД0,- имеет вид

2

Н (,7,* +1) = Н 0',],г) + ДОДхД£ Ф(т,п,г)х^; (т-1,п-у) +

^=1

+фе1 (и л *)Д - щ (и7)х [ (ъ7, *)- НоI (^7)],

где Не (г,у, /) - энтальпия горючего, Ф (т, п,г) - интенсивность тепловыделения в горящей области, Фе1 (г,у, /) - интенсивность внешних тепловых источников, ^ (т - г, п - у) - функция влияния локального пламени в горящей области на горючее в области Бш , (г, у) - коэффициент тепловых потерь. Система рас-

сматривается при начальных условиях И1 (г, у, 0) = И01 (г, у), (г, у) е £Д0/, I = 1,2 .

* / * \ * / \ Условие воспламенения горючего в 1-м слое при г = г : Н, (/, у,г ) > Н, (/, У),

при этом узел (г, у) исключается из £Д0/ (г*) и присоединяется к ВА11 (г*). Уравнение расходования горючего:

где И1 (г, у) - теплотворная способность горючего.

Условие погасания при г = г*: &1 (і,у,г*) = 0 , (г,у) є ОД11, при этом точка (і,у) исключается из 0&11 (г») и присоединяется к БА21 (г»).

Функции влияния \7- (х - хг, у - ух, 2 - 2Х) задаются формулами с учетом дискретизации по пространству и приводятся в работе [1].

Для распараллеливания процесса вычислений предлагается схема, вытекающая из физического содержания данной задачи. Расчет энтальпии для точки г,у на (г+1)-м временном шаге происходит с использованием некоторого количества точек на г-м шаге. Численный расчет ведется итеративно: по имеющимся значениям п-го временного шага выстраиваем (г+1)-й и т.д.

Следовательно, исходную задачу можно разбить на несколько подзадач для областей, пересекающихся только по границе разбиений, независимых друг от друга на каждом расчетном шаге. Исходная область не включает взаимно перекрывающиеся подобласти, поэтому пересчет значений на границах между данными областями предполагает согласно алгоритму суммирование при обмене вычисленными значениями для граничных элементов. Для перехода к следующей итерации необходимо согласование границ, так как первая область должна передать второй ее левую границу для следующего шага по времени, в свою очередь вторая область должна предать первой ее правую границу и т.д.

Определим теперь потенциальный параллелизм алгоритма количественно. Общий объем вычислений ¥еа1е в алгоритме определяется соотношением Рейс = я-к-Ы2, где Ы2 - количество расчетных точек в двухмерной области моделирования, к - количество операций, выполняемых в одной расчетной точке, я - количество шагов по времени. Для простоты полагаем, что все операции, в том

_ Г/ (і, І, і) - гМ при а, (і, у, г) > 0, І/ (і, І,г) при а, (і, у,г)< 0

с начальным условием

Уравнение тепловыделения:

ф (і,І,1) = Ц (і,у)[ (і,у,І)(і,у,і-М)], (і,у)є Оди, I = 1,2,

Параллелизм

числе и обмены, имеют одинаковое время исполнения, равное t. Рассмотрим наихудший случай, когда все операции в одной точке выполняются последовательно. Следовательно, на каждом шаге итерации алгоритм требует для своей реализации к этапов. Тогда средняя степень параллелизма r будет равна r = s- k-N2/(s-k) = N2.

Ускорение и масштабируемость

Потенциальное ускорение алгоритма можно оценить исходя из следующего соотношения: Sp = Tx/Tp, где T - время вычислений на одном процессоре, Tp -время вычислений на p процессорах. При этом время перевычислений будет определяться следующим образом: Tc = 2smN, где m - количество значений для одной расчетной точки, передаваемых соседнему процессу.

Рассмотрим случай с использованием неблокирующих передач. В общем случае обмены с использованием таких передач не зависят от количества используемых процессоров и потребуют Tc = const единиц времени. Тогда ускорение с использованием неблокирующих передач будет определяться следующим соотношением:

1

Sp <

1/ r + Tc / T

1 < Р < r,

р > r.

Учитывая, что Tc = 2smN t, Tj = s-k-N -1 , r = N , получим окончательно

1

У p + 2 m/kN ’ 1

У N 2 + 2 m/kN’

1 < p < N2,

p > N2.

В табл. 1 приведена зависимость ускорения Бр от количества используемых процессоров при следующих значениях параметров: N = 500; к = 43; т = 15; г = 250000.

Таблица 1

Значения ускорения в зависимости в зависимости от количества доступных процессоров

р 1 2 4 8

s p 1,000000 1,994434 3,977798 7,911684

Алгоритм и его программная реализация являются масштабируемыми, если ускорение и производительность зависят линейно от количества используемых процессоров [3]: Бр = О(р), где Бр - ускорение, р - количество процессоров. На практике алгоритмы, для которых Бр = О(р/(1п р)), также считаются масштабируемыми.

Полученные результаты показывают, что алгоритм обладает значительным объемом потенциального параллелизма и хорошей, с точки зрения распараллеливания, структурой.

Выбор схемы распараллеливания вычислений и программирование задачи

Возможны две параллельных реализации данной задачи:

1. С одним управляющим узлом, который координирует вычислительный процесс на остальных процессорных узлах.

Управляющий процессор (процессор 0) выполняет:

- считывание данных из файлов;

- разбиение последовательности данных на части и пересылку на соответствующие процессоры блоков последовательности;

- выполнение параллельной обработки исходных данных (эта часть действий является общей для всех процессоров и детально описана в алгоритме работы функциональных процессоров);

- сбор результатов вычислений от всех процессоров;

- запись полученных результатов в выходной файл;

- освобождение занимаемой памяти.

Функциональные процессоры выполняют:

- прием от процессора 0 соответствующих элементов;

- внутреннюю обработку данных, включающую решение уравнений теплопроводности на данном временном шаге, вычисление значения энтальпии и определение воспламенившихся и погасших точек;

- реализацию упаковки информации о воспламенившихся точках;

- обмен данными между соседними процессорами (передача упакованной информации только о воспламенившихся точках);

- распаковку и размещение данных в соответствующую область памяти;

- передача результата на управляющий процессор.

2. Технология «взаимодействующие равные», при которой все процессорные узлы выполняют одинаковый набор действий.

Все процессорные узлы выполняют:

- считывание данных из соответствующих файлов;

- выполнение параллельной обработки исходных данных (решение уравнений теплопроводности на данном временном шаге);

- обмен данными между соседними процессорами (передача информации о величине энтальпии для всех граничных данных);

- вычисление значения энтальпий для каждой граничной точки согласно алгоритму суммирования, определение воспламенившихся и погасших точек;

- запись полученных результатов в выходной файл;

- освобождение занимаемой памяти.

Для данной реализации необходима дополнительная предпроцессорная обработка, заключающаяся в разбиении области данных на отдельные файлы для каждого процессорного узла.

Рассмотрим подробнее второй случай. Реализация параллельной программы осуществилась на языке программирования Си с применением функций библиотеки передачи сообщений МР1 [2 - 4]. Алгоритм параллельной программы содержит следующие шаги: исходные данные считываются процессами параллельной программы, а затем на каждом узле параллельная программа обрабатывает свою часть данных. Вычисления проводятся в два этапа.

1. Вычисляется сфера влияния локального пламени в данных условиях:

а) на каждом узле параллельная программа обрабатывает свою часть данных;

б) по завершению расчетов осуществляется обмен вычисленными значениями на границах.

2. Расчет распространения горящей кромки.

При этом на каждом временном шаге каждый процессорный узел вычисляет для своей части пространства вклад в нагревание горючего каждой горящей точкой. Также необходимо на каждом временном шаге передавать значения энтальпий для левых и правых границ. В конце временного шага по вычисленным значениям энтальпий определяется: воспламенится ли соответствующая негорящая точка.

По окончании вычислений результаты со всех процессорных узлов сохраняются в файле результатов.

Структура обменов является однородной, за исключением первого и последнего процессов.

Проведение вычислительного эксперимента и анализ результатов

Для численного исследования ускорения параллельного алгоритма рассмотрим следующую модельную задачу. Пусть Q - «квадрат» на сфере: Q = [1,6п] х [1,6п]. Возвышения поверхности задаются косинусоидой = 1 + cos( x /150). В расчетной области построена равномерная квадратная сетка 500x500, в вычислительных экспериментах было сделано 100 шагов по времени.

Вычисления выполнялись на 48-процессорном кластере ИВМ СО РАН в г. Красноярске. Кластер МВС-1000/ИВМ (собственная сборка ИВМ СО РАН) содержит 24 вычислительных узла AMD Athlon64/3500+/irb (однопроцессорные, одноядерные); 12 вычислительных узлов AMD Athlon64 X2 Dual Соге/4800+/2Гб (однопроцессорные, двухъядерные); управляющий узел, сервер доступа и файловый сервер Athlon64/3500+/1Gb с общей дисковой памятью 400 Гб. Управляющая сеть кластера FastEthernet (100 Мбит/сек), сеть передачи данных GigaEthernet (1000 Мбит/сек). Необходимо отметить, что кластер является гетерогенным, поскольку некоторые вычислительные узлы двухъядерные. Временные характеристики выполнения программы осреднялись по результатам нескольких десятков расчетов.

В табл. 2 приведены реальные значения ускорений, полученные в ходе вычислительного эксперимента.

Таблица 2

Значения ускорения показанного на кластере ИВМ СО РАН

Параметры Количество процессоров

1 2 4 8

Область 500x500 500x500 500x500 500x500

Количество шагов 100 100 100 100

Схема с управляющим узлом

Время выполнения основного цикла, T[c] 827,861564 777,038914 610,502950 902,534109

Ускорение, S 1,000000 1,065406 1,356032 0,917263

Схема «взаимодействующие равные»

Время выполнения основного цикла, T[c] 700,868975 349,848900 197,077725 65,259700

Ускорение, S 1,000000 2,003348 3,556307 10,739690

Полученные результаты немного расходятся с теоретическими оценками ускорений, что объясняется затратами времени на пересылку данных. Схема с управляющим узлом является неэффективной при использовании 8 процессоров, так как время обмена начинает значительно превышать время вычислений. Как следует из табл. 2, для схемы «взаимодействующие равные», при использовании двух процессорных узлов, все данные находятся в оперативной памяти и нет необходимости считывания/записи с жесткого диска, что ведет к значительному ускорению по сравнению с использованием одного процессора.

Для схемы «взаимодействующие равные» полученная программа является эффективной и масштабируемой. Следует также отметить, что при фиксированном количестве узлов сетки, дальнейшее увеличение числа процессоров несколько снижает эффективность распараллеливания из-за возникающего преобладания времени обменов над временем локального счета.

В рамках настоящей работы на примере задачи моделирования распространения лесных пожаров на кластерной вычислительной системе, были рассмотрены технологические аспекты разработки масштабируемых параллельных вычислений для кластерных вычислительных систем с использованием библиотеки MPI.

Получены расчетные значения ускорений, позволяющие оценить масштабируемость алгоритма и его программной реализации. Эти результаты показывают, что алгоритм обладает значительным объемом потенциального параллелизма и хорошей, с точки зрения распараллеливания структурой, что позволяет надеяться на получение ускорений близких к линейным в зависимости от количества используемых процессоров для кластерных вычислительных систем.

Приведены значения ускорений, полученные в ходе вычислительного эксперимента, которые хорошо согласуются с теоретическими оценками.

ЛИТЕРАТУРА

1. Доррер Г.А. Динамика лесных пожаров. Новосибирск: Изд-во СО РАН, 2008. 404 с.

2. Корнеев В.Д. Параллельное программирование в MPI. 2-е изд. Новосибирск: Изд-во ИВМиМГ СО РАН, 2002. 215 с.

3. MacDonald N., Minty E., Harding T., Brown S. Writing Message-Passing Parallel Programs with MPI. [Электронный ресурс]. Режим доступа: http://www.hpc.nw.ru/PS/mpi-course.zip

4. McBryan O.A. An overwiev of message passing environments // Parallel Computing. 1994. V. 20. P. 417 - 441.

Статья принята в печать 18.07.2008 г.