Проект GNA — Global Neutrino Analysis — совместное измерение параметров нейтрино из данных нескольких экспериментов (JUNO, Daya Bay и др.) и включает в себя разработку одноименного ПО. В рамках ПО GNA мы работаем над решением следующих проблем, возникающих при анализе данных:
В GNA сложная функция, выполняющая, например, вычисление сигнала, наблюдаемого в эксперименте строится как направленный граф. Каждый узел графа выполняет некоторую элементарную операцию (матричное произведение, вычисление сечения взаимодействия, интегрирования и др) и называется трансформацией. Трансформация производится сразу на массиве данных, а её результат кешируется, что позволяет реализовать подход ленивых вычислений.В пакет GNA входит инструментарий для создания и настройки дерева вычислений, статистического анализа данных, функции для оформления результатов.
Проект находится на альфа версии, тем не менее уже используется несколькими группами для анализа данных эксперимента Daya Bay и оценки чувствительности эксперимента JUNO. Текущая версия документации: http://gna.pages.jinr.ru/gna/.
Использование GNA позволяет пользователю абстрагироваться от того, где будет вычисляться отдельная трансформация, часть графа или весь вычислительный граф, на CPU или на GPU. Передача данных между устройствами и выбор места вычисления происходит на уровне фреймворка. Для вычислений на GPU для каждой трансформации должен быть реализован соответствующий код. Задача включает в себя следующие пункты:
К обязательным требованиям относятся:
Предполагаемый технологический стек: