РФЯЦ-ВНИИТФ · РОСАТОМ · Альфа

Вычислительный мини-кластер «Скворец»

Мини-кластер для тестовых, научно-исследовательских и учебных задач на высокоскоростной сети Альфа.

Вычислительный мини-кластер «Скворец»

Характеристики

Вычислительный мини-кластер «Скворец» состоит из следующих вычислительных ресурсов.

Управляющий узел

  • 1 процессор Intel Xeon Silver 4214R, 2,4 ГГц, 12 ядер (24 в режиме Hyper-Threading)
  • Оперативная память: 256 ГБ

Пять вычислительных узлов

Каждый узел

  • Сервер Kraftway TS3100 1U
  • 2 процессора Intel Xeon Gold 6336Y, 2,4 ГГц, всего 48 ядер (96 в режиме Hyper-Threading)
  • Оперативная память: 512 ГБ
  • 2-портовый сетевой адаптер Альфа, скорость порта: 80 Гбит/с

Высокоскоростная сеть Альфа

  • 32-портовый коммутатор Альфа, скорость порта: 80 Гбит/с

Программное обеспечение

Операционная система
Alt Linux (ALT SP Server 10)
Компилятор C/C++
gcc 10.3.1
Библиотека MPI
MPICH 4.3.0, поддержка OpenMP
Планировщик задач
Slurm 25.05.0

Правила использования

Внимание!

  • Доступ к мини-кластеру «Скворец» предоставляется пользователям (включая студентов факультета ВМК МГУ им. М. В. Ломоносова) исключительно в тестовых, научно-исследовательских и учебных целях.
  • Все пользователи обязуются по требованию администраторов мини-кластера предоставлять информацию о проведённых исследованиях.
  • Пользователи обязуются в публикациях ставить ссылки на использование ресурсов мини-кластера «Скворец».
  • При изменении регистрационных данных пользователь должен незамедлительно сообщить об этом администраторам: контактная информация, потребности в ресурсах и т. п.
  • Запрещается запускать вычислительные задачи на управляющем узле, если это не разрешено напрямую.

Любые действия, направленные на умышленную порчу, дестабилизацию или вывод из строя аппаратного и программного обеспечения мини-кластера, категорически запрещены.

К деструктивным действиям относятся, в том числе:

  • Использование мини-кластера для задач, не согласованных с администраторами мини-кластера или факультетом ВМК МГУ им. М. В. Ломоносова.
  • Передача логина и закрытого SSH-ключа другим пользователям.
  • Попытки обхода ограничений безопасности, получение несанкционированных прав суперпользователя (root) или несанкционированный доступ к чужим учётным записям, данным и вычислительным узлам.
  • Намеренное повреждение, удаление или модификация системных файлов, конфигураций и предустановленного программного обеспечения.
  • Запуск вредоносного ПО, проведение тестов на проникновение (penetration test), майнинг криптовалют и организация DDoS-атак.
  • Использование ПО для создания критических нагрузок с целью физического повреждения компонентов узлов (overclocking, намеренный перегрев).

Последствия нарушений

  1. 1

    Технические. Немедленная и безвозвратная блокировка учётной записи пользователя.

  2. 2

    Академические. Передача информации о нарушении в учебную часть факультета ВМК МГУ им. М. В. Ломоносова для применения мер дисциплинарного воздействия, вплоть до отчисления из МГУ им. М. В. Ломоносова.

  3. 3

    Юридические. В соответствии с законодательством Российской Федерации лица, совершившие умышленные действия, повлёкшие материальный ущерб или сбой в работе ИТ-инфраструктуры, могут быть привлечены к гражданско-правовой, административной или уголовной ответственности.

Все действия пользователей в системе — команды, логи авторизации, сетевая активность — логируются и контролируются администраторами мини-кластера. Начиная работу на мини-кластере, вы автоматически соглашаетесь с этими условиями.

Доступ

Доступ к мини-кластеру осуществляется по предварительно созданному логину и переданному SSH-ключу.

В целях безопасности доступ в интернет с мини-кластера запрещён. Чтобы передать программы, данные и результаты на мини-кластер или с него, с внешней машины используйте утилиту scp.

Сборка и запуск программ

Выбор MPI

Для управления версиями MPI в системе развёрнуты environment modules.

По умолчанию используется mpi/mpich/4.3.0.

Просмотр доступных модулей MPI

$ module avail

Загрузка модуля

$ module load <module name>

Выгрузка модуля

$ module unload <module name>

Компиляция

Перед компиляцией или сборкой любого программного обеспечения загрузите выбранный модуль MPI. Без этого компиляторы MPI недоступны в вашей среде.

$ module load mpi/mpich/4.3.0

После загрузки модуля используйте стандартные обёртки компиляторов MPICH: mpicc для C, mpicxx для C++, mpif90 для Fortran. Они подключают нужные заголовочные файлы и библиотеки.

$ mpicc -O3 my_program.c -o my_program

Запуск через Slurm

На вычислительном кластере работает система управления очередями и задачами Slurm. Все расчётные задачи запускаются строго через Slurm.

Ниже — краткая справка по основным командам. Подробности есть в man соответствующей команды.

  • srun — запуск задачи в интерактивном режиме
  • sbatch — запуск задачи в пакетном режиме
  • scancel — отмена запущенной задачи и удаление её из очереди
  • sinfo — состояние задач, разделов и узлов, которыми управляет Slurm
  • squeue — задачи, поставленные в очередь планирования Slurm

Очереди

В системе две рабочие очереди с разным временем счёта и приоритетом.

ОчередьПриоритетНазначение
highВысокийКороткие тестовые расчёты и отладка.
lowНизкийДлительные расчётные задачи, которым нужно больше времени.

Конкретные настройки очередей показывает команда sinfo.

Команда srun

Команда srun запускает задачи в интерактивном режиме. Формат: srun [OPTIONS] PROG [ARGS].

  • -N, --nodes=<number> — количество узлов, на которых будет запущена задача
  • --ntasks-per-node=<number> — число процессов этой задачи на каждом узле
  • --threads-per-core=<number> — число аппаратных потоков на каждом ядре
  • --cpu_bind=threads — каждый процесс привязывается к одному аппаратному потоку
  • -w, --nodelist=<host1,host2,... or filename> — узлы, которые должны войти в список узлов задачи
  • -p, --partition=<partition names> — очередь, в которой задаче выделяются узлы

Пример

srun -p high -N2 --ntasks-per-node=4 bench -t biband -e -o putnb

Программа bench запустится на двух узлах, по четыре процесса на каждом.

Команда sbatch

Команда sbatch запускает задачи в пакетном режиме. Формат: sbatch [OPTIONS] SCRIPT [ARGS].

  • -N, --nodes=<number> — количество узлов, на которых будет запущена задача
  • --ntasks-per-node=<number> — число процессов этой задачи на каждом узле
  • --threads-per-core=<number> — число аппаратных потоков на каждом ядре
  • -w, --nodelist=<host1,host2,... or filename> — узлы, которые должны войти в список узлов задачи
  • -p, --partition=<partition names> — очередь, в которой задаче выделяются узлы
  • --wrap=<command string> — sbatch превратит строку команды в shell-скрипт и поставит его в очередь. Имя скрипта и аргументы в командной строке указывать не нужно
  • -o, --output=<filename pattern> — файл для стандартного вывода. По умолчанию стандартный вывод и поток ошибок идут в один файл. Если имя не задано, вывод сохраняется в slurm-%j.out, где %j заменяется на идентификатор задачи

Скрипт запускается на первом из выделенных узлов. Несколько процессов стартуют командой srun. Опции из командной строки и строк #SBATCH применяются к каждой команде srun этого скрипта, если в ней они не переопределены.

$ cat myscript
#!/bin/sh
#SBATCH --ntasks-per-node=4
srun bench -t biband -e -o putnb

$ sbatch -p high -N2 myscript

Программа bench запустится на двух узлах, по четыре процесса на каждом.

$ sbatch -N2 --ntasks-per-node=4 --wrap "srun bench -t biband -e -o putnb"

Результат тот же.

Техническая поддержка

При возникновении вопросов или проблем обращайтесь, пожалуйста, в выделенные каналы технической поддержки или по адресу cluster-support@vei.ru.