Гетерогенный кластер | ЛИТ/ОИЯИ
 
Платформа "HybriLIT"

Установленное ПО

Завершена миграция платформы на операционную систему AlmaLinux 9.6. Все ключевые пакеты программного обеспечения обновлены до актуальных версий.

Для установки программного обеспечения, которого нет в списке, оставьте заявку через PM.


Системное ПО (Linux, SLURM, Lmod)

  • Alma Linux 9.6
  • SLURM
  • Lmod
  • gcc

    gcc/v12.3.0, gcc/v13.1.0


ПО для параллельных вычислений

* Чтобы посмотреть актуальную версию ПО, наберите в cmd следующую команду: module avail и название модуля, например:

  • CUDA

    Библиотека CUDA позволяет использовать ресурсы GPU NVidia.
    Версия: v11.4, v13.0
    Настроить переменную окружения можно командой, например, для версии CUDA 11.4:

    Сайт: http://www.nvidia.ru/object/cuda-parallel-computing-ru.html

  • intel

    Intel C++ — оптимизирующий компилятор, разрабатываемый фирмой Intel.
    Версия: v2023.1.0, v2025.3.1
    Настроить переменную окружения можно командой, например, для версии v2023.1.0:

    Сайт: https://software.intel.com/en-us/compilers
    Средства Intel для разработки программного обеспечения

  • OpenMPI

    Свободная реализация технологии MPI-2.
    Версии: v5.0.9_gcc1230
    Настроить переменную окружения можно командой:

    Сайт: https://www.open-mpi.org/


Пакеты прикладных программ

* Чтобы посмотреть актуальную версию ПО, наберите в cmd следующую команду: module avail и название модуля, например:

CMake

