Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025)

Материал из 0x1.tv

Докладчик
Александр Зубанков.jpg
Александр Зубанков

Обработка результатов измерений и моделирования процессов в современной науке требует сложных компьютерных вычислений. Программное обеспечение для проведения таких расчётов поддерживается для широко используемых архитектур x86_64 и aarch64, а с недавнего времени для перспективных riscv и loongarch64. Однако, зачастую ПО требует портирования для работы на отечественных процессорах Эльбрус с архитектурой e2k.

В работе рассматривается портированное на Эльбрус ПО, позволяющее проводить анализ данных и моделирование. Особое внимание уделено фреймворку ROOT, разрабатываемому в CERN как инструмент «всё в одном», и широко используемому по всему миру в физике высоких энергий, ядерной физике и физике элементарных частиц.

Видео[править вики-текст]

Презентация[править вики-текст]

Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025).pdf

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 с другими архитектурами.


Научные вычисления на процессорах «Эльбрус» (Александр Зубанков, OSSDEVCONF-2025)!.jpg

Примечания и ссылки[править вики-текст]

  1. 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.
  2. Проект по портированию LLVM на e2k-платформу. https://gitflic.ru/project/e2khome/llvm-project-e-2-k