Научная статья на тему 'Применение графических ускорителей для расчета гидродинамических характеристик гребных винтов в пакете OpenFOAM'

Применение графических ускорителей для расчета гидродинамических характеристик гребных винтов в пакете OpenFOAM Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
513
102
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОСЕТОЧНЫЕ МЕТОДЫ / ГРАФИЧЕСКИЕ УСКОРИТЕЛИ / ГРЕБНЫЕ ВИНТЫ / МАСШТАБИРУЕМОСТЬ / ПАКЕТ OPENFOAM / MULTIGRID METHODS / GPU / MARINE SCREW PROPELLERS / SCALABILITY / OPENFOAM PACKAGE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Краснопольский Б. И., Медведев А. В., Чулюнин А. Ю.

Пакет OpenFOAM является одним из популярных инженерных инструментов для численного моделирования задач прикладной гидродинамики, для которых могут быть характерны сложные геометрии и сетки с числом ячеек, измеряемых десятками миллионов. Поскольку решение такого рода задач зачастую отличается большой продолжительностью и ресурсоёмкостью, любое ускорение таких расчетов имеет большое практическое значение. На основе одной практической задаче численного моделирования гидродинамических характеристик гребных винтов в настоящей работе исследуется вопрос оптимизации расчета в OpenFOAM за счет применения оригинальной библиотеки SparseLinSol (SLS), разрабатываемой авторами. Библиотека предназначена для решения больших разреженных систем уравнений на суперкомпьютерах и использует итерационные методы подпространства Крылова и многосеточные методы. Алгоритмы библиотеки используют оригинальную гибридную схему распараллеливания, комбинирующию модели MPI и Posix Shared Memory, а также допускают использование графических ускорителей NVIDIA для значительной части реализованных методов. В результате проведенного тестирования на вычислительной системе, оборудованной ускорителями NVIDIA X2070, показано, что: 1) результаты моделирования целевой задачи в пакете OpenFOAM, в целом, соответствуют результатам, полученным в пакете Star-CCM и результатам экспериментов; 2) реализованные методы решения СЛАУ обладают большей робастностью по сравнению с многосеточным методом GAMG, реализованным в пакете OpenFOAM; 3) Гибрдная модель распараллеливания значительно улучшает масштабируемость солвера, что позволяет добиваться линейной масштабируемости до 128 узлов, на всем диапазоне рассмотренном в проведенных тестах; 4) использование графических ускорителей способно увеличить скорость расчётов в 1.4-3 раза; 5) реализация методов в библиотеке SparseLinSol превосходит по скорости реализацию методов из библиотеки hypre для той же комбинации методов и тесторых матриц

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Краснопольский Б. И., Медведев А. В., Чулюнин А. Ю.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

On application of GPUs for modelling of hydrodynamic characteristics of screw marine propellers in OpenFOAM package

OpenFOAM is a proven engineering tool for applied hydrodynamics numerical modeling which is typically characterized by complex geometries and large grids of 107-108 cells. Since such calculations are often very long and resource-intesive, any way of speeding them up is of high practical interest. Based on one practical problem of a screw propeller characteristics modeling, optimizations to OpenFOAM via the originally developed SLAE solution plugin is proposed. The plugin is based on SparseLinSol (SLS) library, developed by the authors. The library uses Krylov subspace iterative methods with the Classic AMG preconditioner to effectively solve large SLAEs on supercomputers and features original hybrid communications model which implements MPI and Posix Shared Memory combination. The library also is able to utilize NVIDIA GPU accelerators for a significant part of the implemented algorithms. Test results on 128-node computational system equipped with NVIDIA X2070 accelerators show that: (i) OpenFOAM numerical modeling results are close to those achieved with Star-CCM package and experimental results; (ii) developed SLAE solution methods are more robust than those implemented in original OpenFOAM GAMG-based SLAE solver; (iii) hybrid communication model improves solver scalability a lot and the solver scales linearly up to the maximum number of nodes used in current tests; (iv) GPU usage makes calculations 1.4-3 times faster; (v) SLS solver is faster than hypre solver on the same set of implemented methods and test matrices

Текст научной работы на тему «Применение графических ускорителей для расчета гидродинамических характеристик гребных винтов в пакете OpenFOAM»

Применение графических ускорителей

для расчета гидродинамических характеристик гребных винтов в пакете

OpenFOAM

''2 Б.И. Краснополъский <krasnopolsky@imec.msu.ru> 2 A.B. Медведев <alexey.v.medvedev@gmail.com> 1 А.Ю. Чулюнин <chulyu-n@mail.ru> 1 Институт механики МГУ имени М.В. Ломоносова, 119192, Россия, г. Москва, Мичуринский пр-т, д. 1.

2 ЗАО «Т-Сервисы», 117198, Россия, г. Москва, Ленинский пр-т, д. 113/1.

