Сравнение эффективности параллельных алгоритмов решения задач газовой динамики на разных вычислительных комплексах

УДК 519.6

И. К. Марчевский, С. А. Токарева

СРАВНЕНИЕ ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ РЕШЕНИЯ ЗАДАЧ ГАЗОВОЙ ДИНАМИКИ НА РАЗНЫХ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСАХ

Предложены параллельные алгоритмы численного решения задач газовой динамики. Проанализирована эффективность распараллеливания алгоритмов на сети персональных ЭВМ Межведомственного суперкомпьютерного центра РАН и на специализированном кластере МВС-6000Ш.

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

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

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

Цель настоящей работы — разработка параллельных алгоритмов решения типичных задач газовой динамики и исследование их эффективности на различных вычислительных комплексах.

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

RKDG-метода (Runge-Kutta Discontinuous Galerkin method) для решения задач газовой динамики [4, 5].

Средства реализации параллельных вычислений. При разработке параллельных алгоритмов использована библиотека параллельных процедур MPI и ее реализация MPICH. Отметим хорошую переносимость программ, написанных с применением MPICH (одинаково хорошо работает с ОС Windows и Linux), возможность работы с языками программирования C, C++, Fortran, относительную простоту использования и свободное распространение.

Расчеты проведены на четырех персональных двухъядерных ЭВМ Pentium Dual-Core 2 ГГц, объединенных локальной вычислительной сетью с пропускной способностью 100 Мбит/с. Для анализа эффективности этого вычислительного комплекса расчеты выполнены также на высокопроизводительном кластере МВС-60001М.

Решение систем линейных алгебраических уравнений (СЛАУ). Размер матриц систем линейных уравнений при решении задач гидродинамики методом вихревых элементов может достигать нескольких тысяч столбцов (строк); эти матрицы являются плотными и не обладают свойствами симметрии, положительной определенности или диагонального преобладания. В то же время методические исследования показывают, что число обусловленности таких матриц близко к их размеру. Поэтому для решения таких систем оправдано применение метода Гаусса с частичным выбором ведущего элемента.

Для системы вида Ax = b, где A = {а^} и i,j = 1,... ,N, предложен следующий параллельный алгоритм решения при использовании сети, состоящей из p компьютеров, имеющих номера от 0 до (p — 1).

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

Рис. 1. Распределение столбцов матрицы по компьютерам

Рис. 2. Зависимость ускорения от числа процессоров при выполнении параллельного алгоритма решения СЛАУ

