Использование технологии Vulkan для 3D-визуализаций больших вычислительных данных изменяющихся со временем
DOI:
https://doi.org/10.26577/JMMCS-2019-2-25Ключевые слова:
Vulkan, 2D, 3D, визуализация, двойная буферизация, сеточная модель, многопоточностьАннотация
В данной работе было разработано высокопроизводительное приложение для визуализации сеточных моделей больших размеров (около млн. ячеек), с использованием технологий Vulkan. Vulkan – это новый программный интерфейс (API) управляющий графическим процессором (GPU). Vulkan является низкоуровневым API, благодоря чему было использовано вся возможность графического процессора такие как: управление памятью и синхронизацией, проверки на ошибки, создание команд выполняемых графическим процессором и т.д. Таким образом, показывает высокую производительность при меньшей нагрузке на центральный процессор. Для работы приложения без прерывания было использовано двойная буферизация буфера вершин и многопоточность процессора. Для визуализаций 2D и 3D модели были взяты результаты уравнения Пуассона, а именно данные каждой итерации. Используя вышеуказанные методы, приведены примеры сеточной модели уравнения Пуассона. В результате данной работы был разработан и представлен прототип визуализатора, которую можно использовать для любых результатов численного математического моделирования на структуированных и неструктурированных 3D сетках.
Библиографические ссылки
[2] Sellers G., Wright R.S. Jr., Haemel N. , OpenGL SuperBible: Comprehensive Tutorial and Reference (7th Edition). (Addison-Wesley, 2015) 848.
[3] Dave Shreiner et al. , OpenGL programming guide : the offcial guide to learning OpenGL, version 4.3. (Addison-Wesley, 2013), 101-112.
[4] Adler, Daniel G, Oleg Nenadic and Walter Zucchini. , "RGL : A R-library for 3D visualization with OpenGL." (2003).
[5] Mullen T. et al. , "Real-time modeling and 3D visualization of source dynamics and connectivity using wearable EEG", 2013 35th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC), Osaka, 2184-2187, 2013.
[6] Badretdinov M.R., Badretdinov T.R., Borshyuk M.S., "Primeneniye biblioteki opengl dlya vizualizatsii rezul'tatov chislennogo matematicheskogo modelirovaniya na setkakh bol'shoy razmernosti [Application the opengl library to visualize the results of numerical mathematical modeling on high-dimensional grids]" , Herald UGATU, no 4 (2015): 84-94.
[7] Abraham F., Celes W. , "Distributed Visualization of Complex Black Oil Reservoir ModelsEurographics Symposium on Parallel Graphics and Visualization (2009), EGPGV (2009), Munich, Germany, 87-94.
[8] "Vulkan." Khronos Group, accessed November 13, 2017, https://www.khronos.org/vulkan/.
[9] "Vulkan." Nvidia developer, accessed December 9, 2017, https://developer.nvidia.com/Vulkan/.
[10] Sellers G. , Vulkan. Developer's Guide. Offcial guide, trans. A. B. Boreskova (DMK Press, 2017), 394.
[11] Pawel Lapinski , Vulkan Coockbook. Work through recipes to unlock the full potential of the next generation graphics API - Vulkan (Birmingham: Packt Publishing Ltd., 2017), 151-169.
[12] "SPIR Overview." Khronos Group, accessed March 3, 2018, https://www.khronos.org/spir/.
[13] "C++ Abstraction library for Vulkan API." L. O. Tolo., accessed March 3, 2018, https://github.com/ larso0/bp.
[14] "Vulkan Memory Allocator." Advanced Micro Devices Inc., accessed February 26, 2018, https://github.com/GPUOpenLibrariesAndSDKs/VulkanMemoryAllocator.
[15] Khronos Vulkan Working Group , Vulkan 1.0.98 - A Specification (with KHR extensions). 1.0.98. Jan. 2019. (Khronos Group, 2019), 57-74.
[16] Richard H. Carver, Kuo-Chung Tai. , Modern multithreading: implementing, testing, and debugging multithreaded Java and C++/Pthreads/Win32 programs. (USA: WILEY-INTERCIENCE, 2006), 112-124.
[17] Verzhbizckiy V.M. , "Chislennyye metody (matematicheskiy analiz i obyknovennyye differentsial'nyye uravneniya) [Numerical methods (mathematical analysis and ordinary differential equations)]", (Moscow: High school, 2001), 98-105.
[18] Samarskiy A.A., Nickolayev Ye.S. , "Metody resheniya setochnykh uravneniy [Methods of grid equations solving]" (Moscow: The science, 1987), 130.
[19] Schlumberger , Eclipse reference manual: technical description (2002) 2683.
[20] Loix T. et al. , "Layout and performance of the power electronic converter platform for the VSYNC project" , 2009 IEEE Bucharest PowerTech (2009): 1-8.
[21] Parminder Singh , Learning Vulkan (Birmingham: Packt Publishing Ltd., 2016), 10-12.
[22] Karen L. et al. , "Visualization in Science Education", Alberta Science Education Journal, vol. 41, no 1 (2011): 22-30.
[23] John K. Gilbert, Miriam Reiner, Mary Nakhleh , Visualization: Theory and Practice in Science Education (Springer, 2008), 205-244.
[24] Linda M. Phillips, Stephen P. Norris, John S. Macnab , Visualization in Mathematics, Reading and Science Education (Springer, 2010), 65.
[25] Korakakis G. et al. , "3D visualization types in multimedia applications for science learning: A case study for 8th grade students in Greece" , Computers and Education, vol. 52, no 2 (2009): 390-401.