Аннотация. Пакет OpenFOAM является одним из популярных инженерных инструментов для численного моделирования задач прикладной гидродинамики, для которых могут быть характерны сложные геометрии и сетки с числом ячеек, измеряемых десятками миллионов. Поскольку решение такого рода задач зачастую отличается большой продолжительностью и ресурсоёмкостью, любое ускорение таких расчетов имеет большое практическое значение. На основе одной практической задаче численного моделирования гидродинамических характеристик гребных винтов в настоящей работе исследуется вопрос оптимизации расчета в OpenFOAM за счет применения оригинальной библиотеки SparseLinSol (SLS), разрабатываемой авторами. Библиотека предназначена для решения больших разреженных систем уравнений на суперкомпьютерах и использует итерационные методы подпространства Крылова и многосеточные методы. Алгоритмы библиотеки используют оригинальную гибридную схему распараллеливания, комбинирующию модели MPI и Posix Shared Memory, а также допускают использование графических ускорителей NVIDIA для значительной части реализованных методов. В результате проведенного тестирования на вычислительной системе, оборудованной ускорителями NVIDIA Х2070, показано, что: 1) результаты моделирования целевой задачи в пакете OpenFOAM, в целом, соответствуют результатам, полученным в пакете Star-CCM и результатам экспериментов; 2) реализованные методы решения СЛАУ обладают большей робастностью по сравнению с многосеточным методом GAMG, реализованным в пакете OpenFOAM; 3) Гибрдная модель распараллеливания значительно улучшает масштабируемость солвера, что позволяет добиваться линейной масштабируемости до 128 узлов, на всем диапазоне рассмотренном в проведенных тестах; 4) использование графических ускорителей способно увеличить скорость расчётов в 1.4-3 раза; 5) реализация методов в библиотеке SparseLinSol превосходит по скорости реализацию методов из библиотеки hypre для той же комбинации методов и тесторых матриц.

Ключевые слова: многосеточные методы; графические ускорители; гребные винты; масштабируемость; пакет ОрегйЮАМ.

1. Введение

Решение прикладных инженерных и научных задач вычислительной гидродинамики в настоящее время является одной из типичных задач для многопроцессорных вычислительных систем. Научным расчетам свойственны достаточно простые геометрии расчетных областей, но более "аккуратные" численные процедуры, как то схемы высоких порядков аппроксимации по времени и пространству, быстрые методы решения систем уравнений, оптимизированные под конкретную геометрию расчетной области, более достоверные модели турбулентности и прочее. Для проведения таких расчетов зачастую разрабатываются авторские «т-Ьоиве» расчетные алгоритмы и коды, ориентированные на изучение каких-то конкретных физических явлений. Инженерные расчеты отличает комплексная геометрия объектов и сложные конфигурации расчетных областей, что накладывает определенные ограничения на выбор численных методов. Приоритетным здесь является использование методов, обладающих достаточной универсальностью и гибкостью, чтобы обеспечить решение поставленной задачи даже для сложных расчетных областей. Такой функционал и требования к методам обычно отличаются от традиционных «т-Ьоиве» кодов, и реализован в инженерных СРБ-пакетах.

Одним из примеров расчетной области со сложной конфигурацией является задача о моделировании гидродинамических характеристик гребных винтов судна [1, 2]. Расчет гидродинамических характеристик пары гребных винтов предполагает проведение нестационарного расчета с вращением подобластей сетки, ассоциированных с движущимися винтами. В качестве инструментария для численного моделирования в работе использовался пакет с открытым исходным кодом ОрепРОАМ. Для корректного осреднения результатов расчетов необходимо смоделировать как минимум несколько оборотов винтов, что приводит к расчету десятков и сотен тысяч шагов по времени. С учетом того, что для удовлетворительного разрешения подобных расчетных областей требуются сетки порядка 107-108 ячеек, а расчет одного шага по времени занимает несколько минут, то крайне актуальным оказывается вопрос ускорения подобных расчетов. Проведенные оценки показали, что до 90% расчета шага по времени может занимать решение систем линейных алгебраических уравнений (СЛАУ) для поправки давления. Данное наблюдение очевидным образом указывает на наиболее перспективную область исследований с целью ускорения расчетов. Этап расчета, связанный с решением СЛАУ, в достаточной степени обособлен в коде пакета ОрепРОАМ, что позволяет применять пользовательские динамически подключаемые библиотеки численных методов без внесения изменений в исходный код пакета.

Потенциальное ускорение этапа решения СЛАУ для поправки давления, по сравнению со стандартными методами из пакета OpenFOAM, а именно методами GAMG и/или итерационными методами подпространства Крылова, может быть достигнуто за счет нескольких факторов. К их числу можно отнести как использование более эффективных математических методов, так и попытки применения более эффективных моделей программирования для улучшения масштабируемости методов, а также использования сопроцессоров или ускорителей. В данной работе будет затронут каждый из указанных аспектов на примере разрабатываемой авторами библиотеки численных методов для решения больших разреженных систем линейных алгебраических уравнений SparseLinSol.

