slurm

CI Ansible Role Release

Ansible Роль: marvel-nccr.slurm

Эта Ansible роль устанавливает slurm менеджер загрузки на Ubuntu (тестировалось на версиях 16.04, 18.04 и 20.04).

Примечание: Эта роль настраивает машину, на которой работает slurm, чтобы она также была вычислительным узлом (поэтому она включает, например, автоматическое обнаружение количества ЦП на машине, на которой запущена). На данный момент роль еще не предназначена для настройки вычислительного кластера с несколькими узлами, для этого посмотрите, например, инструменты, такие как https://github.com/elasticluster/elasticluster.

Роль:

  • Устанавливает пакеты slurm
  • Настраивает конфигурацию slurm (/etc/slurm-llnl/slurm.conf) для динамического использования корректных ресурсов платформы (имя хоста, количество ЦП и т.д.), настраивая один узел (названный $HOSTNAME) и одну партицию (названную slurm_partition_name).
  • Добавляет скрипт slurm-resources и службу запуска для автоматизации инициации правильных ресурсов платформы (необходимо при создании образа ВМ, где экземпляры могут иметь разные ресурсы)
  • Запускает службы slurm.

Чтобы проверить, что службы работают (предполагая использование systemd):

$ systemctl --type=service
...
slurmctld.service                  загружен активен работает Даемон контроллера Slurm
slurmd.service                     загружен активен работает Даемон узла Slurm
...

Чтобы проверить узел/партицию slurm:

$ scontrol show node
$ scontrol show partition

Это должно соответствовать ресурсам, указанным в lscpu.

Чтобы включить/выключить службу старта slurm-resources:

$ systemctl enable slurm-resources

Чтобы изменить ресурсы конфигурации slurm непосредственно, вы можете использовать, например:

$ slurm-resources -e restart_on_change=true -e slurm_max_cpus=2

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

Установка

ansible-galaxy install marvel-nccr.slurm

Переменные роли

Смотрите defaults/main.yml

Пример плейбука

- hosts: servers
  roles:
  - role: marvel-nccr.slurm

Разработка и тестирование

Эта роль использует Molecule и Docker для тестов.

После установки Docker:

Склонируйте репозиторий в пакет с именем marvel-nccr.slurm (папка должна иметь то же имя, что и название в Ansible Galaxy)

git clone https://github.com/marvel-nccr/ansible-role-slurm marvel-nccr.slurm
cd marvel-nccr.slurm

Затем выполните:

pip install -r requirements.txt  # Устанавливает molecule
molecule test  # запускает тесты

или используйте tox (см. tox.ini):

pip install tox
tox

Стиль кода

Стиль кода форматируется и проверяется с помощью pre-commit.

pip install pre-commit
pre-commit run -all

Развертывание

Развертывание в Ansible Galaxy автоматизировано через GitHub Actions. Просто пометьте релиз vX.Y.Z, чтобы инициировать рабочий процесс CI и релиза. Обратите внимание, что релиз завершится только в том случае, если тесты CI пройдут.

Лицензия

MIT

Контакт

Пожалуйста, направляйте запросы касательно Quantum Mobile и сопутствующих Ansible ролей на почтовый список AiiDA.

О проекте

An Ansible role that installs the [slurm](https://slurm.schedmd.com/) workload manager on Ubuntu.

Установить
ansible-galaxy install marvel-nccr/ansible-role-slurm
Лицензия
other
Загрузки
2025
Владелец
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation