Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)

Презентация:



Advertisements
Похожие презентации
Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)
Advertisements

Факультет прикладной математики и физики Кафедра вычислительной математики и программирования МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский.
Методы интерактивной визуализации динамики жидких и газообразных сред Елена Костикова, 521 гр.
М ОДЕЛИРОВАНИЕ ГАЗОВОГО ПОТОКА ЗА СОПЛОМ Кондаков В.Г. Якутск, ноября 2011 г.
Расчет турбулентных течений Проблемы расчета нестационарных переходных и турбулентных течений вязких жидкостей и газов многие годы находятся в центе внимания.
Сахарных Николай (Nvidia) Решение трехдиагональных систем для методов по- координатного расщепления и задач гидродинамики.
0 Закон Ома – электро- проводность Закон Фика - диффузия Закон Фурье – тепло- проводность Закон Ньютона - вязкость.
Математическое моделирование конвективного тепло-массообмена в жидком цилиндрическом столбике со свободной боковой поверхностью Научный руководитель: к.ф-м.н.
Метод прямых в одной задачиреакция-диффузия Студентка: Фролова Ксения Владимировна Группа 1205 Руководитель: Горелов Георгий Николаевич МИНИСТЕРСТВО НАУКИ.
CUDA Assignment #4 Решение краевых задач, системы линейных алгебраических уравнений.
V Всероссийская конференция молодых ученых А. А. Давыдов ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ УСКОРЕНИЯ РАСЧЕТА ЗАДАЧ АЭРО-ГАЗОДИНАМИКИ С ПОМОЩЬЮ ВЕКТОРНЫХ СОПРОЦЕССОРОВ.
Выполнил студент : Санкт - Петербург 2012 Министерство образования Российской Федерации Санкт - Петербургский государственный архитектурно - строительный.
{ основные типы уравнений второго порядка в математической физике - уравнение теплопроводности - уравнения в частных производные - уравнения переноса количества.
С.Д.АСФЕНДИЯРОВ АТЫНДАҒЫ ҚАЗАҚ ҰЛТТЫҚ МЕДИЦИНА УНИВЕРСИТЕТІ КАЗАХСКИЙ НАЦИОНАЛЬНЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ ИМЕНИ С.Д.АСФЕНДИЯРОВА Выполнила:Пердали Айдана.
Движение тела под действием силы Стокса в вязкой среде Анимационная интерактивная модель.
Основные уравнения движения жидкостей Уравнение неразрывности потока. Дифференциальные уравнения движения идеальной и реальной жидкости (уравнение Навье.
Об одном методе построения разностных схем для уравнений МГД в условиях сильного фонового магнитного поля и гравитационной правой части Кафедра вычислительной.
Московский государственный университет им. М. В. Ломоносова Факультет вычислительной математики и кибернетики Кафедра вычислительных методов Дипломная.
Тема 9 гидродинамика. 2 способа описания движения движение частиц или малых объемов жидкости (метод Лагранжа) свойства жидкости в каждой точке пространства.
Лекция Дифференциальное уравнение теплопроводности 1.5. Условия однозначности 1.6. Методы решения уравнения теплопроводности.
Транксрипт:

Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)

План zВведение и постановка задачи zОсновные уравнения zЧисленный метод расщепления zОсобенности реализации zРезультаты и выводы

Введение zВычислительные задачи аэро- гидродинамики yМоделирование турбулентных течений zВМиК МГУ, кафедра мат. физики yПасконов В.М., Березин С.Б.

Турбулентность Моделирование турбулентности Прямое численное моделирование (DNS) Моделирование крупномасштабных вихрей (LES) Осредненные уравнения Навье-Стокса (RANS) все масштабы турбулентности очень затратный

Постановка задачи zТечение вязкой несжимаемой жидкости в 3D канале yКанал заполнен и находится в однородной среде yПроизвольные начальные и граничные условия yНеизвестные величины – скорость и температура

Основные уравнения zПолная система уравнений Навье- Стокса в безразмерных величинах yУравнение неразрывности yУравнения движения (Навье-Стокса) yУравнение энергии

Обозначения Плотность Скорость Температура Давление zУравнение состояния – газовая постоянная

Уравнение неразрывности zИспользуется при выводе остальных уравнений (движения и энергии) zПроверка точности текущего решения

Уравнения Навье-Стокса zВторой закон Ньютона: Вязкая жидкость: f – массовые силы (сила тяжести) – тензор вязких напряжений p – давление Невязкая жидкость:

Безразмерные уравнения zПараметры подобия yЧисло Рейнольдса yЧисло Прандтля zУравнение состояния для идеального газа/жидкости: – характерная скорость, размер – динамическая вязкость среды – коэффициент теплопроводности – удельная теплоемкость

Уравнения движения zБезразмерная форма: yНе рассматриваем массовые силы yУравнение состояния

Уравнение энергии zПервый закон термодинамики для объема V: zДиссипативная функция:

Финальные уравнения z4 нелинейных уравнения z4 неизвестные величины: yКомпоненты скорости: u, v, w yТемпература: T

Численный метод zРасщепление по координатам XYZ

Уравнение диффузии z3 дробных шага – X, Y, Z zНеявная конечно-разностная схема

Уравнения Навье-Стокса zУравнение для X-компоненты скорости y+ итерации по нелинейности X Y Z

Шаг по времени (n-1) time step Splitting by X Splitting by Y Splitting by Z Updating non-linear parameters Global iterations (n) time step (n+1) time step

Дробный шаг zЛинейное PDEs N time layer u: x-velocityv: y-velocityw: z-velocityT: temperature N + 1 time layer Sweep Solves many tridiagonal systems independently Next layer Previous layer

Дробный шаг zНелинейное PDEs N time layer u: x-velocityv: y-velocityw: z-velocityT: temperature N + ½ time layer N + 1 time layer Update Copy Sweep Solves many tridiagonal systems independently Local iterations Next layer Previous layer

Стадии алгоритма zРешение большого количества трехдиагональных СЛАУ zВычисление диссипации в каждой ячейке сетки zОбновление нелинейных параметров

Особенности метода zБольшой объем обрабатываемых данных zВысокая арифметическая интенсивность zЛегко параллелится

Реализация на CUDA zВсе данные хранятся в памяти GPU y4 скалярных 3D массива для каждой переменной (u, v, w, T) y3 дополнительных 3D массива z~1GB для сетки 192^3 в double

Решение трехдиагональных СЛАУ zКаждая нить решает ровно одну трехдиагональную СЛАУ yНа каждом шаге N^2 независимых систем Расщепление XРасщепление YРасщепление Z

Метод прогонки zНеобходимо 2 дополнительных массива yхранение: локальная память zПрямой ход yвычисление a[i], b[i] zОбратный ход yx[i] = a[i+1] * x[i+1] + b[i+1]

Проблемы реализации zКаждая нить последовательно читает и пишет столбец 3D массива yКоэффициенты и правая часть zY, Z – прогонки coalesced zX – прогонка uncoalesced!

Оптимизация прогонки zX – прогонка yТранспонируем входные массивы и запускаем Y-прогонку общая производительность всех прогонок

Расчет диссипации zРасчет частных производных по трем направлениям yЛокальный доступ к памяти zКаждая нить обрабатывает столбец данных yПереиспользование расчитанных производных zИспользование разделяемой памяти (?)

Оптимизация диссипации zРефакторинг кода yПредварительный расчет некоторых констант, избавление от лишних if z C++ шаблоны для X, Y, Z-диссипации yУменьшение числа регистров, нет лишних обращений к памяти

Нелинейные итерации zНеобходимо посчитать полусумму двух 3D массивов zКаждая нить считает сразу для столбца данных – N^2 нитей yВсе чтения/записи coalesced zОптимальный выбор размера блока z80% от пиковой пропускной способности на Tesla C1060

Пример кода // boundary conditions switch (dir) { case X: case X_as_Y: bc_x0(…); break; case Y: bc_y0(…); break; case Z: bc_z0(…); break; } a[1] = - c1 / c2; u_next[base_idx] = f_i / c2; // forward trace of sweep int idx = base_idx; int idx_prev; for (int k = 1; k < n; k++) { idx_prev = idx; idx += p.stride; double c = v_temp[idx]; c1 = p.m_c13 * c - p.h; c2 = p.m_c2; c3 = - p.m_c13 * c - p.h; double q = (c3 * a[k] + c2); double t = 1 / q; a[k+1] = - c1 * t; u_next[idx] = (f[idx] - c3 * u_next[idx_prev]) * t; }

Тест производительности zТестовые данные yСетка 128^3, 192^3 y8 нелинейных итераций zСравнение CPU и GPU yАбсолютное время работы

Тест – float time steps/sec 20x 7x 9x

Тест – double time steps/sec 10x 4x 5x

Тест – float time steps/sec 28x 8x 11x

Тест – double time steps/sec 13x 4x 5x

Визуализация Векторное поле скоростей uv w T Срез вдоль Х

Выводы zВысокая эффективность Tesla в задачах аэро-гидродинамики zПрограммная модель CUDA – удобное средство утилизации ресурсов GPU zПрименение GPU открывает новые возможности для исследования

Вопросы