Говоря об использовании графических ускорителей, следует изначально корректно оценивать потенциал ускорения для задач линейной алгебры с разреженными матрицами, не ожидая 20-40-кратных ускорений. Поскольку основными операциями в этих алгоритмах являются операции типа умножения матрицы на вектор, то данные задачи относятся к классу «memory bound» приложений, и основные вопросы ускорения вычислений будут связаны с организацией доступа к памяти и пропускной способностью шины памяти сопроцессоров. Так, для графических ускорителей NVIDIA Tesla поколения Fermi пропускная способность составляет до 178 ГБ/сек в режиме ЕСС OFF (порядка 150 ГБ/сек для более применимого на практике режима с коррекцией ошибок), и порядка 250 ГБ/сек для более современного поколения Kepler. По сравнению с типичным значением для центральных процессоров порядка 50 ГБ/сек, потенциальное ускорение от использования одного сопроцессора, с учетом различных накладных расходов, следует ожидать в пределах 2.5-4 раз по сравнению с одним центральным процессором.

2. Постановка задачи

В настоящей работе исследовалась задача об определении интегральных характеристик гребных винтов в постановке в открытой воде: обтекание набегающим потоком рулевой колонки с парой разнонаправленно вращающихся винтов. В рамках построенной модели для проведения численного моделирования выделяется расчетная область в виде усеченного конуса с высотой Я=0.705 м. и диаметрами оснований i//=0.367 м. и с/2=0 Л м. соответственно. Для расчета нестационарного течения вязкой несжимаемой жидкости (вода при стандартных условиях) использовались осредненные нестационарные уравнения Рейнольдса, замкнутые с помощью модели турбулентности SST [3]. На основании конуса с диаметром dt задается нормальная компонента скорости (7=3 м/с, а на противоположном основании d2 фиксируется распределение давления P=const. На твердых стенках внутри расчетной области задается условие «прилипания», а на боковой поверхности конуса предполагается условие непротекания и отсутствия касательных напряжений («симметрия»). Сопряжение вращающихся подобластей сетки

реализовано с использованием технологии АМ1-патчей и соответствующего решателя рппркЭуМРоат.

В ходе работы были построены три расчетные сетки общим размером 41, 60 и 99 млн. ячеек. Данные сетки отличаются степенью сгущения ячеек у поверхности лопастей винтов и предназначены для исследования сеточной сходимости результатов расчетов. При этом, высота пристеночных ячеек для указанных сеток составила 3 мкм (рис. 2).

Рис. 1. Сборка модели.

Рис. 2. Расчетная сетка на поверхности гребного винта и фрагмент расчетной сетки в окрестности кромки лопасти винта.

Расчеты проводились в пакете ОрепРОАМ версии 2.2.1, установленном на вычислительной системе «Ломоносов» суперкомпьютерного центра МГУ (табл. 1). Процедура расчета шага по времени требовала определенного количества внутренних итераций, причем матрица системы уравнений для поправки давления менялась не на каждой такой итерации. Суммарно, на шаге

по времени выполнялось решение 20 систем уравнений с 5 различными правыми частями для каждой из них.

Для стандартных методов решения систем уравнений, реализованных в пакете OpenFOAM, рассматривались две конфигурации с многосеточным методом в качестве решателя (GAMG) и методом сопряженных градиентов с многосеточным методом в качестве предобуславливателя (PCG+GAMG). В обоих случаях использовался следующий набор параметров многосеточного метода:

pressure_solver {

solver GAMG;

smoother DIC;

сасИеАдд1отега1:1оп оп;

пРгев\л/еер5 0;

nPostSweeps 2;

пСе1151пСоаг5ез1:1-еуе1 1000; адд1отега1:ог faceAreaPair;

тегде1_еуе15 1;

}

