Найти тему
Laboratory SARD

Анализ эффективности параллельных алгоритмов и разработанного программного обеспечения

Теоретическое исследование эффективности параллельного алгоритма.

Распространение гетерогенных вычислительных систем привело к повышенному интересу к параллельным архитектурам и связанным с ними моделям программирования. Одной из наиболее перспективных моделей для гетерогенных вычислений является модель ускорителей, а одним из наиболее экономичных и высокопроизводительных ускорителей, доступных в настоящее время, является графический процессор общего назначения (GPU).

Для GPU были предложены две похожие среды программирования: CUDA и OpenCL. Хотя в CUDA уже написано больше строк кода, OpenCL является открытым стандартом, который поддерживает более широкий спектр. Следовательно, существует значительный интерес к автоматическому переводу с CUDA на OpenCL.

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

Теорема.Зависимый от размера алгоритм является полилогарифмически быстрым, если

Обычно требуется сокращение времени работы на порядок Pпри использовании pпроцессоров.

Согласно [5] GPU (Graphics Processing Unit) оказывает большое влияние на вычислительную область. Для повышения производительности вычислительных систем исследователи и разработчики используют архитектуру параллельных вычислений GPU. С другой стороны, чтобы сократить время разработки новых продуктов, в GPU включены две модели программирования - OpenCL (Open Computing Language) и CUDA (Compute Unified Device Architecture). Преимущество использования двух моделей программирования в GPUзаключается в том, что исследователям и разработчикам не нужно разбираться в OpenGL, DirectX или других программных конструкциях, а можно использовать GPU с помощью простого языка программирования. OpenCL - это открытый стандартный API, который имеет преимущество кросс-платформенности. CUDA - это параллельная компьютерная архитектура, разработанная NVIDIA, которая включает в себя Runtime API и Driver API. По сравнению с OpenCL, CUDA имеет более высокую производительность. В данной работе мы использовали множество аналогичных ядер для сравнения вычислительной производительности C, OpenCL и CUDA, двух видов API на NVIDIA Quadro 4000 GPU. Результаты эксперимента показали, что исполнительное время CUDA Driver API на 94,9%~99,0% быстрее, чем у C, а исполнительное время CUDA Driver API на 3,8%~5,4% быстрее, чем у OpenCL. Соответственно, кроссплатформенность OpenCL не повлияла на производительность GPU.

Список литературы

[1]. Кузнецов, А. О. Ректификация изображений, полученных с помощью призменно-линзовых оптических систем / А. О. Кузнецов, А. В. Горевой, А. С. Мачихин // DSPA: Вопросы применения цифровой обработки сигналов. – 2018. – Т. 8. – № 3. – С. 177-182

[2]. Banerjee, D., Yu, K. and Aggarwal, G., 2018. Image rectification software test automation using a robotic arm. IEEE Access, 6, pp.34075-34085

[3]. Grinberg M, Ruf B. UAV Use Case: Real-Time Obstacle Avoidance System for Unmanned Aerial Vehicles Based on Stereo Vision. InTowards Ubiquitous Low-power Image Processing Platforms 2021 (pp. 139-149). Springer, Cham

[4]. Протасов, Станислав Игоревич. "Методы и алгоритмы анализа, передачи и визуализации данных в системах компьютерного стереозрения." PhD diss., Воронежский государственный университет, 2013

[5]. Su, Ching-Lung & Chen, Po-Yu & Lan, Chun-Chieh & Huang, Long-Sheng & Wu, Kuo-Hsuan. (2012). Overview and comparison of OpenCL and CUDA technology for GPGPU. IEEE Asia-Pacific Conference on Circuits and Systems, Proceedings, APCCAS. 448-451. 10.1109/APCCAS.2012.6419068

#программирование #наука #знания #интересно #москва #бизнес #главное #сегодня #параллельныеалгоритмы #россиястранавозможностей #учеба