Bohr User Documentation

Содержание

Общая схема кластера
Мониторинг
Основные полезные команды
Структура файловой системы
Cкрипты для постановки задач
Волшебные файлы
Специфичные скрипты и утилиты

Общая схема кластера

Кластер состоит из управляющей ноды (bohr, mr.kinetics.nsc.ru) и десяти расчётных нод. Ключевые аспекты нод выделены жирным.

Расчётные ноды сгруппированы в соответствующие очереди:

Очередь Узлы
heisenberg heisenberg
schroedinger schroedinger
pauli pauli
pople pople
fermi fermi
kohn kohn
dirac dirac
HF hartree, fock
roos roos
BO born, oppenheimer

Для временных расчётных файлов выделено сетевое хранилище (scratch) на основе ФС Lustre, доступное с любой расчётной ноды, а также смонтированное в /scratch_sas. Полный объём скрэтча составляет 6.5 Тб.

На новых узлах (все, кроме HF и slaters) также есть локальное хранилище на базе NVMe SSD. Доступ к его содержимому осуществляется через SSH-сессию на расчётные узлы.

[1]Здесь и далее под "процессором" имеется в виду виртуальное процессорное ядро

Мониторинг

Помимо собственно кластера у нас есть внешняя система мониторинга на базе Ganglia и Grafana. В неё выводятся графики температуры и влажности в серверной, загрузка процессоров каждой отдельной ноды и потребление памяти.

https://bohr.useless.tk/grafana -- температура и влажность в 308 комнате

https://bohr.useless.tk/nodes -- прямая ссылка на страницу мониторинга отдельных узлов

Основные полезные команды

Очереди

  • sinfo — универсальный инструмент для запроса состояния системы очередей. Подробнее — man sinfo.
  • nodes — эквивалент sinfo -N -o "%12N %8t %8e %14C %8O %10R" — выводит краткую сводку состояния вычислительных узлов. По колонкам:
  • Имя ноды
  • текущее состояние
idle:свободна
alloc:полностью занята
mix:частично занята
drain:отключена из очереди на обслуживание
down:выключена
  • свободная память в мегабайтах
  • состояние процессоров: (Allocated/Idle/Other/Total) — Занятые/Свободные/Резервированные/Все
  • имя соответствующей очередиa
  • Nodes — расширенная версия nodes
  • qstat — вывод состояния очереди: для каждой задачи отображается номер, название, пользователь, время выполнения, статус и очередь. Статусы:
Q:ожидает исполнения
R:выполняется
C:закончилась, вскоре будет удалена из очереди
H:задержана пользователем
  • squeue — более новая версия qstat. Позволяет более тонкую настройку, подробно описанную в man squeue.
  • lqstat — алиас для длинного вывода состояния задач. Работает через squeue. Использует свой набор статусов.
PD:Pending. Ждёт в очереди
R:Running. Выполяется.
CA:Cancelled. Отменена.
CG:Completing. Завершается.
CD:Completed. Завершилась. Скоро исчезнет из очереди.
F:Failed. Завершилась неудачно.
TO:Timeout. Убита по истечению walltime. Стандартный walltime на нашем кластере составляет 2016 часов.
NF:Node fail. Погибла вместе с вычислительным узлом.
S:Suspended. Приостановлена
CF, BF, PR, SE, ST:
 Не должны проявляться в наших условиях
  • qdel <id> — удалить из очереди задачу номер id.
  • scontrol - швейцарский нож для SLURM. Умеет кучу прекрасных вещей, но в нашем случае интересен в двух аспектах:
scontrol show node <nodename>:
 Выводит всю информацию по состоянию ноды
scontrol show job <job_id>:
 Выводит состояние задачи, включая причину ожидания в очереди.

Работа в *nix-системах

  • mc — FAR-образный файловый менеджер.

  • mcedit — простой текстовый редактор.

  • du — disk usage. Рассчитывает размер папки на кластере со всем содержимым. Наиболее удобна в форме du -sh, когда измеряет реальный размер и выводит его в человекочитаемых единицах измерения. Также полезна конструкция du -sh | sort -h, сортирующая вывод по размеру.

  • export - устанавливает переменную окружения. Переменные окружения могут использоваться различными программами и скриптами для получения настроек. Для просмотра значения переменной VAR можно использовать конструкцию echo $VAR.

    Некоторые стандартные переменные:

    VISUAL текстовый редактор по умолчанию
    PATH пути к исполняемым файлам
    HOME домашняя папка
    USER имя пользователя

    Примеры:

    export PATH=/opt/orca4:$PATH Добавляет путь к файлам Orca 4 в пути поиска
    export VISUAL=mcedit Устанавливает mcedit как стандартный текстовый редактор

    Переменные окружения устанавливаются только на время текущей сессии. Для перманентных настроек следует использовать файл $HOME/.bashrc. (см. Волшебные файлы)

  • tail - вывести последние строки файла. Имеет две полезные опции

-n N вывести последние N строк
-f Следить за файлом и выводить содержимое по мере изменения.
  • history N - вывести последние N выполненных команд.
  • grep <паттерн> <файлы> - вывести из файлов только строки, содержащие паттерн
  • ssh <node> - открыть удалённую сессию на узел node. Если вы не используете ssh-ключи, это действие запросит ваш пароль. Закрытие сессии производится командой logout или нажатием Ctrl-D.

Чятик

При логине на кластер выводится содержимое публичной доски объявлений. Запись на доску открыта всем; осуществляется командой say. Например:

# say Это пробное сообщение

добавляет на доску датированное сообщение от вашего имени. Полную историю доски можно прочитать в файле /home/common/motd.public, например, утилитой less.

N.B. Не стоит злоупотреблять доской для переписки. Её содержимое будет выводиться всем и неоднократно.


Структура файловой системы

Файловая система кластера устроена довольно нетривиально.


Cкрипты для постановки задач

Все скрипты для постановки задач понимают следующие ключи

-h вывод краткой справки
-c не удалять временный файл задачи .job
-d сгенерировать временный файл, но не ставить его в очередь. Полезен при диагностике проблем
-q <очередь> выбор очереди
-e перед постановкой в очередь открыть файл задачи в текстовом редакторе. Для использования в вашем файле .profile должна присутствовать строка export VISUAL=<название текстового редактора>. Доступны варианты vim, nano и mcedit.
-s использовать SSD-скрэтч (при наличии).
-S Отладочный ключ — записывает протокол системных вызовов при работе.
-n <N> использовать N процессорных ядер при расчёте
-x задействовать упрощённую модель распараллеливания
-m <megabytes> задаёт требуемый объём памяти в мегабайтах. По умолчанию — 10 Гб.
-u Вместо OpenMolcas использовать сборку MolCAS@UU 8.0
-O Вместо OpenMolcas использовать сборку MolCAS 8.0

Волшебные файлы

Эти файлы лежат в вашей домашней директории (~) и являются скрытыми, то есть не будут показаны командой ls. Для просмотра скрытых файлов используйте команду ls -A.


Специфичные скрипты и утилиты

Spack

Серьёзная часть вспомогательного софта на кластере установлена через менеджер Spack (https://spack.readthedocs.io). Подгрузить системную версию Spack себе в окружение командной строки можно командой load_spack16, это позволит вам использовать все общесистемно установленные библиотеки. Краткая сводка полезных команд.

  • spack find foobar -- найти установленный пакет foobar. Наиболее полезна в форме spack find -lpv foobar, это включает вывод всех подвариантов пакета и пути к месту установки
  • spack load foobar/hash -- подгрузить версию hash пакета foobar. Список возможных версий можно посмотреть через spack find -lpv
  • spack unload foobar -- обратная процедура выгрузки пакета
  • spack help -- краткая справка.

Установка софта через Spack на кластере заблокирована, при наличии необходимости вы можете завести себе персональную копию с возможность установки.