Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025)
Материал из 0x1.tv
- Докладчик
- Александр Зубанков
Обработка результатов измерений и моделирования процессов в современной науке требует сложных компьютерных вычислений. Программное обеспечение для проведения таких расчётов поддерживается для широко используемых архитектур
x86_64иaarch64, а с недавнего времени для перспективныхriscvиloongarch64. Однако, зачастую ПО требует портирования для работы на отечественных процессорах Эльбрус с архитектурой e2k.В работе рассматривается портированное на Эльбрус ПО, позволяющее проводить анализ данных и моделирование. Особое внимание уделено фреймворку ROOT, разрабатываемому в CERN как инструмент «всё в одном», и широко используемому по всему миру в физике высоких энергий, ядерной физике и физике элементарных частиц.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Ключевые слова: процессоры Эльбрус, научные вычисления, программное обеспечение.
Отличительной особенностью отечественных процессоров Эльбрус, разрабатываемых компанией МЦСТ, является собственная архитектура e2k с очень длинной машинной командой VLIW, что не позволяет без портирования работать с ПО, в том числе и для научных расчётов. Портирование научного ПО на процессоры Эльбрус сделает возможным импортозамещение в передовых областях, связанных с фундаментальными и прикладными исследованиями.
Портирование осуществлялось в рамках операционной системы Collaboration OS (CollabOS). Ключевой особенностью CollabOS является поддержка пакетной базы на основе CentOS 9 и Epel, что обеспечивает лёгкий переход на процессоры Эльбрус с других дистрибутивов Linux, основанных на RedHat и часто используемых в вычислительных кластерах: CentOS, Fedora, AlmaLinux и Scientific Linux. На данный момент операционная система поддерживает процессоры 5 и 6 поколений Эльбрус 8СВ, 2С3, 16С.
Одним из наиболее широко используемых инструментов для вычислений в физике высоких энергий и ядерной физике является фреймворк ROOT, разрабатываемый в CERN[1]. ROOT написан для обработки, хранения, визуализации и анализа научных данных в рамках единого программного пакета физиками, что делает его довольно доступным. Особенностью является интерпретатор C++ Cling, позволяющий в интерактивном режиме работать с данными. Это удобно для быстрого просмотра и исправлений, в том числе с возможностью работы с графическим интерфейсом в TBrowser для чтения .root файлов.
ROOT широко используется в крупных международных коллаборациях, занимающимися фундаментальными исследованиями, где требуется работа с большой статистикой для изучения редких процессов. Коллаборации, как правило, используют свою надстройку над ROOT, включающую в себя все необходимое для работы над конкретным экспериментом (например, классы и параметры детекторов). Среди наиболее известных коллабораций, использующих ROOT — ATLAS, CMS, LHCb, ALICE в CERN, HADES и CBM в GSI, T2K, а также BM@N и MPD на NICA в ОИЯИ.
ROOT продолжает развиваться, в нём есть встроенные средства для работы с машинным обучением и многое другое. Отдельно можно отметить интеграцию с языками Python и R, а также поддержку работы с MySQL, PostgreSQL и SQLite.
Поскольку цель стояла в сборке ROOT в конфигурации максимально приближённой к epel 9, то необходимо было собрать ряд зависимостей. Так, были портированы: R — язык для анализа и визуализации данных, xrootd — расширенный файловый сервер ROOT, pythia8 — генератор взаимодействий в физике высоких энергий, библиотеки для работы с математикой openblas, flexiblas, atlas, libarrow, lhapdf, cfitsio и другие пакеты.
Для портирования ROOT использовался LLVM, модифицированный МЦСТ[2]. Портированный LLVM использует проприетарный оптимизирующий e2k-бэкенд из компилятора lcc. Изменения, необходимые для работы на Эльбрусах, на основе из веток llvmorg-19-e2k и llvmorg-17.0.1-e2k были перенесены в llvm-18 от команды ROOT. После большого числа исправлений был подготовлен патч, который можно применить при сборке rpm-пакета в rpmbuild. Также была добавлена поддержка e2k в файлы для осуществления сборки по аналогии с другими архитектурами.
В рамках операционной системы CollabOS был портирован ряд ПО, востребованного в научно-исследовательских организациях:
- программы для обработки данных, статистики и моделирования —
ROOT,Geant4,R,SciPy,NumPy,Pythia8,LHAPDF,Octave; - для построения графиков, гистограмм и диаграмм —
ROOT,R,Matplotlib,Gnuplot; - для вёрстки текста статей —
TeXLive,AbiWord; - языки программирования —
C,C++,Fortran,Python 3.9,Perl,Java 8и11,PHP,Lua,Ruby,R,Rust,Octave.
Благодаря этому достигается широкая совместимость проводимых научных расчётов на отечественных процессорах Эльбрус 8СВ и 2С3 с другими архитектурами.
Примечания и ссылки[править вики-текст]
- ↑ Brun R., Rademakers F. ROOT — An Object Oriented Data Analysis Framework // Proceedings AIHENP'96 Workshop, Lausanne, Sep. 1996, Nucl. Inst. Meth. in Phys. Res. A 389 (1997) 81–86.
- ↑ Проект по портированию LLVM на e2k-платформу. https://gitflic.ru/project/e2khome/llvm-project-e-2-k
