slurm
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