Том XLI
УЧЕНЫЕ ЗАПИСКИ ЦАГИ 2010
№ 2
УДК 534.83:532.517.4 519.63:517.96
ПРОБЛЕМЫ ИСПОЛЬЗОВАНИЯ СОВРЕМЕННЫХ СУПЕРКОМПЬЮТЕРОВ ПРИ ЧИСЛЕННОМ МОДЕЛИРОВАНИИ В ГИДРОДИНАМИКЕ И АЭРОАКУСТИКЕ
А. В. ГОРОБЕЦ, С. А. СУКОВ, Ф. Х. ТРИАС
Рассматриваются различные аспекты, связанные с выполнением крyпномасштабныx расчетов задач гидродинамики и аэроакустики на сyперкомпьютераx. Рассматриваются проблемы оптимизации вычислений и приводятся способы достижения высокой параллельной эффективности на большом числе процессоров (до несколькю тысяч). Описаны особенности реализации арxитектyрно адаптированного гибридного распараллеливания, оптимизации доступа к памяти и параллельной обработки расчетньк данный и сеток большого объема.
Приводятся примеры применения DNS в моделировании как сжимаемым, так и несжимаемый турбулентный течений с использованием численным алгоритмов повышенной точности на структурированный и неструктурированным сетка*.
Ключевые слова: прямое численное моделирование, гибридное распараллеливание, MPI,
OpenMP, суперкомпьютер, гидродинамика, аэроакустика.
Дальнейший прогресс в области вычислительной гидродинамики тесно связан с возможностью выполнения крупномасштабный расчетов в рамкаx прямого численного моделирования (DNS — direct numerical simulation). Подобные расчеты используются в качестве верификационного базиса при разработке полуэмпирическж моделей турбулентности, такж как RANS, LES и др. Кроме того, DNS вносят существенный вклад в изучение такж сложный физическж явлений, как турбулентность. Как правило, задачи для крупномасштабный DNS носят модельный xа-рактер. Примеры крупный расчетов классически задач — каноническая изотропная турбулентность [1] и течение в канале [2], классическая задача обтекания цилиндра [3].
Несмотря на xарактернyю для модельный DNS простоту геометрии, для выполнения расчета необxодим огромный объем вычислений, который часто возможен только с применением наиболее мощный суперкомпьютеров.
Однако эффективное использование суперкомпьютеров само по себе является сложной научной проблемой. Для этого требуются xорошо масштабированные алгоритмы, адаптированные к арxитектyре вычислительной системы.
В данной работе затрагиваются различные аспекты, связанные с выполнением крупномасштабный расчетов на сyперкомпьютераx. Рассматриваются проблемы оптимизации вычислений и приводятся способы достижения высокой параллельной эффективности на большом числе процессоров (до несколько тысяч). Описаны особенности реализации арxитектyрно адаптированного гибридного распараллеливания MPI + OpenMP. Кроме того, уделяется внимание оптимизации доступа к памяти и параллельной обработке расчетные данный и сеток большого объема. Также приводятся примеры применения DNS в моделировании как сжимаемые, так и несжимаемые турбулентные течений с использованием численные алгоритмов повышенной точности на структурированные и неструктурированные сеткаx. Описываются некоторые расчеты, выполненные авторами на сyперкомпьютераx МВС-10000 (МСЦ РАН) и MareNostrum (Барселонский супер-компьютерный центр).
Суперкомпьютеры и комплексы программ, использованные в исследованиях. Для вычислений использовались суперкомпьютеры МВС-100К (Hewlett-Packard) Межведомственного
суперкомпьютерного центра РАН и MareNostrum (IBM) Барселонского суперкомпьютерного центра. Представленные в статье алгоритмы реализованы авторами в нескольких закрытых некоммерческих комплексах программ (которые используются в данной статье для демонстрационных тестов и расчетов):
1) Noisette [4], предназначенный для 2D и 3D CFD/CAA расчетов сжимаемых течений с использованием неструктурированных треугольных и тетраэдральных сеток и явных алгоритмов повышенной точности [5].
2) Wombat [6], предназначенный для 3D CFD расчетов, в частности DNS сжимаемых течений с использованием неструктурированных сеток и явных алгоритмов.
3) KSFD [7] лаборатории CTTC при техническом университете Каталонии (UPC). KSFD предназначен для крупномасштабных DNS расчетов несжимаемых течений. Используются структурированные декартовы сетки и схема повышенного порядка точности, сохраняющая симметрию [8].
Noisette использовался в данной работе для исследования производительности параллельных вычислений с использованием гибридного распараллеливания MPI + OpenMP. В комплексе программ Wombat реализовано переупорядочивание элементов сетки для оптимизации доступа к памяти, а также средства для параллельной обработки сеток большого объема. Все три комплекса программ использовались в тестах на эффективность вычислений и для выполнения DNS расчетов, примеры которых иллюстрируют характерные проблемы с точки зрения параллельных вычислений.
Проблема эффективности вычислений на многоядерных узлах. Достижение высокой эффективности внутри узлов суперкомпьютера является сложной задачей. Тесты при различной загрузке многоядерных узлов обнаруживают падение производительности вычислений. Каждый вычислительный узел суперкомпьютера МВС-100К имеет 8 процессорных ядер на двух четырехъядерных процессорах Intel Xeon 5140, эффективное использование которых является достаточно сложной задачей. Рассмотрим случай применения Noisette для тестового DNS расчета задачи о прохождении акустической волны через отверстие резонаторной камеры в импедансной трубе. Тест производился на небольшой сетке, содержащей 106 узлов, с использованием явного алгоритма повышенной точности. Выполнено разбиение сетки для запуска 40 параллельных процессов. Эти 40 процессов могут быть запущены на 5 узлах, используя 8 ядер на каждом узле. Задача может быть запущена и на 10 узлах, используя лишь половину ядер на каждом узле, на 20 узлах по два процесса на узел и на 40 узлах по одному процессу на узел. При этом в идеальном случае производительность вычислений осталась бы неизменной. Что происходит в реальности, показано на рис. 1.
Измерялось время вычислений 100 шагов по времени. Эффективность вычислений определялась следующим образом: E = T1/ TP 100%, где TP — время, полученное для загрузки 8-ядер-
----- Noisette, 40 проц., сетка 10ьузлов
— Wombat, 32 проц., сетка 1.7x106узлов -----KSFD, 200 проц., сетка 1.4x107узлов
100
90
80
ш
-8-
■в-
70
60
50
_ __ ч ~ -ч
\ " ^
yv Ч
\ \ «■»
\ \ " тЛ.
\ \
\
\
_ ч
_ \ ч
_ \
- Ч
- \ч
- \ \
-
1 1 1 1 1 1 1 1 1 1 1 1 1 i 1 1 1 1 1 1 1 1 1 , ,
3 4 5 6
Использовано ядер на выч. узлах
Рис. 1. Эффективность вычислений при различной загрузке узлов
ных узлов P процессами (P = 1, 2, 4, 8), T — время для загрузки одного процесса на узел (запуск на 40 узлах). Четко видно падение производительности с увеличением загрузки узла. Сравнивая загрузку 4 и 8 процессов на узел, можно видеть падение производительности на 55%.
Аналогичные результаты были получены и для остальных комплексов программ. В случае
KSFD запуск задачи из 200 процессов (сетка 2.7 10 узлов) был выполнен для загрузки 4 и 8 процессов на узел. Потеря производительности составила 60%. Для комплекса программ Wombat получен тот же эффект, но в заметно меньшем масштабе. Это достигается, в частности, за счет выполнения дополнительной оптимизации доступа к памяти, о которой говорится далее.
Таким образом, использование всех 8 ядер на узле приводит к замедлению доступа к памяти (аналогичный тест для Noisette был выполнен с отключенным обменом данными, чтобы исключить влияние сетевых операций). Когда все 8 ядер интенсивно используют оперативную память, происходит существенное падение производительности, что было показано для различных алгоритмов как на структурированных, так и неструктурированных сетках. Следовательно, особое внимание должно быть уделено оптимизации вычислений внутри узла и, в частности, оптимизации доступа к памяти.
Повышение эффективности доступа к памяти. Из-за иерархической структуры компьютерной памяти эффективность параллельной реализации конечно-объемных и конечно-элементных методов на неструктурированных сетках существенно зависит от нумерации узлов сетки. Порядок нумерации узлов определяет расположение данных в оперативной памяти для вычислений потоков на гранях ячеек, градиентов различных переменных и т. д. Как правило, удельный объем вычислений на элемент сетки достаточно небольшой, поэтому определяющее значение имеет скорость доступа к памяти. В случае неоптимального расположения данных в памяти частые потери в кэш-памяти приводят к существенному падению производительности.
Тесты с Wobmat показали, что на тетраэдральной сетке время вычислений для различных нумераций узлов может отличаться более чем в два раза. Следует отметить, что проблема доступа к памяти особенно остро проявляется в случае многоядерных узлов, поэтому эффективное использование кэш-памяти особенно важно.
Для оптимизации доступа к памяти используется специальный алгоритм — двухуровневая модель обработки сетки [9]. Разбиение сетки выполняется в два этапа. На первом этапе сетка разбивается на большое число микроподобластей (размер которых выбирается с учетом характеристик кэш-памяти) и строится огрубленный взвешенный граф сетки, каждый узел которого соответствует микроподобласти, а его вес соответствует числу узлов в этой микроподобласти. Затем для декомпозиции сетки на процессорные подобласти выполняется разбиение огрубленного графа сетки, после чего каждый процессор объединяет свои микроподобласти. Такой подход имеет следующие преимущества:
1) Переупорядочивание элементов сетки внутри микроподобластей повышает эффективность доступа к памяти, уменьшая потери в кэш и стабилизируя время вычислений для различных вариантов исходной нумерации сетки. Выигрыш от переупорядочивания зависит от качества исходной нумерации элементов сетки. Например, при построении сетки с помощью Gambit (генератор, входящий в коммерческий пакет Fluent) переупорядочивание повышает производительность Wombat примерно на 20%. Эффект от оптимизации доступа к памяти также можно видеть на рис. 1: Wombat имеет более высокие показатели эффективности.
2) Улучшается балансировка загрузки процессоров. В сравнении с широко используемым
8
параллельным средством декомпозиции ParMetis при разбиении сетки размером 2.110 узлов на 1280 подобластей получается дисбаланс в 52%, в то время как для двухуровневой модели [9] дисбаланс составляет всего 6%.
Гибридное распараллеливание MPI + OpenMP. Гибридное распараллеливание MPI + OpenMP становится все более популярным благодаря быстрому росту числа ядер на вычислительном узле. Более того, число ядер растет быстрее, чем возможности оперативной памяти узла и производительность сети. К примеру, на суперкомпьютере МВС-100К объем доступной RAM составляет менее 500 Мб на ядро. Использование гибридного распараллеливания позволяет сократить в Nt раз число MPI процессов, где Nt — число OpenMP нитей (не превосходящее число ядер на узле). Сокращение числа MPI процессов дает следующие преимущества:
1) MPI-процессу доступно примерно в Nt раз больше памяти;
Число процессоров
Рис. 2. Сравнение ускорения Noisette при использовании MPI и MPI + OpenMP (логарифмическая шкала) на МВС-100К
2) сокращается количество обменов данными, поскольку в NT раз уменьшается количество участвующих в обмене данными процессов, а также уменьшается объем пересылки;
3) снижается нагрузка на файловую систему, поскольку количество процессов, параллельно выполняющих операции с файлами, уменьшается в NT раз.
При этом задействуются все ядра узла. Однако OpenMP также имеет некоторые особенности. Одна из основных проблем — это пересечение по данным между параллельными нитями. Присутствие критических секций и атомарных операций существенно снижает производительность. Избежать пересечения можно простым и действенным способом, реплицируя данные для каждой нити, однако это ведет к некоторому росту затрат оперативной памяти. Более универсальный способ — это двухуровневое разбиение сетки, когда подобласть MPI-процесса разбивается далее на подобласти OpenMP нитей. Элементы сетки переупорядочиваются таким образом, чтобы внутренние элементы подобластей были сгруппированы в памяти и отделены от интерфейсных элементов (т. е. элементов сетки, принадлежащих более чем одной OpenMP подобласти). Это позволяет локализовать пересечение по данным. Нити OpenMP параллельно обрабатывают данные, соответствующие внутренним элементам, а затем последовательно обрабатываются интерфейсные элементы. При этом, поскольку количество интерфейсных элементов, как правило, намного меньше, чем внутренних, достигается высокая параллельная эффективность.
На рис. 2 показано полученное ускорение на суперкомпьютере МВС-100К для кода Noisette
(задача об импедансной трубе, небольшая сетка 1.3 106 узлов) как при использовании обычного MPI распараллеливания, так и гибридного MPI + OpenMP. Сначала оба подхода демонстрируют одинаковую производительность (поскольку влияние обменов данными незначительно), но с ростом числа процессоров MPI подход быстрее достигает своего предела и при числе процессоров 1280 начинает терять эффективность, в то время как MPI +OpenMP еще сохраняет эффективность. Можно видеть, что выигрыш при использовании OpenMP на 1280 процессорах составляет порядка 20%. На 2560 процессорах MPI + OpenMP также достигает предела в данном тесте и утрачивает параллельную эффективность (выигрыш по сравнению с MPI около 5%).
Примеры DNS расчетов. Далее рассматриваются характерные проблемы, свойственные различным типам задач, на примерах DNS расчетов, выполненных авторами в недавнее время. Первый пример — задача о прохождении акустической волны через отверстие резонатора в им-
педансной трубе (комплекс программ Noisette, сетка 1.3 106 узлов, использовалось 400 процессоров на МВС-100К). Расчет выполнен в рамках серии вычислительных экспериментов по звукопо-
Рис. 3. Прохождение плоской акустической волны через отверстие резонаторной камеры
(изоповерхности давления)
глощающим конструкциям (ЗПК) авиадвигателей [10]. Особенность данного типа задач — длительный период интегрирования по времени, необходимый из-за большого перепада масштабов течения и низкой частоты волны. Из-за этой особенности расчет имеет высокую вычислительную стоимость даже для такой сравнительно небольшой сетки, так как требуется выполнить большое число шагов по времени (порядка миллиона). Это накладывает особые требования на эффективность распараллеливания, поскольку на каждом шаге по времени объем вычислений между обменами данных существенно меньше, чем в случае использования больших сеток. На рис. 3 показаны вихревые структуры в горле резонаторной камеры, возникающие при прохождении плоской акустической волны. Видно, насколько мало горло резонатора по сравнению с расчетной областью (нижняя часть рисунка).
Второй пример — расчет внешнего обтекания тела сложной формы, выполненный с использованием Wombat. Особенность задачи — большая пространственная сетка около 210 миллионов узлов (более миллиарда тетраэдров). Использовалось более 3 тысяч процессоров суперкомпьютера МВС-100К. Проблема данного типа задач — это, в первую очередь, большой размер сетки, вызванный сложностью геометрии и необходимостью разрешения мелкомасштабных структур течения. Сетки такого размера требуют использования параллельных средств обработки данных, для чего применяется описанная в статье двухуровневая модель. Размер сетки в данном случае обусловливает высокую вычислительную стоимость.
Приведенные выше примеры — это моделирование сжимаемых течений, «более удобных» для параллельных вычислений, чем несжимаемые течения, имеющие бесконечную скорость распространения информации в пространственном домене (что требует обмена информацией между всеми процессорами).
Следующий пример — моделирование несжимаемых турбулентных течений и теплообмена при естественной конвекции в закрытой каверне [11], выполненное на суперкомпьютере Марено-струм с использованием комплекса программ KSFD [9]. Расчеты выполнены с использованием до 512 процессоров, сетки размером до 110 миллионов узлов и схемы 4-го порядка аппроксимации. Данному типу задач, помимо необходимости решать уравнение Пуассона (эта проблема не рассматривается в данной статье), свойственна необходимость подробной дискретизации по пространству и большого периода интегрирования по времени (из-за присутствия низкочастотных процессов и большого перепада масштабов течения). Таким образом, расчет имеет очень высокую вычислительную стоимость как из-за размера сеток, так и из-за большого числа шагов по времени. Это требует использования большого числа процессоров, что также накладывает осо-
Рис. 4. Турбулентное течение при естественной конвекции в закрытой каверне [11] (изоповерхности
температуры, эволюция во времени)
бые требования на эффективность параллельного алгоритма. На рис. 4 для примера показаны картины течения в нескольких моментах времени. Можно видеть мелкомасштабные структуры течения, требующие подробной дискретизации.
Заключение. Следует отметить, что быстрый рост производительности вычислительных систем приносит также ряд проблем. Все сложнее становится эффективно использовать вычислительную мощность суперкомпьютера. Один из способов повышения эффективности — это применение представленной в данной статье гибридной технологии распараллеливания MPI + OpenMP, более соответствующей архитектуре суперкомпьютера, чем просто MPI. Кроме того, большого внимания требует проблема оптимизации доступа к памяти, особенно актуальная на многоядерных узлах. Как было показано, реализация эффективных параллельных алгоритмов с учетом архитектуры современных систем позволяет использовать для крупномасштабных расчетов тысячи процессорных ядер суперкомпьютера.
ЛИТЕРАТУРА
1. Yukio Kaneda and Mitsuo Yokokawa. DNS of canonical turbulence with up to 40963 Grid Points // Parallel Computational Fluid Dynamics, Elsevier, May 2004, p. 23—32.
2. H o y a s S. and Jimenez J. Scaling of velocity fluctuations in turbulent channels up to ReT = 2003 // J. Physics of Fluids. 2006. V. 18, issue 1, p. 011702-011702-4.
3. Wissink Jan G. and Wolfgang Rodi. Large-scale computations of flow around a circular cylinder // High Performance Computing on Vector Systems, part II. 2007, p. 71 —81.
4. Г оробец А. В., Козубская Т. К. Технология распараллеливания явных высокоточных алгоритмов вычислительной газовой динамики и аэроакустики на неструктурированных сетках // Математическое моделирование. 2007. Т. 19, № 2, с. 68—86.
5. A b a l a k i n I., D e r v i e u x A., K o z u b s k a y a T. High accuracy finite volume method for solving nonlinear aeroacoustics problems on unstructured meshes // Chinese Journal of Aeroanautics, 19 (2), (200б), p. 97—104.
6. Савин Г. И., ЧетверушкинБ. Н., ГоробецА. В., Козубская Т. К., Суков С. А., ВдовикинО. И., Шабанов Б. М. Моделирование задач газовой динамики и аэроакустики с использованием ресурсов суперкомпьютера МВС-100К // Доклады Академии Наук. 2008. T. 423, № 3, с. 312—315.
7. T r i a s F. X., S o r i a M., P e r e z - S e g a r r a C. D. and O l i v a A. A direct schur-fourier decomposition for the efficient solution of high-order poisson equations on loosely coupled parallel computers // Numerical Linear Algebra with Applications, page (published online), 2005.
8. V e r s t a p p e n R. W. C. P. and V e l d m a n A. E. P. Symmetry-preserving discretization of turbulent flow // J. of Computational Physics, 187:343-3б8, May 2003.
9. SukovS. A.IakobovskiM. V.BoldyrevS. N. Big unstructured mesh processing on multiprocessor computer systems. Parallel Computational Fluid Dynamics: Advanced numerical methods software and applications / Proc. of the Parallel CFD 2003 Conference Moscow, Russia (May 13—15, 2003), Elsevier, Amsterdam, 2004, p. 73—79.
10. Ab al akin I. V., Go r o b e t s A. V., Ko z ub skay a T. K, Mir o no v A. K. Simulation of acoustic fields in resonator-type problems using unstructured meshes // AIAA Paper 200б-2519, 200б.
11. Trias F. X., Gorobets A. V., Soria M. and Oliva A. DNS of natural convection flows on MareNostrum supercomputer / In Parallel Computational Fluid Dynamics. Elsevier, 2007.
Рукопись поступила 18/III2009 г.