| Общая схема кластера |
| Мониторинг |
| Основные полезные команды |
| Структура файловой системы |
| 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 -- прямая ссылка на страницу мониторинга отдельных узлов
- Имя ноды
- текущее состояние
idle: свободна alloc: полностью занята mix: частично занята drain: отключена из очереди на обслуживание down: выключена
- свободная память в мегабайтах
- состояние процессоров: (Allocated/Idle/Other/Total) — Занятые/Свободные/Резервированные/Все
- имя соответствующей очередиa
Q: ожидает исполнения R: выполняется C: закончилась, вскоре будет удалена из очереди H: задержана пользователем
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: Не должны проявляться в наших условиях
scontrol show node <nodename>: Выводит всю информацию по состоянию ноды scontrol show job <job_id>: Выводит состояние задачи, включая причину ожидания в очереди.
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 | Следить за файлом и выводить содержимое по мере изменения. |
При логине на кластер выводится содержимое публичной доски объявлений. Запись на доску открыта всем; осуществляется командой say. Например:
# say Это пробное сообщение
добавляет на доску датированное сообщение от вашего имени. Полную историю доски можно прочитать в файле /home/common/motd.public, например, утилитой less.
N.B. Не стоит злоупотреблять доской для переписки. Её содержимое будет выводиться всем и неоднократно.
Файловая система кластера устроена довольно нетривиально.
/home - домашние директории всех пользователей. Физически расположена на управляющем узле, доступна на чтение и запись с любого узла. Место на этой ФС ограничено, рекомендуется периодически чистить свою домашнюю директорию.
/opt - каталог установленных расчётных пакетов.
/scratch_sas - распределённая файловая система Lustre, на которую пишутся временные файлы расчётов. Смонтирована на все узлы. Файлы вашего расчёта, скорее всего, лежат в пути /scratch_sas/$USER/<имя задачи>.files. Файлы расчётов, которые не изменялись в течение месяца, удаляются автоматически.
/scratch_slow - отдельная файловая система, собранная из медленных дисков, доступная только на узле roos. Используется автоматически при использовании скрипта qmolcas. Чтобы добыть с неё файлы, необходимо зайти на узел roos и скопировать файлы вручную. Пример работы:
[gorbunov@bohr ~]$ ssh roos [gorbunov@roos ~]$ cp -r /scratch_slow/gorbunov/foobar.files/ /home/gorbunov/ <Ctrl-D> [gorbunov@roos ~]$ logout Connection to roos closed.
/scratch_nvme - быстрые локальные файловые система, доступные только на новых узлах. Используется при указании ключа -s скриптов qgauss16, qorca4 и qmolpro. Доступны аналогично примеру выше.
Все скрипты для постановки задач понимают следующие ключи
| -h | вывод краткой справки |
| -c | не удалять временный файл задачи .job |
| -d | сгенерировать временный файл, но не ставить его в очередь. Полезен при диагностике проблем |
| -q <очередь> | выбор очереди |
| -e | перед постановкой в очередь открыть файл задачи в текстовом редакторе. Для использования в вашем файле .profile должна присутствовать строка export VISUAL=<название текстового редактора>. Доступны варианты vim, nano и mcedit. |
| -s | использовать SSD-скрэтч (при наличии). |
qorca3 ставит в очередь задачу пакета Orca версии 3.0.3. Количество процессоров и необходимой памяти извлекается из входного файла, пути к внешним файлам проверяются на доступность.
qorca4 ставит в очередь задачу пакета Orca версии 4.0.1.2. Требуемые ресурсы извлекаются аналогично.
qorca421 - ставит в очередь задачу пакета Orca версии 4.2.1. Аналогичен qorca4
qorca5 — ставит в очередь задачу Orca 5.0.4
| -T | Создать параллельно к .out выходной файл .tsout, в котором каждая строка аннотирована временем написания. |
qgauss09 — ставит в очередь задачу пакета Gaussian09 версии D1. Извлекает из входного файла формата .gjf требуемые ресурсы. Поддерживает дополнительные ключи
-S Отладочный ключ — записывает протокол системных вызовов при работе.
-n <N> использовать N процессорных ядер при расчёте -x задействовать упрощённую модель распараллеливания
-m <megabytes> задаёт требуемый объём памяти в мегабайтах. По умолчанию — 10 Гб. -u Вместо OpenMolcas использовать сборку MolCAS@UU 8.0 -O Вместо OpenMolcas использовать сборку MolCAS 8.0
Эти файлы лежат в вашей домашней директории (~) и являются скрытыми, то есть не будут показаны командой ls. Для просмотра скрытых файлов используйте команду ls -A.
Серьёзная часть вспомогательного софта на кластере установлена через менеджер Spack (https://spack.readthedocs.io). Подгрузить системную версию Spack себе в окружение командной строки можно командой load_spack16, это позволит вам использовать все общесистемно установленные библиотеки. Краткая сводка полезных команд.
Установка софта через Spack на кластере заблокирована, при наличии необходимости вы можете завести себе персональную копию с возможность установки.