На каждом к-м шаге исключения, когда ведущим является к-й столбец исходной матрицы, хранящийся в компьютере рк, этот компьютер определяет номер ведущей строки (из строк с номерами к... N и передает его всем остальным компьютерам. Затем на каждом компьютере осуществляется перестановка строк. Эта операция требует крайне незначительных временнЫх затрат, так как между компьютерами пересылается всего одно число, а пересылки переставляемых строк не требуется. Затем рк -й компьютер вычисляет столбец коэффициентов, с которыми к-я строка должна вычитаться из всех остальных, этот столбец пересылается на все компьютеры, и начинается процесс вычитания строк, который выполняется на всех компьютерах одновременно. Отметим, что вычитание происходит из всех строк матрицы, в результате чего матрица сразу приводится к диагональному виду. Все преобразования вектора правой части выполняются на компьютере с номером 0. На него же пересышаются диагональные элементы преобразованной матрицы, после чего находится решение системы.

Данный алгоритм реализован авторами в виде программы на языке Рог1хап-90, расчеты по которой проводились на двух вычислительных комплексах — сети ПЭВМ и высокопроизводительном кластере МВС-60001М.

На рис. 2 представлены графики, характеризующие эффективность предложенного параллельного алгоритма решения СЛАУ с квадратной невырожденной матрицей порядка N = 5000. Штриховые линии показывают максимально возможное (теоретически) ускорение, сплошные — реальное ускорение, полученное в ходе расчетов.

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

Решение систем обыкновенных дифференциальных уравнений (ОДУ). При решении плоских задач гидродинамики и аэроупругости

Таблица 1

Число процессоров кпэвм кмвс (кпэвм/кмвс) • 100, %

2 1,88 1,92 97,6

4 3,48 3,80 91,5

6 4,71 5,58 84,3

8 5,88 7,37 79,9

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

£ = Л, к = 1,..., N

Гк = Хк * + УкЗ, /к = ± ^ - - Ук) 4 + (Х - Х-к *

2п 7=1 (xs - Хк)2 + (Уз - Ук)2

s=k

Правая часть системы определяется положением всех вихревых элементов. Это позволяет построить эффективный параллельный алгоритм ее решения, который проиллюстрирован на примере реализации явного метода Эйлера. Начальные положения вихревых элементов гк, к = , известны на компьютере с номером 0, и они пересылаются на все остальные компьютеры сети. Далее каждый компьютер получает собственный диапазон номеров уравнений исходной системы, для которых он вычисляет правые части /к. Процесс вычислений происходит одновременно на всех компьютерах. Найденный вектор правых частей пересылается на нулевой компьютер, на нем же вычисляются новые положения вихревых элементов гк = гк + т/к. Далее процесс повторяется до достижения нужного числа временных шагов. Аналогичным образом реализуются параллельные алгоритмы решения систем обыкновенных дифференциальных уравнений явными методами Рунге-Кутты высокого порядка.

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

Вышеизложенный алгоритм реализован в виде программы на языке С++, расчеты по которой также проводились на сети ПЭВМ и кластере МВС-60001М.

Рис. 3. Зависимость ускорения от числа процессоров при параллельном решении системы ОДУ

На рис. 3 и в табл. 2 приведены результаты расчетов для системы, состоящей из 12000 дифференциальных уравнений.

Таблица 2

Число процессоров кПЭВМ кМВС (кпэвм/кмвс) • 100, %

2 1,92 2,02 95,4

4 3,78 4,03 93,8

6 5,16 5,98 86,2

8 6,31 7,94 79,5

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

Основным преимуществом ЯКБв-метода является возможность повышения порядка точности при сохранении компактного шаблона аппроксимации, который в случае использования треугольных сеток состоит из текущего треугольника и его ближайших соседей. На этом основано эффективное распараллеливание метода.

Система уравнений газовой динамики, описывающая течение вязкого теплопроводного газа, в консервативной форме имеет вид

д и ~ ~

— + Шу](и) = &уЯ(и, Уи),

где и — вектор консервативных переменных; ](и) — тензор невязких потоков, Я(и, У и) — тензор вязких потоков.

Решение на каждой из N ячеек сетки представляется в виде разложения по базису. В рассматриваемом алгоритме использованы линейные базисные функции ^ и решение в каждом треугольнике имеет

Рис. 4. Разделение области на подобласти

вид

3

uK = uf (t) Vj (x,y).

Такое представление решения позволяет свести систему дифференциальных уравнений в частных производных к системе обыкновенных дифференциальных уравнений относительно иК (£) путем интегрирования исходных уравнений по ячейке с весами ^ (х, у):

