Что делать ученому с Эльбрусом?

от автора

Введение

Современная наука зачастую бывает далека от представлений о ней, дающихся в школе. Эксперименты автоматизированы и сложны настолько, что компьютер необходим практически на каждом этапе исследования. В данной статье рассмотрим актуальное для учёных программное обеспечение, которое может работать на российских процессорах Эльбрус.

В прошлой статье было рассмотрено портирование фреймворка CERN ROOT, который используется по всему миру для обработки данных с экспериментов в ядерной физике, физике высоких энергий и космологии (именно с помощью него был открыт бозон Хиггса). Часть ПО, представленного в текущей статье, может работать в связке с ROOT, что очень удобно.


Начнём обзор с моделирования, без него в современной физике никак не обходится.

Geant4 — смоделируй себе детектор сам

Geant4 мощный инструмент, позволяющий проводить моделирование взаимодействий частиц с веществом в физике высоких энергий, ядерной физике, космологии и ядерной медицине. Он используется

  • при проектировании и модернизации детекторов для оптимизации их характеристик в экспериментах;

  • для подготовки к эксперименту, путем полного моделирования всех взаимодействий в эксперименте;

  • для сравнения с данными для уточнения моделей взаимодействий;

  • при оценке параметров детекторов и эксперимента, которые нельзя или сложно измерить экспериментально.

Кроме того, Geant4, как и ROOT, активно поддерживается сообществом учёных. Всё это делает его необходимым инструментом, без которого не обходится большая часть статей в журналах Q1-Q2.

Geant4 написан на C++, что без проблем позволяет его собрать на Эльбрусах. Однако в качестве компилятора стоит использовать не оптимизирующий компилятор lcc, а clang версий 13, 17, 19 и 21 от МЦСТ или 18 и 20 от Унипро. Geant4 (как и другое перечисленное ниже ПО) включен в состав rpm-пакетов нашего дистрибутива CollabOS.

Визуализация прохождения 20 гамма-квантов с энергией 6 МэВ через вещество в Geant4 на процессоре Эльбрус-8СВ на примере exampleB1.

Pythia8 — генерируем столкновения

Генератор событий физики высоких энергий Pythia8 позволяет получать из теории и моделей детальное описание жестких и мягких взаимодействий, распределения партонов, ливни партонов в начальном и конечном состояниях, множественные взаимодействия, фрагментацию и распад. Программа в значительной степени основана на оригинальных исследованиях, но также заимствует многие формулы и другие знания из литературы. Pythia8 классифицируется как универсальный генератор событий методом Монте-Карло. Выходые файлы могут быть использованы в ROOT для сравнения экспериментальных данных с моделированием, что необходимо в современных реалиях физики высоких энергий.

Пример main101 по столкновению протонов с энергией 8 ГэВ, полученный на Эльбрус-8СВ.


Теперь рассмотрим ПО для обработки и визуализации данных.

R — работа со статистикой

Язык R является мощным инструментом по работе со статистикой, особенно популярный у биологов и биоинформатиков. Он позволяет проводить статистические тесты, линейное и нелинейное моделирование, анализ временных рядов, классификацию и кластеризацию. Также как и ROOT, он обладает режимом интерпретатора, что существенно упрощает работу с данными. Для решения ресурсоемких задач реализована возможность подключать и вызывать код на языках C, C++ и Fortran во время выполнения.

Пример построения на Эльбрус-8СВ гистограмм с фитами, взятый из интернета.

Python — Scipy, Matplotlib, Numpy — база для быстрого старта

Эта троица знакома многим, и используется не только в науке, в основном, благодаря удобству и низкому порогу входа в Python. Даже если вы не очень ладите с программированием, можно “навайбкодить” с помощью LLM построение неплохих графиков или гистограмм в python. С ROOT, Gnuplot и R это будет куда сложнее.

NumPy позволяет проводить быстрые числовые и матричные вычисления, а инструментарий SciPy и Matplotlib — выполнять построения графиков, гистограмм и проводить статистический анализ и аппроксимацию. Python также может взаимодействовать с ROOT через модуль PyRoot.

В качестве примера оставлю построенные в Matplotlib на Эльбрус-8СВ гистограммы сравнения производительности процессоров разных архитектур в бенчмарке ROOT.

Octave и Gnuplot — открытая альтернатива Matlab

Другим популярным мультиплатформенным инструментом для визуализации данных и математических функций является Gnuplot. Его можно использовать как в интерактивном режиме в графическом режиме или в командной строке, так и в неинтерактивных применениях, таких как веб-скриптинг. Некоторые небезосновательно считают графики из Gnuplot наиболее красивыми по сравнению с другими инструментами визуализации.

Высокоуровневый язык для численных вычислений GNU Octave использует для построения графиков Gnuplot. Octave обладает большим математическим инструментарием, совместим со многими скриптами Matlab и легко расширяется пользовательскими функциями, написанными на Octave, C, C++, Fortran и других языках.

Стандартные примеры построений графиков, выполненные на Эльбрус-8СВ.


И в конце концов, инструмент, без которого сложно обойтись при публикации статьи в научном журнале или подготовке доклада на конференцию.

Texlive — великий и могучий LaTeX

LaTeX очень удобен для подготовки текста статьи, так как можно скачать готовый шаблон журнала и работать только с наполнением, не тратя время на многочисленное выравнивание, как в графических редакторах текста, типа MS Word, LibreOffice и прочих. С помощью bibtex удобно работать со ссылками на другие работы, тратя минимальное время на форматирование. Также очень удобно с помощью latexdiff подсветить внесенные исправления в статью после отзывов рецензентов.

До недавнего времени большое количество учёных использовало онлайн-сервис Overleaf, который действительно очень удобен для параллельной работы несколькими авторами над статьей, однако не у всех остался доступ к полному аккаунту, а бесплатная версия сильно ограничена и не подойдёт для компиляции больших статей. Я перешёл на локальную компиляцию статей с количеством страниц превышающих 10. С этой задачей Эльбрусы справляются вполне хорошо, как и с компиляцией презентаций. Пример скомпилированной на e2k уже опубликованной мной статьи.

Выводы

Можно ли использовать Эльбрусы учёным? Да! Они вполне неплохо справляются с этим, только придётся подождать дольше, чем обычно на x86_64. Однако переезд на Эльбрусы будет практически безболезненным для пользователей, так как современная наука почти не использует проприетарного ПО, что отлично.

Как все обстоит на других архитектурах? Как ни жаль, но на других архитектурах проблем будет меньше. Если посмотреть на loongarch64, aarch64 и riscv64, то все необходимые порты ПО или уже лежат в upstream проектов (в частности и CERN ROOT, который портировали на e2k в прошлой статье) или вовсе не требуют портирования из-за активного развития и открытого исходного кода компиляторов, а сложности могут возникнуть разве что с выбором дистрибутива. Кроме того, loongarch64 показывает хорошие перспективы в бенчмарках, а aarch64 уже стараются использовать в серверах CERN.

ссылка на оригинал статьи https://habr.com/ru/articles/1045342/