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


Моделирование качки судна в реальном времени с использованием вычислений общего назначения на графическом процессоре

Работа №129250

Тип работы

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

Предмет

информатика

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

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


Введение 3
1 Используемое программное обеспечение 10
1.1 OpenCL 10
1.2 OpenMP 12
2 Виртуальный полигон 13
2.1 Генератор волнистой поверхности 14
2.2 Потенциал скоростей 15
2.3 Сила давления воды 16
2.4 Вычисление производной функции 17
3 Итог проведенной работы 22
3.1 Рабочее окружение 22
3.2 Сравнение полученных результатов 23
4 Вывод 27
5 Заключение 28
Список литературы 29


До недавнего времени центральный процессор являлся единственным вычислительным элементом компьютера. Растущие потребности научного сообщества и индустрии вынудили производителей видеокарт предоставить сторонним разработчикам ПО возможность программировать шейдерные блоки под свои нужды. Эта возможность позволила увеличить производительность ПК, подключив к расчетам графическое устройство.
Эта работа проводилась в рамках проекта «Виртуальный полигон», целью которого является создание системы поддержки принятия решений для моделирования, прогнозирования и предотвращения опасных ситуаций, вызванных различными физическими явлениями. Ситуации могут включать в себя: затопление отсека, пожар в отсеке, потеря остойчивости корабля, большие морские волны и многие другие явления. Данная работа выделяется на фоне предшественников возможностью моделирования явлений и морских объектов в режиме реального времени, и в то же время обеспечивая высокую точность моделирования.
Система принятия решений получает данные в режиме реального времени с морских судов и моделирует их движение. Технология, которая обеспечивает производительность в режиме реального времени, - это GPGPU. Большинство вычислений в проекте включают в себя большое количество трансцендентных математических функций, линейный доступ к массивам и матрицам и отсутствие сложных зависимостей между этапами вычислений. Это позволяет эффективно использовать фреймворк OpenCL для действительно быстрых вычислений.
В нашем случае недостаточно просто переписать исходный код проекта для OpenCL. Чтобы повысить эффективность вычислений на GPU, нам потребовалось адаптировать алгоритмы и математические формулы к виду, оптимальному для графического процессора. Прежде всего был применен новый метод вычисления потенциала скорости, численно эквивалентный известным формулам из теории линейных волн, и использующий быстрое преобразование Фурье, для которого существует множество высокопроизводительных программных реализаций на GPU. Следующим этапом стало вычисление частной производной функции в многомерном пространстве, что позволило избавиться от многочисленных переносов данных из памяти процессора в память GPU. И наконец, последним шагом был реализован расчет основных математических функций на GPU.
Моделирование движения судна в океанских волнах выполняется различными компьютерными программами, которые отличаются тем, какие физические явления они моделируют (маневрирование в волнах, затопление отсека, регулярные и нерегулярные волны, ветер, моделирование в реальном времени и т. д.) и области применения (научные исследования, образование или развлечения). Эти программы являются виртуальными аналогами опытовых бассейнов, которые используются для моделирования характеристик и поведения корабля в определенных морских условиях. Преимущество использования виртуального опытового бассейна перед физическим состоит в том, что эксперименты проводятся в реальном пространственном и временном масштабе (с кораблями и океанскими волнами реальных размеров) и на персональном компьютере без необходимости доступа к высокотехнологичному оборудованию.
Хотя все численные эксперименты проводятся на ПК, один компьютер недостаточно силен для их быстрого выполнения. Часто эта проблема решается с помощью кластера компьютерных узлов или суперкомпьютера; однако суперкомпьютер или кластер — это еще одно высокотехнологичное средство, к которому должен получить доступ исследователь. В этом случае виртуальный опытовый бассейн имеет мало преимуществ перед физическим: исследования замедляются из-за бюрократической волокиты и вынужденного разделения вычислительных ресурсов между остальными участниками сообщества.
Одним из способов устранения этого барьера является использование графического ускорителя для увеличения производительности. В этом случае моделирование может быть выполнено на обычной рабочей станции, которая имеет дискретную видеокарту. Большинство исследователей используют графический процессор для визуализации в реальном времени, но он редко используется для ускорения частей моделирования, не говоря уже о всей программе. В [1] авторы используют графический процессор для ускорения расчета движения свободной поверхности внутри резервуара. В [2] авторы переписывают свой код с использованием быстрых преобразований Фурье и предлагают использовать GPU для увеличения производительности. В [3] авторы используют GPU для моделирования океанских волн. Тем не менее, наиболее эффективный способ использования графического процессора — использовать его как для вычислений, так и для визуализации: он позволяет минимизировать копирование данных между памятью процессора и графического процессора и использовать математические модели, структуры данных и численные методы, адаптированные для графических ускорителей.
Как уже было отмечено выше, Виртуальный полигон — один из первых проектов, в котором делается упор как на точность вычислений, не пренебрегая известными физическими законами, так и на высокую производительность.


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

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

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


