РАЗРАБОТКА ПРОГРАММНОГО КОДА ДЛЯ РЕШЕНИЯ ТРЕХМЕРНЫХ НЕСТАЦИОНАРНЫХ ЗАДАЧ ДИНАМИКИ ВЯЗКОЙ ЖИДКОСТИ В ПОЛЯХ ОБЪЕМНЫХ СИЛ. СОПОСТАВИТЕЛЬНАЯ ОЦЕНКА ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛИЗАЦИИ ДВУХ ИТЕРАЦИОННЫХ МЕТОДОВ Б.Н. Цветков Санкт-Петербургский государственный политехнический университет E-mail: bonits@mail.ru В работе представляется новая версия развиваемого на кафедре гидроаэродинамики СПбГПУ исследовательского программного кода CDF (Cartesian Domain Flows), предназначенного для решения ресурсоемких трехмерных задач динамики вязкой жидкости в областях прямоугольной геометрии на многоблочных структурированных сетках. Программный код ориентирован на использование вихреразрешающих подходов к моделированию турбулентности: метода прямого численного моделирования и метода моделирования крупных вихрей. Излагаются и сравниваются результаты исследования эффективности параллелизации вычислений с использованием двух реализованных в коде численных методов решения уравнений Навье-Стокса: метода искусственной сжимаемости и метода типа SIMPLEC. 1. Введение В настоящее время решение задач о сложных турбулентных потоках современными вихреразрешающими методами требует колоссальных затрат машинного времени. Приемлемого времени и необходимой точности вычислений можно добиться, используя параллельные вычисления на высокопроизводительных системах. При организации параллельных вычислений необходимо наиболее полно использовать все имеющиеся в распоряжении вычислителя ресурсы. Практически важным становится понятие эффективности распараллеливания задачи при расчетах тем или иным методом. В данной работе представляется новая версия программного комплекса CDF (Cartesian Domain Flows), дается сравнительная оценка эффективности распараллеливания модельных многоблочных задач динамики несжимаемой вязкой жидкости в зависимости от используемого алгоритма решения уравнений Навье-Стокса. 2. Программный комплекс CDF Программный комплекс (ПК) CDF в течение нескольких лет разрабатывается на кафедре гидроаэродинамики Санкт-Петербургского государственного политехнического университета. ПК предназначен для расчетов на компьютерах с параллельной архитектурой трехмерных течений несжимаемой жидкости в областях, геометрия которых задается набором прямоугольных блоков. Комплекс CDF в базовой версии [1] использовал неявную схему второго порядка продвижения по физическому времени и метод искусственной сжимаемости для установления по псевдовремени. Автором настоящей работы в ПК был внедрен SIMPLE-подобный алгоритм, позволяющий более эффективно моделировать внутренние течения, реализован метод моделирования крупных вихрей для описания турбулентности, а также возможность учета объемных сил. В ПК CDF используются декартовы блочно-структурированные неравномерные разнесенные (MAC) сетки, стыкуемые на межблочных границах. Дискретизация пространственных операторов для законов сохранения выполнена по методу конечных объемов со вторым порядком точности. Параллелизация осуществляется в соответствие с идеологией SPMD, с использованием библиотеки подпрограмм MPI. Декомпозиция расчётной области на блоки и назначение процессов, которые будут производить вычисления в каждом блоке, производится вручную на этапе постановки задачи. При этом главный процесс производит дополнительные вычислительные операции (сбор и рассылку вспомогательных данных, определение максимальных невязок, значений величин в точках мониторинга и т.п.), а также управляет обработкой межблочных границ. Наиболее интенсивная передача данных между параллельно работающими процессами происходит во время выполнения процедур межблочного обмена на стыковках блоков. Соответственно, особенности реализации процедуры обмена данными между блоками оказывают заметное влияние на эффективность параллелизации в целом. ПК CDF основан на использовании декартовых расчетных сеток с непрерывными сеточными линиями на стыковке блоков, поэтому задача переноса необходимой расчетной информации из блока в блок решается относительно просто. Для организации вычислений достаточно добавить к каждому из стыкующихся блоков по одному слою приграничных ячеек соседнего блока, и рассматривать величины в этих присоединенных ячейках как заграничные (рис. 1). При этом конечные объемы, используемые для вычисления нормальной к поверхности стыковки компоненты скорости и определяемые непосредственно на межблочной границе, считаются принадлежащими одному из стыкуемых блоков. Таким образом, значения скорости вычисляются в соответствующем блоке однократно, что позволяет избежать лишних вычислений. Рис. 1. Межблочная граница на разнесенной расчетной сетке (выделены конечные объемы, используемые для вычисления скалярных величин – давления, температуры) В качестве постпроцессора для визуализации результатов расчетов в ПК CDF используется программа HDVIS, разработанная в Тверском государственном техническом университете под руководством проф. В.Д. Горячева [2]. Пример визуализации турбулентного течения в плоском канале представлен на рис. 2. Рис. 2. Пример визуализации течения в канале с помощью программы HDVIS: мгновенная картина изоповерхности модуля завихренности Внедренный в ПК CDF SIMPLE-подобный алгоритм наиболее эффективно используется для моделирования течений в длинных каналах и течений с сильными локальными неоднородностями. Данный алгоритм является разновидностью метода SIMPLEC и основан на решении во всей расчётной области эллиптического уравнения для поправки давления; реализация алгоритма аналогична выполненной в работе [3]. Для решения возникающей при дискретизации системы линейных алгебраических уравнений применяется метод сопряженных градиентов. При этом используется двухуровневая схема внутренних итераций метода: локальные итерации, которые производятся только в конкретном блоке, и глобальные итерации, затрагивающие одновременно все блоки расчётной области и задействующие процедуры межблочного обмена. Такой подход позволяет повысить эффективность параллелизации программного кода, но приводит к некоторому увеличению общего числа итераций, необходимых для достижения требуемой точности решения. Для описания турбулентных течений в ПК CDF применяются вихреразрешающие подходы: метод прямого численного моделирования (Direct Numerical Simulation, DNS) и метод моделирования крупных вихрей (Large Eddy Simulation, LES), реализованный в рамках настоящей работы. Операция пространственной фильтрации в методе LES при выполнении вычислений по методу конечных объемов может быть интерпретирована как осреднение по объемам ячеек расчетной сетки. В качестве локального масштаба длины в этом случае традиционно используется кубический корень из объема ячейки. В качестве подсеточной модели в ПК CDF реализована модель с одним дифференциальным уравнением для кинетической энергии неразрешаемого движения [4]. Математическая формулировка модели выглядит следующим образом: ∂k sgs ∂t + ui ∂k sgs ∂xi ∂ = ∂xi 3/ 2 ⎡⎛ k sgs ν t ⎞ ∂k sgs ⎤ ⎟⋅ ⎢⎜⎜ν + ⎥ + 2ν t S ij S ij − Cε σ k ⎟⎠ ∂xi ⎦ ∆ ⎣⎝ , 1/ 2 ν t = C k k sgs ∆ . Постоянным модели «по умолчанию» присваиваются следующие значения: C k = 0.12, Cε = 0.7, σ k = 1. Для уменьшения подсеточной вязкости вблизи стенок может использоваться (при выборе соответствующей опции кода) демпфирующий множитель вида [5] ( ) ⎧⎪ y + / 33 2 , y + ≤ 33 D( y ) = ⎨ ⎪⎩1, y + > 33 , + при этом найденная величина подсеточной вязкости ν t умножается на D( y + ). Привлечение демпфирующих соотношений подразумевает вычисление для всех внутренних узлов расчетной сетки расстояния до ближайшей стенки. В реализованном в ПК CDF алгоритме это расстояние находится путем отчасти оптимизированной процедуры перебора расстояний от данной внутренней точки до всех узлов, расположенных на стенках. На сетках большой размерности реализованный алгоритм требует существенных временных затрат, однако поскольку рассматриваемая операция является разовой, выполняемой до проведения основных ресурсоемких расчетов, то в целом затраты на расчеты наименьшего расстояния до стенки оказываются непринципиальными. В ходе настоящей работы в ПК CDF была реализована возможность учета силы Кориолиса при расчетах течений во вращающихся областях, что потребовало модификации процедур расчета потоков через границы контрольных объемов и процедур, отвечающих за выполнение граничных условий. 3. Сопоставительная оценка эффективности параллелизации Для оценки эффективности параллелизации при расчетах с помощью ПК CDF были выбраны две постановки: задача о течении в плоской квадратной полости с движущейся крышкой и задача о течении в квадратном канале. В обеих задачах трехмерные расчетные области разбивались на блоки равной размерности (рис. 3). В случае задачи о течении в квадратной полости количество блоков составляло 64 (112 границ), а в случае задачи о течении в канале – 8 (9 границ). Рис. 3. Геометрия расчётных областей и разбиение на блоки Параметры расчетных сеток для обеих постановок задач представлены в таблице 1. Важным параметром, в значительной мере определяющим эффективность параллелизации задачи, является отношение количества ячеек, участвующих в межблочных обменах к общему числу ячеек расчетной сетки (данный параметр обозначен в таблице φ). Таблица 1. Параметры расчетных сеток Квадратная полость Размерность Общая одного блока размерность сетки 50x50x2 320 000 100x100x2 1 280 000 160x160x2 3 276 800 ϕ,% 14 7 4.375 Размерность одного блока 100x40x5 200x80x10 300x120x15 Канал Общая размерность сетки 160 000 1 280 000 4 320 000 ϕ,% 70 35 23.3 На каждой сетке проводилось по две серии расчетов: по методу искусственной сжимаемости (AC) и по методу SIMPLEC. Расчеты выполнялись на вычислительном кластере из 16-ти узлов, на каждом из которых установлено по два двухъядерных процессора. Время расчета задачи на одном ядре процессора принималось за единицу. Основной наблюдаемой величиной являлось ускорение вычислений, то есть отношение времени расчета на одном узле кластера к времени расчета на нескольких узлах. Замерялось только время на выполнение итераций, без учета времени, затрачиваемого на чтение/запись данных, вспомогательные вычисления и т.п. Для минимизации статистической погрешности определения времени каждый расчет проводился по 3 раза с осреднением полученных результатов. Результаты расчетов сравнивались с идеальным случаем, то есть с линейным возрастанием ускорения. Результаты расчетов по методам AC и SIMPLEC для разных расчетных сеток представлены на рис. 4 (для задачи о течении в квадратной полости) и на рис. 5 (для задачи о течении в квадратном канале). Видно, что ускорение при малых значениях параметра ϕ в расчетах на малом числе процессоров (2–8) возрастает практически линейно, при этом эффективность параллелизации составляет более 0.95. Минимальное значение эффективности параллелизации (менее 0.5) наблюдалось для максимального из исследованных значений ϕ при расчете задачи о течении в канале по методу SIMPLEC на восьми процессорах. Отметим также, что эффективность параллелизации задач сильнее зависит от значения параметра ϕ , чем от использованного метода расчетов. Во всех исследованных случаях эффективность параллелизации метода SIMPLEC оказывалась хуже, чем метода AC. Это связано с дополнительными обменами данными, требующимися для решения во всей расчетной области эллиптического уравнения. Однако в большинстве внутренних задач динамики вязкой жидкости метод SIMPLEC существенно превосходит метод AC по скорости сходимости. Результаты тестовых расчетов показывают, что суммарное время получения решения при параллельных вычислениях по методу SIMPLEC в итоге оказывается заметно меньшим, чем при расчетах по методу AC. 64 64 56 56 AC 0,32m 1,30m 3,30m IDEAL SIMPLEC 0,32m 1,30m 3,30m 48 IDEAL 40 Ускорение, a 40 Ускорение, a 48 32 24 32 24 16 16 8 8 0 0 8 16 24 32 40 Число процессоров, N 48 56 64 0 0 8 16 24 32 40 Число процессоров, N 48 56 64 Рис. 4. Ускорение расчетов по методам AC и SIMPLEC в задаче о течении в квадратной полости (размерность расчетных сеток указана на легенде в миллионах ячеек) 8 8 7 AC 0,16m 1.3m 4.3m IDEAL 7 SIMPLEC 0,16m 1.3m 4.3m IDEAL 6 Ускорение, a 6 Ускорение, a 5 4 5 4 3 3 2 2 1 1 2 3 4 5 6 Число процессоров, N 7 8 1 1 2 3 4 5 6 Число процессоров, N 7 8 Рис. 5. Ускорение расчетов по методам AC и SIMPLEC в задаче о течении в квадратном канале (размерность расчетных сеток указана на легенде в миллионах ячеек) 4. Заключение В современных условиях гидродинамические расчеты требуют от вычислителя понимания того, как применяемые численные методы решения многомерных задач ведут себя в условиях параллельных вычислений. В настоящей работе выявлен ряд факторов, влияющих на эффективность распараллеливания гидродинамических задач, и даются следующие практические рекомендации: • разбиение расчетной области следует проводить таким образом, чтобы блоки получались как можно более близкой размерности; • при разбиении расчетной области на блоки следует стремиться к минимизации количества ячеек на межблочных границах; • при выборе метода решения следует учитывать не только эффективность распараллеливания самого метода, но и вычислительные особенности метода применительно к тому или иному классу задач. Литература 1. 2. 3. 4. 5. 6. V. Goryachev, M. Balashov, D. Rykov, E. Smirnov, O. Rykova, S. Yakubov. Net informational and computational system for CFD researchers. Proc. of the 1st Int. Conf. "From Scientific Computing to Computational Engineering",Athens, 8-10 September, 2004, CD-ROM proceedings, 1st IC-SCCE, 8 p. Балашов М.Е., Горячев В.Д., Смирнов Е.М. Визуализация результатов численного эксперимента при моделировании нестационарных течений с большим объемом данных в системе HDVIS. Научный сервис в сети Интернет: решение больших задач: Труды Всероссийской научной конференции (22– 27 сентября 2008 г., г. Новороссийск). – М.: Изд-во МГУ, 2008. C. 55–59. E. Smirnov and D. Zaitsev. Computations of Internal Flows Using an Artificial-Compressibility Solver Enhanced with an Elliptic Pressure-Correction Procedure // European Congress on Computational Methods in Applied Sciences and Engineering, 24-28 July 2004, Jyvaskyla, Finland (ECCOMAS 2004). Ed: P. Neittaanmaki, T. Rossi, K. Majava, et al., CD-ROM proceedings, 13 p. Абрамов А.Г., Смирнов Е.М. Численное моделирование турбулентной конвекции воздуха в подогреваемой сбоку полости квадратного сечения // ТВТ. 2006. Т. 44. № 1. С. 90–97. Зябриков В.В., Лойцянский Л.Г. Демпфирующий фактор в теории пути смешения Прандтля. // Известия АН СССР, МЖГ. – 1987. – N5. – С. 45–53. Цветков Б.Н. Численное решение задач динамики вязкой жидкости с использованием декартовых многоблочных сеток. Диссертация на соискание ученой степени магистра, СПбГПУ, 2006.