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

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



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

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

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

План zПостановка задачи zЧисленный метод zОбзор архитектуры GPU и модели CUDA zОсобенности реализации zРезультаты и выводы zПолезные ссылки

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

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

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

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

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

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

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

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

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

Численный метод zМетод по-координатного расщепления zНеявная схема 2-го порядка zНелинейные итерации yПолусумма значений на двух предыдущих итерациях

Численный метод Расщепление по X Расщепление по Y Расщепление по Z Обновление нелинейных параметров Решение uРешение vРешение w Расчет диссипации Решение T Обновление нелинейных параметров глобальные итерации локальные итерации

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

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

Архитектура GPU zМассивный паралеллизм потоков zШирокая пропускная способность памяти zПоддержка двойной точности

Реализация на CUDA zВсе данные хранятся в памяти GPU y4 скалярных 3D массива для каждой переменной (u, v, w, T) y3 дополнительных 3D массива z~300MB для сетки 128^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

Реализация на CPU zИспользование OpenMP инструкций zПерестановка циклов для оптимизации работы с кэшем

Результаты Векторное поле скоростей

Результаты Re=250 Re=500

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

Производительность float

Производительность double

Производительность на W

Производительность на $

Ближайшие планы zЭффективная реализация на нескольких GPU yРасчет на больших сетках с большими числами Рейнольдса zОптимизация отдельных ядер yМетод редукции для трехдиагональных систем

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

Вопросы