В работе был рассмотрен Виртуальный полигон, целью которого является создание системы поддержки принятия решений для моделирования, прогнозирования и предотвращения опасных ситуаций на судне в море. Его основной особенностью является возможность моделирования положения корабля в режиме реального времени. Это достигается за счет подключения к вычислениям видеокарты и использования технологии GPGPU. Описана структура этого приложения, его отличительные черты и различные модули. В ходе работы подверглись анализу различные модули программы на предмет возможности применений технологий GPGPU для увеличения производительности. После этого, было произведено сравнение двух версий этого приложения: выполняемой на центральном процессоре, и на графическом ускорителе.


[1] Coupled simulation of nonlinear ship motions and a free surface tank / Jose Luis Cercos-Pita, Gabriele Bulian, Luis Perez-Rojas, Alberto Frances- cutto // Ocean Engineering. — 2016. — Vol. 120. — P. 281-288.
[2] Varela Jose Miguel, Soares Carlos Guedes. Interactive Simulation of Ship Motions in Random Seas based on Real Wave Spectra. // GRAPP. — 2011. —P. 235-244.
[3] Keeler Todd, Bridson Robert. Ocean waves animation using boundary integral equations and explicit mesh tracking // Proceedings of the ACM SIG- GRAPH/Eurographics Symposium on Computer Animation / Eurographics Association. — 2014. — P. 11-19.
[4] Mathews John H., Fink Kurtis D. Numerical methods using MATLAB. — 4th edition. — London : Pearson Prentice Hall, 2004.
[5] Mathews John H., Fink Kurtis D. Runge—Kutta-Fehlberg method (RKF45). — 2004. — Access mode: http://maths.cnam.fr/IMG/pdf/ RungeKuttaFehlbergProof.pdf.
[6] Matusiak Jerzy et al. Dynamics of a rigid ship. — Aalto University, 2013.
[7] Real-time simulation of ship motions in waves / Xiao Chen, Guang- ming Wang, Ying Zhu, G Scott Owen // International Symposium on Visual Computing / Springer. — 2012. — P. 71-80.
[8] Ma Xiaohu, Chen Zhiwei, Shi Gang. Real-time ocean wave motion simulation based on statistic model and GPU programming // The 2nd International Conference on Information Science and Engineering / IEEE. — 2010. —P. 3876-3880.
[9] Price James, McIntosh-Smith Simon. Oclgrind: An Extensible OpenCL Device Simulator // Proceedings of the 3rd International Workshop on OpenCL. - IWOCL ’15. - New York, NY, USA : ACM, 2015. - P. 12:1-12:7. — Access mode: http://doi.acm.org/10.1145/2791321. 2791333.
[10] Valiant Leslie G. A bridging model for parallel computation // Communications of the ACM. — 1990. — Vol. 33, no. 8. — P. 103-111.
[11] Gankevich Ivan, Degtyarev Alexander. Simulation of standing and propagating sea waves with three-dimensional ARMA model // The Ocean in Motion. — Springer, 2018. — P. 249-278.
[12] Micikevicius Paulius. 3D finite difference computation on GPUs using CUDA // Proceedings of 2nd workshop on general purpose processing on graphics processing units / ACM. — 2009. — P. 79-84.



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




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