Тип работы:
Предмет:
Язык работы:


Оптимизация реализации метода моделирования «дыма Шрёдингера» за счет применения технологий вычислений на сопроцессорах GPGPU

Работа №129136

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы34
Год сдачи2020
Стоимость4320 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
50
Не подходит работа?

Узнай цену на написание


Введение 3
Постановка задачи 4
Обзор литературы 7
Глава 1. Описание метода моделирования 8
1.1. Теоретическая часть 8
1.2. Ход алгоритма 9
Глава 2. Обзор технологий и инструментов разработки .... 11
2.1. Выбор основного языка программирования 11
2.2. Оптимизация при помощи технологий GPGPU 11
2.3. Выбор библиотеки для работы с GPGPU 12
Глава 3. Разработка архитектуры 14
3.1. Внутреннее устройство 14
3.2. Внешние интерфейсы 15
3.3. Оптимизация работы с GPGPU 17
3.4. Визуализация 19
Глава 4. Ход работы 21
Глава 5. Описание результатов 23
5.1. Тестирование производительности 23
5.2. Профилирование кода 28
5.3. Визуализация 30
Выводы 31
Заключение 32
Список литературы


В современном мире люди все чаще и чаще прибегают к помощи компьютерной симуляции в совершенно различных задачах, так как она является более дешевой и удобной альтернативой реальным экспериментам. Однако для такого подхода необходима, во-первых, корректная математическая модель, описывающая воспроизводимое явление, и во-вторых, что не менее важно, качественная программная реализация этой модели.
Как одно из важне1ших направлений компьютерной симуляции можно рассматривать имитирование потока частиц [1]. В общем смысле это достаточно универсальный подход к моделированию различных процессов, например, поведение заряженных частиц в электромагнитных полях [2], внутреннее состояние жидкостей [3], или формирование ударной волны при взрыве [4], которые имеют в основе одну и ту же идею: большое количество очень маленьких объектов перемещаются под влиянием заданных внешних ограничений и условий.
Отдельно можно выделить моделирование потока несжимаемой жидкости [5]. Под этим термином понимается такая сплошная среда, плотность которой сохраняется при изменение давления. Несмотря на то, что это математическая абстракция, ее особые физические свойства часто используются при моделировании реальных течений жидкостей в различных условиях, при которых можно сделать соответствующие приближения. Это обеспечивает актуальность исследования темы во многих сферах, например: предсказание погоды (моделирование океана и атмосферы), применения в химии и тд. [6].
Одним из новейших методов симуляции этого процесса является несжимаемый поток Шрёдингера [7]. Особенность подхода заключается в описании поведения частиц с помощью волновых функций комплексных переменных. В данной работе рассматривается практическая реализация этого метода моделирования.
Постановка задачи
Авторы оригинальной статьи для демонстрации корректности и возможностей своего подхода подготовили демо-видео, содержащие различные симуляции. В качестве инструмента они выбрали пакет Houdini . Это программное обеспечение, используемое для 3Э-анимации и моделирования (рис. 1) .

Рис. 1: Пример визуализации метода в Houdini.

И хотя этот проект отлично служит для демонстрации теоретических результатов, у него есть ряд существенных недостатков:
• пакет предназначает для рендера 3П-сцен и не поддерживает симуляцию в реальном времени;
• из-за специфики работы с пакетом код не получится использовать для других целей.
Существует также решение, написанное на matlab1. Это пакет для решения задач технических вычислений, который также имеет возможности строить различные графики (рис. 2). И хотя такая реализация уже больше подходит на роль готового продукта, она все еще имеет схожие минусы:

Рис. 2: Пример визуализации метода в Matlab.

• недостаточно высокая производительность для симуляции в реаль¬ном времени;
• язык matlab нельзя использовать вне пакета;
• скудные возможности для визуализации.
Таким образом, оригинальные реализации не подходят для практического применения при решении каких-либо реальных задач и являются по сути только примером того, как можно использовать теоретический метод. Эта проблема является ключевой, и ее устранение является основой решаемой в данной работе задачи.
Для прикладного использования рассматриваемого метода моделирования необходимо создать достаточно универсальный программный продукт, который бы удовлетворял следующим требованиям:
• для написания используется один из самых часто встречающихся языков программирования;
• имеет достаточно высокую производительность для проведения симуляции в режиме реального времени;
• имеет возможность достаточно простой интеграции в какие-либо существующие системы.
Решение обозначенной проблемы и удовлетворение вышеперечисленных условий позволить применять метод несжимаемого потока Шрёдингера в более широком спектре задач.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