(йк

= Ь(йк, иQ(к)), г = 1, 2, 3, К = 1,..., N.

Здесь Q(K) — номера элементов, граничащих с элементом К. Правая часть каждого уравнения зависит только от решения на К-м треугольнике и соседних с ним треугольниках.

В результате для сетки из N ячеек получаем систему 3N обыкновенных дифференциальных уравнений, которая может быть решена явным двухшаговым методом Рунге-Кутты.

Идея распараллеливания алгоритма ЯКОв-метода состоит в разделении расчетной области на несколько подобластей (по числу компьютеров в сети). Каждый компьютер определяет решение на новом временном слое только в своей подобласти. Для этого с предыдущего слоя ему необходимы данные о решении в своей подобласти, а также в ячейках, граничащих с ней. На рис. 4 приведен пример разделения области на 3 подобласти; ячейки, принадлежащие разным подобластям, затенены, приграничные ячейки выделены полужирными линиями.

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

Рис. 5. Зависимость ускорения от чимсла процессоров при использовании параллельного алгоритма RKDG-метода

в каждой из подобластей. Предложенный параллельный алгоритм реализован в виде программы на языке Бог1;гап-90; расчеты выполнены на сети ПЭВМ и кластере МВС-60001М.

Полученные результаты приведены на рис. 5 и в табл. 3.

Таблица 3

Число процессоров кПЭВМ кМВС (кпэвм/кмвс) • 100, %

2 1,97 1,97 99,9

4 3,58 3,94 90,8

6 4,92 5,75 85,5

8 5,90 7,41 79,6

Выводы. Разработаны параллельные алгоритмы решения систем линейных алгебраических уравнений с заполненной матрицей общего вида и систем обыкновенных дифференциальных уравнений; предложен параллельный алгоритм решения задач газовой динамики RKDG-методом. Алгоритмы реализованы в виде программ на языках C++ и Fortran с использованием библиотеки параллельных вычислений MPICH.

Эффективность распараллеливания оценена путем расчетов на сети из персональных ЭВМ и на высокопроизводительном кластере МВС-60001М. Показано, что алгоритмы решения СЛАУ и RKDG-метода дают примерно равное ускорение при использовании 2-8 процессоров. Алгоритм решения систем ОДУ позволяет получить несколько большее ускорение, что связано с меньшим объемом пересылаемых данных. Во всех случаях при использовании двух процессоров сеть ПЭВМ уступает по эффективности кластеру МВС-60001М не более чем на 5 %, при использовании четырех процессоров — не более чем на 10 %, восьми процессоров — около 20 %.

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

Работа выполнена при частичной финансовой поддержке Российского фонда фундаментальных исследований (проект № 06-01-00421).

Авторы благодарят Межведомственный суперкомпьютерный центр РАН за предоставленную возможность использования высокопроизводительного кластера МВС-60001М.

СПИСОК ЛИТЕРАТУРЫ

1.Воеводин В. В., Воеводин В л. В. Параллельные вычисления. — СПб.: БХВ-Петербург, 2002. — 608 с.

2. Гергель В. П. Теория и практика параллельных вычислений. - М.: БИНОМ. Лаборатория знаний, 2007. — 424 с.

3. Марчевский И. К., Щеглов Г. А. Об одном подходе к расчету аэродинамических характеристик профиля в идеальной жидкости методом дискретных вихрей // Вкник Харювського нац. ун-ту. Сер1я "М". - Харюв, 2005. - № 661. -С. 182-191.

4. Галанин М. П., Грищенко Е. В., Савенков Е. Б., Токаре в а С. А. Применение RKDG-метода для численного решения задач газовой динамики // Препринт ИПМ им. М.В. Келдыша РАН. - 2006. № 52. - 32 с.

5. Галанин М. П., Савенков Е. Б., Токарева С. А. Решение задач газовой динамики с ударными волнами RKDG-методом // Математическое моделирование, 2008 (в печати).

6. Ортега Дж. Введение в параллельные и векторные методы решения линейных систем. - М.: Мир, 1991. — 367 с.

Статья поступила в редакцию 31.03.2008

Илья Константинович Марчевский родился в 1983 г., окончил МГТУ им. Н.Э. Баумана в 2005 г. Ассистент кафедры "Прикладная математика" МГТУ им. Н.Э. Баумана. Автор более 20 научных и учебно-методических работ в области исследования движения и устойчивости конструкций в потоке среды, вычислительной гидродинамики и элементарной математики.

I.K. Marchevskii (b. 1983) graduated from the Bauman Moscow State Technical University in 2005. Assistant of "Applied Mathematics" department of the Bauman Moscow State Technical University. Author of more than 20 publications in the field of study of motion and stability of constructions in flow of medium, computational hydrodynamics and elementary mathematics.

Светлана Андреевна Токарева родилась в 1985 г., аспирантка кафедры "Прикладная математика" МГТУ им. Н.Э. Баумана. Автор 10 научных работ в области вычислительной газодинамики.

S.A. Tokareva (b. 1985) — post-graduate of "Applied Mathematics" department of the Bauman Moscow State Technical University. Author of 10 publications in the field of computational gas dynamics.