(от англ. cross-platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода.
Версии: v4.2.3
Настроить переменную окружения можно командой (соответственно для каждой версии):

Сайт: https://cmake.org/

FLAIR

Удобный интерфейс для FLUKA при работе с входными данными, запуске кода и визуализации выходных данных.
Версия: v2.3.0
Настроить переменную окружения можно командой:

Сайт: http://www.fluka.org/flair/

FLUKA

Программа для моделирования физики взаимодействия элементарных частиц (в том числе сверхвысоких энергий, что является отличительной особенностью данной программы) с использованием методов Монте-Карло.
Версии: v2025.1.3

Настроить переменную окружения можно командой (соответственно для каждой версии):

Сайт: http://www.fluka.org/fluka.php

GEANT4

GEANT — инструментарий для моделирования прохождения элементарных частиц через вещество с использованием методов Монте-Карло.
Версия: v4.10.07.p01_gcc910, v11.1.3-qttest, v11.1.3_gcc1120, v11.1.3_gcc1120-mt
Настроить переменную окружения можно командой:

Сайт: https://geant4.org/

GROMACS

Пакет программ для моделирования физико-химических процессов в молекулярной динамике
Версии: v2019.3, v5.1.3_gcc485_cuda80, v2024.3
Настроить переменную окружения можно командой (соответственно для каждой версии):

Сайт: http://www.gromacs.org/

java

Компилятор для языка программирования java.

Версия: v8u202
Настроить переменную окружения можно командой:

LAMMPS

Свободный пакет для классической молекулярной динамики, написанный группой из Сандийских национальных лабораторий. Пакет может применяться для крупных расчётов (до десятков миллионов атомов). Для работы на многопроцессорных системах используется интерфейс MPI.

Версия: v12.12.18, v02.04.25
Настроить переменную окружения можно командой:

Сайт: https://lammps.sandia.gov/

Python

Высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.
Версии: v3.12.13
Настроить переменную окружения можно командой (соответственно для каждой версии):

Сайт: https://www.python.org/

REDUCE

Бесплатная система компьютерной алгебры для выполнения скалярной, векторной и матричной алгебры с помощью компьютера, которая также поддерживает числовую аппроксимацию произвольной точности и интерфейсы к gnuplot для предоставления графики.
Версия: svn-4830
Настроить переменную окружения можно командой:

Сайт: https://reduce-algebra.sourceforge.io

ROOT

Модульный научный программный инструментарий, обеспечивающий все функциональные возможности, необходимые для обработки больших данных, статистического анализа, визуализации и хранения.
Версия: v6-18-00, v6.24.06-qttest, v6.24.06_gcc1120
Настроить переменную окружения можно командой:

Сайт: https://root.cern.ch/

ABINIT

Версия: v10.0.3_openmpi411, v10.0.7_openmpi411, v9.10.3_openmpi411
Сайт: https://github.com/abinit

ELPA

Версия: v2020.05.001_intel2018_python365, v2025.01.002_oneapi

GMP

Версия: v6.2.1_gcc1120
Сайт: https://en.wikipedia.org

LAPACK

Версия: v3.12.0_gcc1230, v3.9.0
Сайт: https://en.wikipedia.org

MAGMA

Версия: v2.6.1_gcc830_cuda101
Сайт: https://magma.maths.usyd.edu.au

Miniconda

Версия: miniconda/etc
Сайт: https://www.anaconda.com

opencv

Версия: v4.1.0
Сайт: https://en.wikipedia.org

ORCA

Версия: v6.1.1_openmpi509
Сайт: https://www.faccts.de/orca/

R (programming_language)

Версия: v4.3.2
Сайт: https://en.wikipedia.org

Valgrind

Версия: v3.16.1_gcc485
Сайт: https://en.wikipedia.org

ViennaCL

Версия: v1.7.1_gcc1120_cuda101
Сайт: https://viennacl.sourceforge.net/


Лицензионные программные пакеты

* Чтобы посмотреть актуальную версию ПО, наберите в cmd следующую команду: module avail и название модуля, например:

  • Comsol Multiphysics

    Универсальная кроссплатформенная программная среда для проектирования, дизайна и анализа методом конечных элементов, предназначенная для моделирования и симуляции различных физической системы.
    Версия: 6.2
    Количество лицензий: 4 графических и по 1 для каждого модуля
    Настроить переменную окружения можно командой:

    Сайт: https://www.comsol.ru/comsol-multiphysics

  • Maple

    Программный пакет, система компьютерной алгебры, предназначенная для символьных вычислений, хотя имеет ряд средств и для численного решения дифференциальных уравнений и нахождения интегралов. Обладает развитыми графическими средствами. Имеет собственный язык программирования, напоминающий Паскаль.
    Версия: 2020.2
    Количество лицензий: 5
    Настроить переменную окружения можно командой:

    Сайт: https://www.maplesoft.com/products/maple/

  • Wolfram Mathematica

    Cистема компьютерной алгебры, широко используемая в научных, инженерных, математических и компьютерных областях. Для системы существуют многочисленные расширения, решающие специализированные классы задач.
    Версия: 11.2
    Количество лицензий: 5
    Настроить переменную окружения можно командой:

    Сайт: https://reference.wolfram.com/language/

  • Matlab

    Пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. Пакет предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики.
    Версия: r2022b

    Доступных лицензий: 6
    Настроить переменную окружения можно командой:

    Сайт: https://www.mathworks.com/help/matlab/


Библиотеки

* Чтобы посмотреть актуальную версию ПО, наберите в cmd следующую команду: module avail и название модуля, например:

CLN

Библиотека для эффективных вычислений со всеми видами чисел с произвольной точностью.
Версия: 1.3.4-1
Настроить переменную окружения можно командой:

Сайт: https://www.ginac.de/CLN/

FFTW

Самое быстрое преобразование Фурье на Западе — это библиотека программного обеспечения для вычисления дискретных преобразований Фурье.
Версии: v3.3.10_openmpi509
Настроить переменную окружения можно командой (соответственно для каждой версии):

Сайт: http://www.fftw.org/

Ginac

Является C++ библиотекой. GiNaC предназначена для обеспечения возможности создания интегрированных систем, которые используют символьные вычисления. GiNaC распространяется под условиями GNU General Public License (GPL).
Версия: v1.7.3-1
Настроить переменную окружения можно командой:

Сайт: https://www.ginac.de/

GSL

GNU Scientific Library (или GSL) — это библиотека, написанная на языке программирования C для численных вычислений в прикладной математике и науке.
Версии: v2.8_gcc1230
Настроить переменную окружения можно командой:

Сайт: https://www.gnu.org/software/gsl/

Сайт: https://developers.google.com/protocol-buffers/

Quantum ESPRESSO

Quantum opEn-Source Package for Research in Electronic Structure, Simulation, and Optimization – интегрированный набор компьютерных кодов с открытым исходным кодом для расчетов электронной структуры и моделирования материалов на наноуровне. Он основан на теории функционала плотности, плоских волнах и псевдопотенциалах.
Версия: v6.4.1, v6.6_oneapi, v7.3.1_openmpi503
Настроить переменную окружения можно командой:

Сайт: http://www.quantum-espresso.org/

zlib

Свободная кроссплатформенная библиотека для сжатия данных.
Версия: v1.2.11-1
Настроить переменную окружения можно командой:

Сайт: http://www.zlib.net/


Средства Intel для разработки программного обеспечения

Aplication Performance Snapshot

Aplication Performance Snapshot представляет из себя инструмент для профилирования приложений. Данное приложение входит в состав Intel Parallel Studio, которая установлена на кластере HybriLIT.

Aplication Performance Snapshot позволяет анализировать основные параметры, такие как использование памяти, объем пересылок, время работы каждого процесса, задержки в работе и т.д.

Для профилирования приложения необходимо:

  1. Подключить модуль, обеспечивающий поддержку переменных окружения для работы с Intel Parallel Studio:

  1. Скомпилировать приложение при помощи подключенной библиотеки:

для MPI-программы

для OpenMP-программы

или

для последовательной программы
где name_app.cpp — название компилируемого файла.

  1. Запустить исполняемый файл (по умолчанию a.out ) с ключом — aps, или при помощи script-файла:

для MPI-программы

для OpenMP-программы

для последовательной программы

  1. Все полученные профилировщиком данные будет размещены в папке aps_result_[дата запуска]. Для отображения этих данных сгенерируйте отчет в формате HTML (рис. 1, рис. 2) используя команду:

Рис. 1. Скриншот output-файла Aplication Perfomance Snapshot для MPI приложения (нажмите на картинку, для перехода на страницу отчета)

Рис. 2. Скриншот output-файла Aplication Perfomance Snapshot для OpenMP приложения (нажмите на картинку, для перехода на страницу отчета)

Intel Trace Analyzer and Collector

Intel Trace Analyzer and Collector предназначен для трассировки MPI-процессов.

Основные задачи:

  • Визуализация поведения параллельного приложения;
  • Оценка профилей статистики и балансировки нагрузки;
  • Анализ производительности подпрограмм или блоков кода;
  • Детализация модели обмена, параметров и данных о производительности;
  • Определение горячих точек связи;
  • Уменьшение времени выполнения и повышение эффективности приложения.

Для запуска приложения нужно повторить пункты 1-2 из раздела MPI Performance Snapshot. Затем запустить программу на счет с ключем –trace. Ниже показан пример используемого скрипта:

Для просмотра результатов нужно воспользоваться графической оболочкой ITAC GUI  с помощью команды

В результате будет открыто приложение, в которое необходимо загрузить файл (по умолчанию a.out.stf). Пример работы трассировщика ITAC  представлен  на Рис.3.

В верхней части Рис.3. отображается распределение вычислительной нагрузки на MPI-процессах и межпроцессорные коммуникации (шкала Event Timeline), числовые значения отображаются в нижней части рисунка.

itac1

Рис. 3.  Пример коммуникации в MPI-приложении.

На графике Message Profile можно оценить, какие именно процессы обмениваются сообщениями и какие коммуникации наиболее затратные по времени (Рис. 4 ).

itac2

Рис. 4. Обмены между процессами в MPI приложении.

В пункте Collective operations можно построить таблицу с временными  затратами на коллективные MPI-операции (рис. 5).

Collective_operations-2

Рис. 5. Таблица временных затрат на коллективные операции в MPI-приложении.

Заключение
Из представленного обзора инструментов профилирования и трассировки MPI-приложений можно сделать следующие выводы:

  • Application Performance Snapshot —  предназначен для  быстрой оценки эффективности, имеет минимальные накладные расходы, обеспечивает профилировку до 32000 MPI процессов, позволяет получить быструю оценку дисбаланса MPI и OpenMP, и получить общую оценку производительности (GFLOPS).
  • Intel Trace Analyzer and Collector —  позволяет провести детальное исследование MPI-приложения, выявить шаблоны коммуникации, локализовать конкретные «узкие» места программы.
Open Visual Inference and Neural Network Optimization

OpenVINO (Open Visual Inference и Neural Network Optimization) представляет из себя бесплатный набор инструментов, облегчающий оптимизацию модели глубокого обучения из инфраструктуры и развертывания с использованием механизма вывода на аппаратном обеспечении Intel.

Movidius Neural Compute Stick (NCS Movidius) — это миниатюрный ускоритель для решений, связанных с искусственным интеллектом, нейронными сетями и глубоким обучением. Ускоритель позволяет реализовывать элементы искусственного интеллекта на самых разнообразных платформах и устройствах. Данное устройство не предназначено для обучения моделей нейронных сетей.

Основное преимущество продукта — производительность, минимальный размер и практически нулевое количество зависимостей. Продукт идеально подходит для реализации приложений, использующих Deep Learning и Computer Vision для решения задач. Из минусов — поддержка обучения нейронных сетей не включена в продукт.

В данной инструкции описаны этапы установки и настройки инструмента OpenVINO Tools для ОС Windows и Linux, а также описана работа с оптимизатором моделей.

Для вывода в Inference Engine ознакомьтесь с документацией конкретно для вашего случая: Inference Engine Developer Guide


Средства для квантовых вычислений

Пакет QuEST

Набор инструментов Quantum Exact Simulation Toolkit (QuEST) – это высокопроизводительный симулятор квантовых схем, векторов состояний и матриц плотности. QuEST использует многопоточность, позволяет проводить расчеты на графических процессорах и распределенных вычислительных системах.

Сайт: https://quest.qtechtheory.org/