Точность решения систем уравнений для давления по норме, принятой в пакете ОрепЕЮАМ, ограничивалась значением |г„||( < 10"7. Отдельные эксперименты, проведенные для комбинации метода сопряженных градиентов с частичным разложением Холецкого, показали, что данные методы не всегда обеспечивают удовлетворительную скорость сходимости к решению.

Табл. 1. Основные параметры тестовой вычислительной платформы.

Вычислительная система «Ломоносов»

Процессор 2хХ5570, 8 ядер/узел

Графический ускоритель 2xNVIDIA Tesla Х2070

Оперативная память 8 ГБ

Interconnect Infiniband QDR

Компилятор Intel compilers, 13.1.0

Библиотека MPI Intel MPI, 4.1.0

3. Библиотека ЗрагзеипЭо!

В качестве внешней библиотеки в работе была использована разрабатываемая авторами библиотека Л/?дглс/,//?,SV^/ (БЬБ). Данная библиотека содержит параллельные реализации итерационных методов подпространства Крылова и

159

многосеточных методов. Для центральных процессоров разработаны гибридные реализации методов, основанные на модели программирования MPI+Posix Shared Memory. Также ведется работа по переносу части вычислений и использованию в расчетах графических ускорителей. В библиотеке SLS в данных расчетах использовалась конфигурация стабилизированного метода бисопряженных градиентов (BiCGStab) [4] с классическим алгебраическим многосеточным предобуславливателем (CAMG) [5]. Для построения иерархии матриц многосеточного метода использовался ряд алгоритмов из библиотеки hypre [6].

Для использования библиотеки в расчетах в пакете OpenFOAM был разработан соответствующий плагин сопряжения. В ходе его реализации было заложено условие, чтобы для его использования не требовалось внесения каких-либо изменений в исходный код и перекомпиляции всего кода пакета OpenFOAM. В данном плагине предусмотрена поддержка processor- и cyclic. I.\ //-патчсй. что позволяет использовать библиотеку SparseLinSol для расчетов задач с AMI-интерфейсами в распределенном режиме.

3.1 Особенности реализации методов на графических ускорителях

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

1) выбор формата представления разреженных матриц;

2) накладные расходы, связанные с работой на графических ускорителях;

3) эффективная реализация распределенных вариантов алгоритмов. 3.1.1 Выбор формата представления матриц

Из множества известных вариантов форматов представления матриц для операций разреженной линейной алгебры наиболее универсальным можно считать формат CSR, обеспечивающий приемлемые результаты производительности операций на матрицах практически любого типа. Проблема, однако, заключается в том, что производительность операций с матрицами при использовании этого формата на графических ускорителях не достигает максимальной производительности. Причина обусловлена особенностями работы подсистемы памяти графических ускорителей, которая требует соблюдения правила «coalescing» для операций чтения и записи чтобы пропускная способность памяти была использована полностью. Известные алгоритмы, например, операции умножения матрицы на вектор (SpMV) для формата CSR, такие как алгоритм Н. Белла [7], не могут обеспечить выполнения правила «coalescing» для всех видов матриц, поэтому в худших случаях эффективность использования пропускной способности памяти для

них может снижаться относительно теоретического максимума в несколько раз.

Среди множества разработанных форматов представления разреженных матриц, допускающих более эффективные реализации алгоритмов типа 8рМУ, можно выделить семейство ЕЬЬ-форматов. Хотя оригинальный формат ЕЬЬРАСК имеет достаточно ограниченную область применимости для матриц произвольного вида, на его основе разработан ряд модификаций и обобщений, например [8], делающие этот формат более применимым на практике. Одним из альтернативных подходов, который должен обеспечить приемлемую производительность на графических ускорителях для любого типа разреженных матриц, представляется комбинирование форматов типа ЕЬЬРАСК и С8Я - представление матрицы в виде суперпозиции нескольких форматов, так чтобы наиболее подходящие алгоритмы работали для подходящих частей матриц. Недостатком такой методики становится тот факт, что необходимо реализовывать не один, а серию алгоритмов для каждой операции вместе с алгоритмами выбора типа представления в зависимости от параметров матрицы, и несколько алгоритмов конвертации форматов. Тем не менее, такой подход представляется на данный момент наиболее приемлемым компромиссом.

Библиотека 8раг5еЬт8о1 содержит реализации базовых алгоритмов для форматов С8Я и ЕЬЬРАСК. Эксперименты с реальными задачами, в том числе обсуждаемыми в настоящей работе, показывают, что для более чем половины матриц, операции с которыми выполняются в ходе выполнения многосеточного метода, формат ЕЬЬРАСК является достаточно эффективным и именно ЕЬЬРАСК-представление предпочтительнее для реализации методов на графических ускорителях. Для оставшейся части матриц С8Я формат показывает лучшие результаты. Алгоритмы совмещения разных форматов представления матриц в ходе расчета на данный момент находятся в стадии разработки, и все имеющиеся результаты получены на версии библиотеки, использующей ЕЬЬРАСК представление матриц на графических ускорителях.

3.1.2 Проблема накладных расходов, связанных с работой на графических ускорителях

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

оперативной памяти вычислительного узла в память ускорителя или обратно. Запуск «пустого» вычислительного ядра на системах, оснащённых адаптерами NVIDIA, отнимает не менее 2-3 мкс, однако эта цифра может меняться и в большую сторону при увеличении числа нитей. Однако, есть основания полагать, что накладные расходы на запуск реальных ядер могут быть существенно выше в зависимости от числа используемых ядром регистров или разделяемой памяти. К сожалению, документация системного программного обеспечения графических ускорителей не позволяет оценить эти цифры точнее. Накладные расходы на выполнение описанных выше операций копирования варьируются слабо и составляют, по нашим оценкам, величины порядка 5 мкс (не считая собственно времени копирования, которое определяется пропускной способностью шины PCI-E). Сложности, связанные с этими накладными расходами состоят в том, что от них трудно или невозможно избавиться на практике, и они в итоге, в соответствии с законом Амдала, сказываются на масштабируемости распределенных вариантов разрабатываемых алгоритмов.

