Тема: Использование сопроцессорных технологий в рамках проекта MpdRoot
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Введение 3
Постановка задачи 4
Обзор литературы 6
Глава 1. Рассматриваемое программное обеспечение 8
1.1 FairRoot и ROOT 8
1.2 MpdRoot 9
Глава 2. Используемые технологии параллельного программирования 9
2.1 OpenMP для многоядерных CPU 10
2.2 CUDA 11
2.3 Параллельные вычисления в зависимостях пакета MpdRoot 13
Глава 3. Анализ существующего кода 14
Глава 4. Модификации 16
4.1 Применение CUDA к фрагменту фильтра Калмана 16
4.2 Анализ функции FindNeighbourStrips 19
4.3 Оптимизация функции FindNeighbourStrips 22
4.4 Тесты 24
4.5 Возможности применения Intel Xeon Phi 26
Вывод 28
Заключение 28
Список литературы 30
ПРИЛОЖЕНИЕ А. Таблица зависимостей MpdRoot 32
ПРИЛОЖЕНИЕ Б. Граф вызовов для функции MnvertLocal 33
📖 Введение
В современной ядерной физике особый научный интерес представляет состояние материи, называемое кварк-глюонной плазмой. На данный момент эта область мало изучена. Исследования в этой сфере помогут найти ответы на многие фундаментальные вопросы, в том числе, о развитии Вселенной и нейтронных звездах.
В настоящий момент в городе Дубна Московской области стоится ускорительный комплекс NICA [1]. Одной из задач, которые планируется изучать с помощью данной установки, является воссоздание и исследование состояния, в котором находилась Вселенная сразу после Большого Взрыва. В состав ускорительного комплекса входит коллайдер с двумя точками взаимодействия встречных пучков, оснащенными детекторами частиц: MPD и SPD.
Для каждого детектора частиц пишется программное обеспечение, реализуемое в зависимости от задач, исследуемых с помощью конкретной установки. При проведении экспериментов ядерной физики необходимо собирать объемы данных, достаточные для обоснования каких-либо выводов и исключающие возможность принятия ошибочных результатов за верные. Другими словами, для того чтобы на основании физического эксперимента можно было получить корректное заключение, необходимо провести его неоднократно.
В наши дни область изучения ядерной физики активно развивается. Лаборатории в разных точках планеты проводят исследования на физических установках. Поэтому возникает потребность в том, чтобы программное обеспечение работало не только корректно, но и достаточно быстро. Данные, полученные в экспериментах, должны быть актуальными. Также важно, чтобы результаты исследований могли быть описаны в ближайшем будущем.
Предполагается, что обработка данных, получаемых с детектора MPD будет производиться с помощью разрабатываемого фреймворка MpdRoot. Этот проект создан на основе двух широко используемых в ядерных исследованиях библиотеках - FairRoot и Root. Они активно применяются в подобных экспериментах, проводимых в организациях FAIR, CERN и других.
В данной работе рассматриваются возможности ускорения работы программного обеспечения для детектора MPD [2, 3]. Рассмотрены возможности применения технологий параллельного программирования в данном продукте, исследована целесообразность их применения на конкретных примерах фрагментов существующего кода.
✅ Заключение
Также рассмотрены возможности применения многоядерных центральных процессоров. Приведен пример оптимизации фрагмента кода фреймворка на процессорах Intel Xeon. Проанализирована возможность применения продуктов Intel Xeon Phi.
Предположение о возможности переноса кода на сопроцессорные архитектуры были сделаны на основе профилирования тестов фреймворка. Проведенные практические тесты показали значительное замедление работы прототипа на GPU по сравнению с последовательной реализацией.





