Параллельный программный комплекс для решения задач газовой динамики в областях со сложной геометрией на современных гибридных вычислительных системах П.В. Павлухин, аспирант, мехмат МГУ; инженер, ФГУП НИИ Квант И.С. Меньшов, д.ф.-м.н., проф., мехмат МГУ; в.н.с., ИПМ РАН им. М.В. Келдыша семинар «Суперкомпьютерные технологии в науке, образовании и промышленности» 18 марта 2014 г.
Проблемы решения задач на суперкомпьютерах Суперкомпьютеры сегодня и завтра – с массовыми мультитредовыми архитектурами; Алгоритмы под них должны обладать достаточной простотой; Трехмерные задачи во многих случаях со сложной геометрией и, следовательно, с сетками большого размера; Для явных схем (простых для распараллеливания) это влечет уменьшение шага по времени; Размер задач растет, шаг по времени уменьшается, в результате – стремительный рост вычислительной сложности
Предлагаемые подходы Рассмотрим с алгоритмической точки зрения простые методы, но без жесткого ограничения шага по времени; Вместо структурированных и многоблочных сеток для GPU предпочтительнее использовать декартовы сетки; Численный метод должен позволять решать задачи со сложной геометрией, представляемой на декартовой несвязной сетке;
Цель работы - Декартовы сетки для геометрий любой сложности; Неявная схема интегрирования по времени; Целевая архитектура – GPU (и многоядерные процессоры) Разработка масштабируемого алгоритма и высокоэффективного программного комплекса на его основе для решения задач газовой динамики на простых сетках без жесткого ограничения на выбор шага по времени со следующими свойствами:
Математическая модель Стандартная постановка (Эйлерова жидкость) Альтернативная постановка с специальной правой частью – компенсационным потоком Pw – мгновенная реакция со стороны жесткой стенки
Метод свободной границы (FBM) – объемлющее сеточное разбиение D - твердое включение с Г = D В ячейках типа III выполняется линейное приближение Г По всем ячейкам из выполняется сквозной единообразный расчет с последующей коррекцией значений в ячейках типа III. I II III
Численный метод: Явная схема, устойчива с Гибридная явно-неявная схема дискретизация по пространству методом конечного объема; метод С. К. Годунова вычисления потоков на гранях ячеек; второй порядок точности по времени и пространству; Метод расщепления по физическим процессам Схема абсолютно устойчива при
Численный метод: Линеаризация: - Итерационная невязка Метод LU-SGS: Факторизация: Forward: Backward: - СЛАУ для определения итерационного инкремента
Порядок обхода ячеек расчетной области, неявная схема: if (I > J) {//сосед обсчитан... cell[I] = f1(cell[J]);... } if (I < J) {//сосед не обсчитан... cell[I] = f2(cell[J]); cell[J]+=... } I -ячейка обсчитана -ячейка не обсчитана
Порядок обхода ячеек расчетной области, неявная схема: if (I > J) {//сосед обсчитан... cell[I] = f1(cell[J]);... } if (I < J) {//сосед не обсчитан... cell[I] = f2(cell[J]); cell[J]+=... } I J -ячейка обсчитана -ячейка не обсчитана
Порядок обхода ячеек расчетной области, неявная схема: if (I > J) {//сосед обсчитан... cell[I] = f1(cell[J]);... } if (I < J) {//сосед не обсчитан... cell[I] = f2(cell[J]); cell[J]+=... } I J -ячейка обсчитана -ячейка не обсчитана
LU-SGS - распараллеливание Разделение работы на несколько GPU; Работа внутри одного многопоточного GPU; Особенности метода позволяют ввести 2-уровневую параллельность: Цель: создать эффективный параллельный алгоритм для неявного метода LU-SGS, в точности реализующий работу последовательного Для этого необходимо выбрать специальный порядок обхода ячеек.
Глобальный порядок обхода ячеек расчетной области 1. Декомпозиция расчетной области – «black» и «white» блоки: 2. Обход блоков (forward): blackwhite blackwhite - ячейки обсчитываются - ячейки обсчитаны - ячейки еще не обсчитаны
Реализация расчетного цикла(multi-GPU) Стадия 1 black white GPU 1GPU 2 - ячейки обсчитываются - ячейки обсчитаны - ячейки еще не обсчитаны Двойной периметр и внутренние ячейки разделяются на 2 множества в «шахматном» порядке. ghost cells
Реализация расчетного цикла(multi-GPU) Стадия 2 black white - ячейки обсчитываются - ячейки обсчитаны - ячейки еще не обсчитаны GPU 1GPU 2 ? flag == 1 I II ghost cells
Реализация расчетного цикла(multi-GPU) Стадия 3 black white - ячейки обсчитываются - ячейки обсчитаны - ячейки еще не обсчитаны GPU 1GPU 2 ? flag == 1 I II
Программная реализация: for (itr=0;itr>; Gpu_slope >>; Gpu_predicval >>; Gpu_forward >>; Gpu_backward >>; Gpu_update >>; } CPU GPU RAM VRAM NODE M MPI CPU GPU RAM VRAM NODE N Cuda 4.2/5.0/5.5; Совмещенный счет и копирование в Cuda (streams) и MPI;
Результаты расчетов 1D, Распределение плотности, t=0.2, 100 ячеек Modified Sods problem x density resudial iteration GPU CPU Значение невязки от числа итераций
Результаты расчетов Обтекание клина, М=2.12, θ=30°. Н.у. – ударная волна: до фронта p=1,ρ=1,v=0, после фронта – с условием Ренкина – Гюгонио 3D, Распределение давления, t=0.32 c, несвязная декартова сетка 600 х 400x6, метод свободной границы 2D, Распределение давления, t=0.32 c, связная декартова сетка 300 х 200
Результаты расчетов 2D, Обтекание цилиндра, M=3, Re=510^4, 1024x1024, t=0.4 Numerical Schlieren Free Boundary Method (32 GPU) Penalisation Method* *O. Boirona, G. Chiavassa, R. Donat. A high-resolution penalization method for large Mach number ows in the presence of obstacles // Computers & Fluids, N 38, pp , 2009.
Результаты расчетов 2D, Обтекание цилиндра, M=2, Re=510^4, 1024x1024 Isodensity lines Free Boundary Method (32 GPU) Penalisation Method Fluent (unstructured)
Результаты расчетов 2D, Обтекание группы цилиндров, M=3, Re=510^4, 1024x1024, t=0.5 Numerical Schlieren Free Boundary Method (32 GPU) Penalisation Method
DLR F6, компоновка: Результаты расчетов Фюзеляж Крыло Пилон Гондола Ручное построение геометрии – до 1.5 месяцев
Результаты расчетов DLR F6, расчетная сетка - 332x270x914 (80 млн ячеек) Автоматическое построение - пересекаемая ячейка - внутренняя ячейка
Результаты расчетов Коэффициент подъемной силы, эксп CL=0.6 3D, Обтекание DLR F6, M=0.75,α=0.03, 80 млн ячеек, t=30000 Pressure & streamlines Density 117 GPU, 30 часов
Масштабируемость, 2D Суперкомпьютер К100, ИПМ им М.В. Келдыша Эффективность – 80% на 64 GPU
Масштабируемость, 3D 150 млн ячеек, 1 шаг по времени (взаимодействие ударной волны и погран слоя) Суперкомпьютер «Ломоносов», МГУ им М.В. Ломоносова Эффективность – 75% на 768 GPU
CUDA + MPI STALL MPI Send/Recv - RENDEZVOUS MPI MPI Send/Recv - EAGER NO STALL MPI Rendezvouz -> Eager: +30% performance! serailizing STALL MPI cudaDeviceLmemResizeToMax OFF concurent NO STALL cudaDeviceLmemResizeToMax ON (CUDA 5.0, Intel MPI 4.1.3)
Выводы Построен параллельный алгоритм для метода LU-SGS, доказана его корректность и эквивалентность последовательной версии; Реализован эффективный программный комплекс на основе параллельной версии LU-SGS c использованием метода свободной границы и декартовых сеток для расчета задач газовой динамики на multi-GPU системах; Предварительные результаты показали корректность работы программного комплекса и его хорошую масштабируемость на системах петафлопного уровня; Проведено численное моделирование ряда задач аэродинамики;
Планы Учет вязких диссипативных эффектов; Решение сопряженных задач газовой динамики и механики твердого тела; Оптимизация решателя под современные и будущие архитектуры GPU; Оптимизация удаленной обработки данных (remote client - cluster), real-time визуализация расчетов;
Спасибо за внимание!