3.1.3 Распределенная реализация методов для графических ускорителей

Масштабируемая реализация распределенных вариантов алгоритмов разреженной линейной алгебры, таких как умножение матрицы на вектор, требует детальной проработки, как минимум, двух следующих вопросов: 1) как сделать, чтобы все коммуникации между узлами перекрывались по времени с вычислительными процедурами, так чтобы время на выполнение коммуникаций не вносило вклад в общее время выполнения алгоритма; 2) как уменьшить объём и количество коммуникаций между узлами. Для того, чтобы реализовать идею перекрытия коммуникаций и вычислений, в библиотеке SparseLinSol реализована дополнительная процедура предварительной сегментации матрицы на блоки по столбцам. Принципы сегментации сходны с описанными в [9]. Вычисления для каждого сегмента могут таким образом быть осуществлены по мере получения необходимой для этой операции части вектора от соседей, а сама операция получения может быть организована асинхронно. Для уменьшения объема коммуникаций устраняются те коммуникации, которые не передают востребованной соседом информации, а вектора и матрицы после сегментации «сжимаются», чтобы в передаваемом векторе присутствовали только востребованные элементы. Чтобы выполнить такие оптимизации необходимо вводить предварительную процедуру, составляющую коммуникационный план. Таким образом, распределённый алгоритм умножения матрицы на вектор разбит на две части: подготовительную, выполняющуюся единожды для данной матрицы, и вычислительную, выполняющую непосредственно вычисление произведения матрицы на вектор для уже подготовленной матрицы. Подготовительная часть не зависит от того, какой вектор будет участвовать в последующей операции и

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

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

4. Результаты

4.1 Первичные результаты расчетов в пакете ОрепРОАМ

Опыт расчетов задач гидродинамики судовых движителей в инженерных СТО-пакстах показывает, что при адекватном выборе расчетных сеток, моделей турбулентности и прочих параметров модели, может быть обеспечена приемлемая при проектировании точность по интегральным характеристикам в пределах 2% от эксперимента [10]. Одной из целей данной работы является оценка возможностей пакета ОрепРОАМ для решения подобных задач, а также точности получаемых результатов в сравнении с коммерческими инженерными пакетами, в частности 81аг-ССМ. В рамках настоящей работы предполагается проведение методических исследований и расчетов для набора из трех расчетных сеток размером 41, 60 и 99 млн. ячеек, и оценка сеточной сходимости результатов.

Смл у, действующ« |н первый оипт

Силы. ДГЙСТфКЧЦИС па шорой □

—si.ir-ca.i4

— ОрсгЯЗАМ

161 1£г ьзк

161 1£г

ЬЗК

Рис. 3. Графики зависимости осевой силы давления винта, Ех, от времени, Г.

На данном этапе работы, однако, пока были получены результаты расчетов только для одной из моделей размером 41 млн. ячеек. Сравнение интегральных характеристик (рис. 3), полученных в расчетах в пакетах ОрепРОАМ и 81аг-ССМ, демонстрирует расхождение порядка 7%, что

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

4.2 Оценка эффективности методов решения СЛАУ в пакете ОрепРОАМ

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

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

На вычислительной системе «Ломоносов» была проведена серия расчетов, которая включала сравнительные исследования для конфигураций методов САМО и РСС+САМС из пакета ОрепРОАМ, а также МР1-реализации методов ЕЖ'СВшЬ+САМС из разрабатываемой библиотеки 8раг5еЬт8о1. В расчетах использовались 128 и 256 ядер, или 16 и 32 узла соответственно. Численные эксперименты показали, что времена расчета одного шага интегрирования по времени для конфигураций методов САМО и РСС+САМС в целом демонстрируют сходный характер поведения, но существенным образом зависят от номера шага (рис. 5). На начальных участках графиков, когда происходит интенсивное перестроение потока, наблюдается резкий рост времени расчета с последующим плавным уменьшением по мере стабилизации течения, и этот рост вызван значительным увеличением количества итераций методов при решении СЛАУ для давления. Явно выраженное превышение среднего времени расчета шага наблюдается на протяжении первых 20-30 шагов, однако их расчет занимает дополнительно порядка 10 часов. Рассматриваемый внешний решатель из библиотеки 8раг5еЫп8о1 также на начальном участке затрачивает несколько большее время на решение соответствующих систем уравнений по сравнению с временами в конце тестового диапазона шагов, однако такая разница оказывается много меньшей, в пределах 70-80%.

При выходе на установившийся режим расчета разница во времени решения между двумя конфигурациями методов из пакета ОрепРОАМ оказывается сравнимой со статистической погрешностью. Шаг по времени на 128 и 256 ядрах рассчитывается за 650 и 470 секунд соответственно, а коэффициент ускорения при удвоении количества расчетных ядер не превышает 1.4. Использованная связка методов ЕЖ.'С51аЬ+САМС. несмотря на дополнительные накладные расходы на преобразование данных между форматами представления данных в пакете ОрепРОАМ и разрабатываемой библиотеке, оказывается более эффективной и с этой точки зрения, обеспечивая времена в 470 и 310 секунд при коэффициенте ускорения чуть более 1.5. Таким образом, использование внешнего решателя позволяет сократить на 10 и более часов время расчета на начальном интервале, и в полтора раза ускорить вычисления на установившемся режиме расчета.

Рис. 5. Графики зависимости времени расчета шага по времени от номера шага. Вычислительная система «Ломоносов»; слева: расчет на 16узлах, справа: расчет на

32 узлах.

4.3 Применение графических ускорителей для решения СЛАУ

Для оценки производительности и масштабируемости разработанных методов решения СЛАУ в библиотеке SparseLinSol проведена серия тестов изолированного этапа решения СЛАУ для матриц, полученных в ходе расчета соответствующих моделей размером 41, 60 и 99 млн. неизвестных в пакете OpenFOAM (этап построения иерархии матриц многосеточного метода в данном случае иключен из измерений). Серия расчетов выполнена на суперкомпьютере "Ломоносов" в трёх конфигурациях библиотеки: 1) с использованием центральных процессоров и MPI-коммуникаций (кривые "CPU: MPI-only" на рис. 6); 2) с использованием центральных процессоров и гибридной схемы коммуникаций MPI+Posix Shared Memory (кривые "CPU: MPI+SliM" на рис. 6); 3) с использованием центральных процессоров и двух графических ускорителей на каждом узле (кривые "GPU" на рис. 6). Варианты использования гибридной схемы демонстрируют значительное превосходство в масштабируемости вплоть до максимального числа узлов, использовавшихся в расчетах. Использование графических ускорителей дает заметный выигрыш на всех тестовых матрицах на диапазоне до 64 узлов, однако масштабируемость алгоритмов, использующих графические ускорители, несколько хуже в сравнении с гибридной схемой MPI+Posix SliM. Для матриц размером 41 и 60 млн. неизвестных преимущества от использования графических ускорителей нивелируются на 128 узлах. Однако, результаты для матрицы большего размера демонстрируют лучший потенциал использования графических ускорителей, и ускорение в диапазоне от 1.4 до 3 раз наблюдается во всем диапазоне использованных узлов. Для матрицы размером 41 млн. неизвестных выполнено сравнение производительности и масштабируемости с одной из свободно-распространяемых библиотек численных методов hypre (кривая "Нурге" на рис. 6). Конфигурация численных методов, которая использовалась в ходе этого сравнения, полностью аналогична: итерационнаый метод BiCGStab и CAMG предобуславливатель с PMIS-алгоритмом агрегирования и 166

сглаживателем на основе полиномов Чебышёва 2-го порядка. По результатам расчетов получено, что даже МР1-реализация методов из разрабатываемой библиотеки 8рагяеЫп8о1 обеспечивает 1.5-2 кратное ускорение в сравнении с МР1-реализацией методов из библиотеки Иургс. тогда как использование гибридной модели и графических ускорителей увеличивает коэффициент ускорения до 3-4.

Рис. б. Графики зависимости ускорения расчетов от количества используемых вычислительных узлов. Вычислительная система «Ломоносов»; результаты нормированы на времена расчета на 32 узлах в режиме «CPU:KIPI-only».

Логическим продолжением настоящей работы является проведение серии тестовых расчетов на вычислительных системах, оборудованных графическими ускорителями, для оценки дополнительного эффекта ускорения расчетов, который может быть получен за счет применения гибридных моделей программирования MPI+Posix Shared Memory и графических ускорителей. Отдельный интерес представляет исследование пределов эффективной масштабируемости пакета OpenFOAM в связке с библиотекой SparseLinSol для рассматриваемого класса задач, который, как ожидается, должен быть заметно выше, по сравнению со стандартными методами из пакета OpenFOAM.

5. Заключение

В настоящей работе представлены промежуточные результаты проводимой работы по исследованию возможностей пакета OpenFOAM для