Созданное в ходе работы приложение отвечает поставленным в начале требованиям. Благодаря оптимизации при помощи технологий GPGPU оно обладает достаточно высокой производительностью, чтобы его можно было использовать для расчетов в реальном времени - увеличение производительности по сравнению с оригиналом примерно в 80 раз. Единственным ограничением доступности является необходимость в видеокарте Nvidia, в остальном приложение кросс-платформенное. Достаточно удобный интерфейс позволяет легко использовать его в других проектах, что было продемонстрировано на примере Unity.
В качестве направлений для дальнейшего развития стоит отметить:
1. улучшение общей архитектуры проекта для более простого внесения изменений и поддержки;
2. добавление отказоустойчивости;
3. создание полноценной библиотеки на основе проекта.
Исходный код проекта представлен в репозитории в GitHub [17].



[1] Hockney R. W., Eastwood J. W. Computer simulation using particles. New York: Taylor & Francis Group, 1988. 509 с.
[2] Ermak D. L. A computer simulation of charged particles in solution. I. Technique and equilibrium properties // The Journal of Chemical Physics. 2008. vol. 62, issue 10.
[3] Schofield P. Computer simulation studies of the liquid state // Computer Physics Communications. 1973. vol. 5, issue 1. P. 17-23.
[4] Liu M. B., Liu G. R., Zong Z., Lam K. Y. Computer simulation of high explosive explosion using smoothed particle hydrodynamics methodology // Computers & Fluids. 2003. vol. 32, issue 3. P. 305-322.
[5] Koshizuka S., Oka Y. Moving-Particle Semi-Implicit Method for Fragmentation of Incompressible Fluid // Nuclear Science and Engineering. 1996. vol. 123, issue 3. P. 421-434.
[6] Simon J. A. Introductory incompressible fluid mechanics // lecture notes. 2015.
[7] Chern A., Knoppel F., Pinkall U., Schroder P., Weifimann S. Schrodinger’s smoke // ACM Transactions on Graphics. 2016. vol.35, No. 4, Article 77.
[8] Rockafellar R. T. Lagrange Multipliers and Optimality // SIAM Review. 1993. vol. 35, issue 2. P. 183-238.
[9] Zhu H. P., Zhou Z. Y., Yang R. Y., Yu A. B. Discrete particle simulation of particulate systems: A review of major applications and findings // Chemical Engineering Science. 2008. vol. 63, issue 23. P. 5728-5770.
[10] Almgren A. S., Bell J. B., Colella P., Marthaler T. A Cartesian Grid Projection Method for the Incompressible Euler Equations in Complex Geometries // SIAM Journal on Scientific Computing. 1997. vol. 18, issue 5. P. 1289 - 1309.
[11] Bayindir C. Compressive Split-Step Fourier Method // TWMS Journal of Applied and Engi-neering Mathematics. 2015. vol. 5, No. 2, P298-306.
[12] Ryoo S., Rodrigues C. I., Baghsorkhi S. S., Stone S. S., Kirk D. B., Hwu W. W. Optimization Principles and Application Performance Evaluation of a Multithreaded GPU Using CUDA // PPoPP ’08: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming. New York: Association for Computing Machinery, 2008. P. 73-82.
[13] Du P., Weber R., Luszczek P., Tomov S., Peterson G., Dongarra J. From CUDA to OpenCL: Towards a performance-portable solution for multi¬platform GPU programming // Parallel Computing. 2012. vol. 38, issue 8. P. 391-407.
[14] Nobile M., Cazzaniga P., Besozzi D., Pescini D., Mauri G. cuTauLeaping: A GPU-Powered Tau-Leaping Stochastic Simulator for Massive Parallel Analyses of Biological Systems // PloS one. 2014. vol. 9. e91963.
[15] Nickolls J., Buck I., Garland M., Skadron K. Scalable Parallel Programming with CUDA // ACM Queue. 2008. vol. 6, No. 2. P. 40-53
[16] Kruchten, Philippe What is the rational unified process? // The Rational Edge. 1999.
[17] Репозиторий проекта на платформе GitHub [Электронный ресурс]: URL:https://github.com/IceWind2/ShrodingerFlow(gamaобраще¬ния: 02.06.2020).


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