Разработка систем поддержки многопоточных вычислений платформы Global Neutrino Analysis
В данной работе описана библиотека поддержки вычислений для платформы GNA на графических процессорах. Платформа GNA разработана для статистического анализа данных физических экспериментов. Некоторые алгоритмы, реализованные для анализа данных нейтринных экспериментов, занимают многие часы. Такой анализ включает в себя многократное повторение одного и того же вычислительного графа с разными параметрами. Кроме того, большинство функций, используемых для анализа, производится над массивами данных, а зависимости по данным — минимальны. Для выполнения таких задач, реализуемых в GNA, подходит архитектура GPU.
В работе описаны подходы, используемые при реализации, а также приведены тесты на производительных некоторых алгоритмов и вычислительных цепочек. Получено ускорение для объемов данных, используемых в модели JUNO.
Используемые термины и обозначения . . . . . . . . . . . . . . 3
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Обзор литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Глава 1. Расчеты физических моделей . . . . . . . . . . . . . . 6
1.1. Физическая задача . . . . . . . . . . . . . . . . . . . . . . 6
1.2. GNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Глава 2. Вычисления на GPU . . . . . . . . . . . . . . . . . . . . 16
2.1. Особенности вычислений на GPU . . . . . . . . . . . . . . 16
2.2. CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Глава 3. Поддержка вычислений на GPU в GNA . . . . . . . 22
3.1. Мотивация для использования GPU . . . . . . . . . . . . 22
3.2. Архитектурные решения . . . . . . . . . . . . . . . . . . . 24
Глава 4. Примеры и тесты . . . . . . . . . . . . . . . . . . . . . . 32
Глава 5. Альтернативные способы ускорения . . . . . . . . . . 38
5.1. Фильтр GridFilter . . . . . . . . . . . . . . . . . . . . . . . 38
5.2. Объединение трансформаций . . . . . . . . . . . . . . . . 41
Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Приложение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Приложение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Приложение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Приложение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Используемые термины и обозначения
Нейтрино — элементарная частица, открытая совсем недавно, в сере-
дине XX века. На настоящий момент, область нейтрино совсем мало изу-
чена, и ученые со всего мира пытаются найти ответы на фундаментальные
вопросы об этой частице. В разных уголках планеты строятся детекторы,
которые позволяют детектировать нейтринные потоки от атомных элек-
тростанций, из космоса, гео-нейтрино. Среди них телескоп на озере Байкал
(эксперимент Baikal-GVD), обсерватория на антарктической станции (экс-
перимент IceCube), детекторы, помещенные внутрь горы в Китае (JUNO,
Daya Bay) и другие. Эти детекторы имеют множество сенсоров, которые
улавливают излучение, полученное в результате взаимодействия нейтрино
с веществом, находящимся в детекторе.
Платформа GNA разработана для статистического анализа экспе-
риментальных данных. Изначально рассматривалось применение GNA в
экспериментах JUNO и Daya Bay. Тем не менее, эта платформа является
расширяемой, а также имеет набор общих методов, подходящих для более
широкого круга задач.
Методы статистического анализа требуют значительных временных
затрат. Например, профилирование функции правдоподобия требует сот-
ни итераций минимизации по множеству параметров, каждая из которых
занимает часы. Поэтому возникает необходимость увеличения производи-
тельности алгоритмов, в том числе, аппаратными способами.
В данной работе была рассмотрена возможность применения графи-
ческих процессоров для ускорения обработки данных. Была реализована
библиотека поддержки вычислений на GPU для платформы GNA. Библио-
тека была протестирована на некоторых функциях, используемых в стати-
стическом анализе, и показала свою эффективность.
В этой работе описана библиотека поддержки вычислений на графи-
ческих процессорах для платформы GNA. Библиотека была реализована
как опциональный модуль платформы. В ее состав входит набор предопе-
ределенных трансформаций, а также логика синхронизации данных между
оперативной памятью и памятью GPU.
Библиотека была протестирована на ряде трансформаций. Некото-
рые тесты приведены в этой работе. Для алгоритма вероятности осцил-
ляций было достигнуто ускорение до 10 раз. В измеряемое время работы
алгоритма входили также затраты на обмен данными между узлами вы-
числительного графа.
Тестирование показало, что в некоторых задачах использование GPU
приведет к замедлению. При использовании входных данных малого объе-
ма выигрыш в производительности от использования параллельных пото-
ков выполнения нивелируется затратами на обмен данными. Минимальный
объем входных данных, при котором достигается ускорение, варьируется в
зависимости от вычислительной сложности и используемых устройств.
Описанная библиотека показала свою эффективность на описанных
в работе трансформациях на объемах данных, характерных для экспери-
мента JUNO. Она также имеет потенциал для более широкого круга задач,
в том числе, с данными меньшего объема, при дополнительных модифика-
циях, также описанных в этой работе.
Благодарности
Хотелось бы поблагодарить своих научных руководителей Максима
Гончара и Александра Дегтярева за поддержку в написании диплома. Осо-
бую благоданость выражаю коллегам из ЛЯП ОИЯИ Максиму Гончару и
Константину Трескову за неоценимую помощь в изучении области вычис-
лительной физики нейтринных экспериментов и разработке, а также за
помощь в подготовке текста этой работы. Спасибо Дмитрию Наумову, за-
местителю директора ЛЯП ОИЯИ, за поддержку идей, описанных здесь.
Отдельная благодарность команде ЛИТ ОИЯИ, предоставившей доступ к
облачным ресурсам ЛИТ, используемым при разработке GNA.
Последние выполненные заказы
Хочешь уникальную работу?
Больше 3 000 экспертов уже готовы начать работу над твоим проектом!