моделирования гидродинамических характеристик пары разнонаправленно вращающихся гребных винтов судна. Проведены первичные расчеты задачи на сетке 41 млн. ячеек и сопоставление результатов с аналогичным расчетом в пакете Star-CCM. Хотя интегральные характеристики согласуются в пределах 7%, необходимо проведение дальнейших методических исследований, в том числе изучение вопросов сеточной сходимости результатов. Рассмотрены вопросы потенциального ускорения расчета рассматриваемого класса задач в пакете OpenFOAM. Показано, что использование разрабатываемой авторами библиотеки SparseLinSol и традиционной MPI-реализации численных методов позволяет добиваться 1.5-кратного ускорения расчета. Приведены результаты масштабируемости этапа solve-части многосеточных методов для гибридной реализации MPI+Posix Shared Memory и реализации, использующей графические ускорители. Продемонстрировано, что применение гибридных моделей и использование графических ускорителей может обеспечивать дополнительное 1.5-3 кратное ускорение по сравнению с MPI-реализацией методов в библиотеке SparseLinSol. Следующим этапом настоящей работы станет проведение серии тестовых расчетов на вычислительных системах, оборудованных графическими ускорителями, для оценки дополнительного эффекта ускорения расчетов в пакете OpenFOAM, который может быть получен за счет применения гибридных моделей программирования MPI+Posix Shared Memory и графических ускорителей.

Работа выполнена с использованием ресурсов суперкомпьютерного комплекса МГУ имени М.В. Ломоносова и частично поддержана грантом РФФИ 14-01-00295.

Список литературы

[1]. Б. Краснопольский, А. Медведев. О решении систем линейных алгебраических уравнений на многоядерных вычислительных системах с графическими ускорителями. Параллельные вычислительные технологии (ПаВТ'2013): труды международной научной конференции (1-5 апреля 2013 г., г.Челябинск). Челябинск: Издательский центр ЮУрГУ, 2013. 637 е., стр. 409^120.

[2]. Б. Краснопольский, А. Медведев. Алгоритмические особенности создания многосеточного решателя СЛАУ на вычислительных системах с графическими ускорителями. Вестник Нижегородского университета им. H.H. Лобачевского, серия «Информационные технологии», 2, 2014. стр. 210-217.

[3]. F. Menter. Two-equation Eddy-viscosity Turbulence Models for Engineering Applications. AIAA Journal, 32 (8), 1994. pp. 1598-1605.

[4]. H.A. Van der Vorst. BI-CGSTAB: a Fast and Smoothly Converging Variant of BI-CG for the Solution of Nonsymmetric Linear Systems. SIAM J. Sei. Statist. Comput., 13, 1992. pp. 631-644.

[5]. U. Trottenberg, C.W. Oosterlee, A. Schuller. Multigrid. Academic Press, 2000. 631 p.

[6]. Hypre: a Library of High Performance Preconditioners. https://computation.llnl.gov/casc/linear_solvers/sls_hypre.html. Дата обращения 18.12.2014.

[7]. N. Bell, M. Garland. Efficient Sparse Matrix-vector Multiplication on CUDA. NVIDIA Corporation, Tech. Rep. NVR-2008-004. 2008.

[8]. A. Monakov, A. Lokhmotov, A. Avetisyan. Automatically Tuning Sparse Matrix-vector Multiplication for GPU Architectures. High Performance Embedded Architectures and Compilers, ser. Lecture Notes in Computer Science, 5952, 2010. pp. 111-125.

[9]. J. Kraus, M. Frster, T. Brandes, T. Soddemann, Using LAMA for Efficient AMG on Hybrid Clusters. Computer Science - Research and Development, 28 (2-3), 2013. pp. 211-220.

[10]. M. Лобачев, Н.Овчинников, А. Пустотный. Численное моделирование работы гребного винта в неоднородном потоке. Труды ЦНИИ им. акад. А.Н. Крылова, 333(6), 2009. стр. 5-10.

[11]. М. Peric, V .Bertram. Trends in Industry Applications of CFD for Maritime Flows. 10-th International Conference on Computer and IT Applications in the Maritime Industries. Berlin, Germany, 2011. pp.8-18.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

http://www.gl-group.com/pdf/Trends_in_Indus1ry_Apphcations_of_CFD_for_Maritime _Flows.pdf

On application of GPUs for modelling of hydrodynamic characteristics of screw marine propellers in OpenFOAM package

1,2 B. Krasnopolsky <krasnopolsky@jmec.msu.ru> 2 A. Medvedev <alexey.v.medvedev@gmail.com> 1 A. Chulyunin <chulyu-n@mail.ru> 1 Institute of Mechanics, Lomonosov Moscow State University 1, Michurinsky ave., Moscow, 119192, Russia.

2 JSC T-Services 113/1, Leninsky ave., Moscow, 117198, Russia.

Abstract. OpenFOAM is a proven engineering tool for applied hydrodynamics numerical modeling which is typically characterized by complex geometries and large grids of 107-108 cells. Since such calculations are often very long and resource-intesive, any way of speeding them up is of high practical interest. Based on one practical problem of a screw propeller characteristics modeling, optimizations to OpenFOAM via the originally developed SLAE solution plugin is proposed. The plugin is based on SparseLinSol (SLS) library, developed by the authors. The library uses Krylov subspace iterative methods with the Classic AMG preconditioner to effectively solve large SLAEs on supercomputers and features original hybrid communications model which implements MPI and Posix Shared Memory combination. The library also is able to utilize NVIDIA GPU accelerators for a significant part of the implemented algorithms. Test results on 128-node computational system equipped with NVIDIA X2070 accelerators show that: (i) OpenFOAM numerical modeling results are close to those achieved with Star-CCM package and experimental results; (ii) developed SLAE solution methods are more robust than those implemented in original OpenFOAM GAMG-based SLAE solver; (iii) hybrid communication model improves solver scalability a lot and the solver scales linearly up to the maximum number of nodes used in current tests; (iv) GPU usage makes calculations 1.4-3 times faster; (v) SLS solver is faster than hypre solver on the same set of implemented methods and test matrices.

Keywords: multigrid methods, GPU, marine screw propellers, scalability, OpenFOAM package.

References

[1]. B. Krasnopol'skij, A. Medvedev. O reshenii sistem linejnykh algebraicheskikh uravnenij na mnogojadernykh vychislitel'nykh sistemakh s graficheskimi uskoriteljami [On solution of systems of linear algebraic eqautions on multicore systems with GPU accelerators], Parallel'nye vychislitel'nye tekhnologii (PaVT'2013): trudy mezhdunarodnoj nauchnoj konferencii (1-5 aprelja 2013, Cheljabinsk) [Parallel Computing technologies (PaCT'2013): proceedings of international scientific conference (April 1-5, 2013, Chelyabinsk)]. Cheljabinsk: Izdatel'skij centr UUrGU, 2013. 637 p., pp 409^120 (in Russian).

[2]. В. Krasnopol'skij, A. Medvedev. Algoritmicheskie osobennosti sozdanija mnogosetochnogo reshatelja SLAU na vychislitel'nykh sistemakh s graficheskimi uskoriteljami [Algorithmic aspects of development the multigrid slae solver for computer systems with GPU accelerators], Vestnik Nizhegorodskogo universiteta im. N.I. Lobachevskogo, serija «Informacionnye tekhnologii» [Vestnik of Lobachevsky State University of Nizhni Novgorod, "Information Technology" series], 2, 2014. pp. 210-217 (in Russian).

[3]. F. Menter. Two-equation Eddy-viscosity Turbulence Models for Engineering Applications. AIAA Journal, 32 (8), 1994. pp. 1598-1605.

[4]. H.A. Van der Vorst. BI-CGSTAB: a Fast and Smoothly Converging Variant of BI-CG for the Solution of Nonsymmetric Linear Systems. SIAM J. Sei. Statist. Comput., 13, 1992. pp. 631-644.

[5]. U. Trottenberg, C.W. Oosterlee, A. Schuller. Multigrid. Academic Press, 2000. 631 p.

[6]. Hypre: a Library of High Performance Preconditioners. https://computation.llnl.gov/cascAinear_solvers/sls_hypre.html. Дата обращения 18.12.2014.

[7]. N. Bell, M. Garland. Efficient Sparse Matrix-vector Multiplication on CUDA. NVIDIA Corporation, Tech. Rep. NVR-2008-004. 2008.

[8]. A. Monakov, A. Lokhmotov, A. Avetisyan. Automatically Tuning Sparse Matrix-vector Multiplication for GPU Architectures. High Performance Embedded Architectures and Compilers, ser. Lecture Notes in Computer Science, 5952, 2010. pp. 111-125.

[9]. J. Kraus, M. Frster, T. Brandes, Т. Soddemann, Using LAMA for Efficient AMG on Hybrid Clusters. Computer Science - Research and Development, 28 (2-3), 2013. pp. 211-220.

[10]. M. Lobachev, N. Ovchinnikov, A. Pustoshnyj. Chislennoe modelirovanie raboty grebnogo vinta v neodnorodnom potoke [Numerical modeling of marine propeller in a nonuniform flow], Trudy CNII im. akad. A.N. Krylova [Proceedings of Krylov Shipbuilding Research Institute Acad. A.N. Krylov], 333(6), 2009. pp. 5-10 (in Russian).

[11]. M. Peric, V .Bertram. Trends in Industry Applications of CFD for Maritime Flows. 10-th International Conference on Computer and IT Applications in the Maritime Industries. Berlin, Germany, 2011. pp. 8-18.

http://www.gl-group.com/pdf/Trends_in_Indus1ry_Applications_of_CFD_for_Maritime _Flows.pdf

i Надоели баннеры? Вы всегда можете отключить рекламу.