Дослідження паралельних алгоритмів мовою Python з використанням різних платформ

Thumbnail Image
Погорілий, Сергій
Семьонов, Богдан
Journal Title
Journal ISSN
Volume Title
Реалізовано послідовну версію методу Гауса (розв’язання систем лінійних алгебраїчних рів- нянь) та її паралельну версію на ядрах архітектури CUDA з використанням різних програмних бібліотек та платформ на мові програмування Python, а саме: Anaconda (Numba), PyCUDA, KappaCUDA та PyOpenCL. Проведено низку досліджень: порівняння швидкості виконання різних реалізацій методу Гауса.
Python programming language was the first main object of the research of this article. The language provides constructs intended to enable writing clear programs on both small and large scales. Python interpreters are available for many operating systems, allowing Python code to run in a wide variety of systems. Some tables were created for comparing Python with other languages. General-purpose computing on graphics processing units (GPGPU) is considered in the paper, which typically handles computation only for computer graphics and is used to perform computation in applications traditionally handled by the central processing unit (CPU). The article examines the implementation of GPGPU technology tools with programming language Python APIs: Anaconda, PyCUDA, KappaCUDA, and PyOpenCL. NVidiaCUDA technology is introduced, which is the second main object of the research, and the article discusses its advantages. Possibilities of this technology are shown. Fast facts about NVIDIA are given. Then its production and achievements are considered. It could be concluded that this technology has made a great impact on the market and is developing very actively. The article deals with modern architectures used in video adapters. The code is given as an example, which is used in working with graphical process units, and the instructions how to work with the global memory are offered. It could be concluded that such a technology can be used in a wide variety of applications and can be developed in different ways. Different patterns of thread interaction in this technology are shown. The problems of synchronization and different solutions are considered. The dynamic parallelism and its principles are defined. A serial version of the Gaussian elimination (solving systems of linear algebraic equations) and its parallel version on the CUDA architecture cores in the Python programming language were implemented. A number of research procedures were done: a comparison of the speed of the various implementations of the Gaussian elimination with using of various program libraries and platforms: Anaconda (Numba), PyCUDA, KappaCUDA, and PyOpenCL.
метод Гауса, KappaCUDA, PyCUDA, Python, стаття
Погорілий С. Д. Дослідження паралельних алгоритмів мовою Python з використанням різних платформ / Погорілий С. Д., Семьонов Б. О. // Наукові записки НаУКМА. Комп'ютерні науки. - 2017. - Т. 198. - С. 14-21.