Применение библиотеки функционального программирования для распараллеливания вычислений на CUDA

Обложка

Цитировать

Полный текст

Открытый доступ Открытый доступ
Доступ закрыт Доступ предоставлен
Доступ закрыт Только для подписчиков

Аннотация

Современные графические ускорители (GPU) позволяют существенно ускорить выполнение численных задач. Однако перенос программ на графические ускорители является непростой задачей, иногда требующей практически полного их переписывания. Графические ускорители CUDA, благодаря разработанной компанией NVIDIA технологии, позволяют иметь единый исходный код как для обычных процессоров (CPU), так и для CUDA. Однако распараллеливание на общей памяти все равно делается по-разному и его нужно указывать явно. Применение разработанной авторами библиотеки функционального программирования позволяет скрыть использование того или иного механизма распараллеливания на общей памяти внутри библиотеки и сделать пользовательский исходный код полностью независимым от используемого вычислительного устройства (CPU или CUDA). В настоящей статье показывается, как это можно сделать.

Полный текст

Доступ закрыт

Об авторах

М. М. Краснов

Институт прикладной математики им. М.В. Келдыша Российской академии наук

Автор, ответственный за переписку.
Email: kmm@kiam.ru
ORCID iD: 0000-0001-7988-6323
Россия, 125047, Москва, Миусская пл., д. 4

О. Б. Феодоритова

Институт прикладной математики им. М.В. Келдыша Российской академии наук

Email: feodor@kiam.ru
ORCID iD: 0000-0002-2792-9376
Россия, 125047, Москва, Миусская пл., д. 4

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

  1. TOP 500. URL: https://www.top500.org
  2. NVIDIA. URL: https://www.nvidia.com
  3. TOP 50. URL: http://top50.supercomputers.ru
  4. OpenCL. URL: https://www.khronos.org/opencl/
  5. OpenACC. URL: https://www.openacc.org
  6. CUDA Zone. URL: https://developer.nvidia.com/cuda-zone
  7. Краснов М.М. Библиотека функционального программирования для языка C++ // Программирование. 2020. № 5. С. 47-59. doi: 10.31857/S0132347420050040
  8. Краснов М.М. Операторная библиотека для решения трехмерных сеточных задач математической физики с использованием графических плат с архитектурой CUDA // Математическое моделирование. 2015. Т. 27. № 3. С. 109-120. URL: http://www.mathnet.ru/links/38633e7a627ab2ce1527ae4a092be72f/mm3585.pdf
  9. Краснов М.М. Канд. дисс. “Сеточно-операторный подход к программированию задач математической физики”. Автореф. URL: http://keldysh.ru/council/1/2017-krasnov/avtoref.pdf
  10. Haskell language. URL: https://www.haskell.org/
  11. Маклейн С. Категории для работающего математика / перевод с англ. под ред. В.А. Артамонова. М.: ФИЗМАТЛИТ, 2004. 352 с. ISBN 5-9221-0400-4.
  12. Bartosz Milewski. Category Theory for Programmers. URL: https://github.com/hmemcpy/milewski-ctfp-pdf/releases/download/v1.3.0/category-theory-for-programmers.pdf
  13. Veldhuizen Т. Expression Templates. C++ Report. Vol. 7. № 5. June 1995. pp. 26-31.
  14. Coplien J.O. Curiously recurring template patterns. C++ Report, February 1995, pp. 24–27.
  15. David Abrahams, Aleksey Gurtovoy. C++ Template Metaprogramming. Addison-Wesley. 2004. 400 с. ISBN 978-0-321-22725-6.
  16. Краснов М. М. Метапрограммирование шаблонов C++ в задачах математической физики. М.: ИПМ им. М.В. Келдыша, 2017. 84 с. http://dx.doi.org/10.20948/mono-2017-krasnov10.20948/mono-2017-krasnov.
  17. Краснов М. М. Применение символьного дифференцирования для решения ряда вычислительных задач // Препринты ИПМ им. М.В. Келдыша. 2017. № 4. 24 с. http://dx.doi.org/10.20948/prepr-2017-410.20948/prepr-2017-4.
  18. Краснов М. М. Применение функционального программирования при решении численных задач // Препринты ИПМ им. М.В. Келдыша. 2019. № 114. 36 с. http://dx.doi.org/10.20948/prepr-2019-11410.20948/prepr-2019-114.
  19. Вычислительный комплекс K-60. https://www.kiam.ru/MVS/resourses/k60.html.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML
2. Рис. 1.

Скачать (54KB)
3. Рис. 2.

Скачать (35KB)
4. Рис. 3.

Скачать (32KB)

© Российская академия наук, 2024

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».