Тема: Оптимизация реализации метода моделирования «дыма Шрёдингера» за счет применения технологий вычислений на сопроцессорах GPGPU
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи 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 нельзя использовать вне пакета;
• скудные возможности для визуализации.
Таким образом, оригинальные реализации не подходят для практического применения при решении каких-либо реальных задач и являются по сути только примером того, как можно использовать теоретический метод. Эта проблема является ключевой, и ее устранение является основой решаемой в данной работе задачи.
Для прикладного использования рассматриваемого метода моделирования необходимо создать достаточно универсальный программный продукт, который бы удовлетворял следующим требованиям:
• для написания используется один из самых часто встречающихся языков программирования;
• имеет достаточно высокую производительность для проведения симуляции в режиме реального времени;
• имеет возможность достаточно простой интеграции в какие-либо существующие системы.
Решение обозначенной проблемы и удовлетворение вышеперечисленных условий позволить применять метод несжимаемого потока Шрёдингера в более широком спектре задач.
✅ Заключение
В качестве направлений для дальнейшего развития стоит отметить:
1. улучшение общей архитектуры проекта для более простого внесения изменений и поддержки;
2. добавление отказоустойчивости;
3. создание полноценной библиотеки на основе проекта.
Исходный код проекта представлен в репозитории в GitHub [17].



