Сеченов П.А., Оленников А.А. —
Применение технологии параллельного программирования NVIDIA CUDA в задаче расплавления шарообразной частицы
// Кибернетика и программирование. – 2018. – № 5.
– С. 8 - 14.
DOI: 10.25136/2644-5522.2018.5.20345
URL: https://e-notabene.ru/kp/article_20345.html
Читать статью
Аннотация: В статье рассмотрена технология параллельного программирования NVIDIA CUDA в задаче расплавления шарообразной частицы. Показана тенденция современных компьютеров к увеличению мощности за счет увеличения количества ядер, а не за счет увеличения частоты процессора (что приводит к значительному потреблению энергии и выделению тепла). Представлен закон Амдала, позволяющий оценить ускорение времени программы при распараллеливании на N процессоров. Перечислены условия увеличения производительности алгоритма при распараллеливании задачи. Представлена задача расплавления частицы железной руды. Рассмотрены особенности языка параллельного программирования CUDA C и представлены алгоритмы для выбранной задачи. Произведен сравнительный анализ времени выполнения задачи на CPU (С#) и GPU (CUDA C). Технология параллельного программирования CUDA позволяет увеличить производительность распараллеливаемых алгоритмов сложности N до 60 раз. Для этого требуется наличие графического процессора с поддержкой данной технологии, среда разработки и компилятор языка CUDA, знание языка CUDA C, а также хорошее знание задачи и возможности ее распараллеливания.
Abstract: The article describes the NVIDIA CUDA parallel programming technology used in the task of melting a spherical particle. The tendency of modern computers to increase power by increasing the number of cores, and not by increasing the frequency of the processor (which leads to significant energy consumption and heat generation). The Amdal law is presented, allowing to estimate the acceleration of the program time when parallelized on N processors. The conditions for increasing the performance of the algorithm in parallelizing tasks are listed. The task of melting iron ore particles is presented. The features of the parallel programming language CUDA C are considered and the algorithms for the selected task are presented. A comparative analysis of the task execution time on the CPU (C #) and GPU (CUDA C) has been made. The technology of parallel programming CUDA allows you to increase the performance of parallelized algorithms of complexity N up to 60 times. This requires the presence of a graphics processor supporting this technology, the development environment and the CUDA compiler, knowledge of the CUDA C language, as well as a good knowledge of the task and the possibility of its parallelization.