marvel-nccr.slurm

CI Ansible Role Release

Rôle Ansible : marvel-nccr.slurm

Un rôle Ansible qui installe le gestionnaire de charge de travail slurm sur Ubuntu (testé sur 16.04, 18.04 et 20.04).

Remarque : Ce rôle configure la machine sur laquelle slurm est exécuté pour également être le nœud de calcul (il contient donc, par exemple, une certaine capacité d'autodétection autour du nombre de CPU sur la machine où il est exécuté). Jusqu'à présent, le rôle n'est pas encore conçu pour configurer un cluster de calcul avec plusieurs nœuds. Pour cela, voir par exemple des outils comme https://github.com/elasticluster/elasticluster.

Le rôle :

  • Installe les paquets slurm
  • Configure le fichier de configuration slurm (/etc/slurm-llnl/slurm.conf) pour utiliser dynamiquement les ressources de la plateforme (nom d'hôte, nombre de CPU, etc.), configurant un nœud (nommé $HOSTNAME) et une partition (nommée slurm_partition_name).
  • Ajoute un script slurm-resources et un service de démarrage pour automatiser l'initialisation des ressources de plateforme correctes (nécessaire si la création d'une image de VM où les instances peuvent avoir des ressources différentes).
  • Démarre les services slurm.

Pour vérifier que les services sont en cours d'exécution (en supposant que systemd est utilisé) :

$ systemctl --type=service
...
slurmctld.service                  chargé actif en cours d'exécution Démon contrôleur Slurm
slurmd.service                     chargé actif en cours d'exécution Démon nœud Slurm
...

Pour vérifier le nœud/partition slurm :

$ scontrol show node
$ scontrol show partition

Cela devrait correspondre aux ressources indiquées dans lscpu.

Pour activer/désactiver le service de démarrage slurm-resources :

$ systemctl enable slurm-resources

Pour modifier la configuration des ressources de slurm directement, vous pouvez utiliser par exemple :

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

Cela mettra à jour les ressources définies pour le nœud, fixera le nombre maximal de CPU pour la partition à 2 (indépendamment des CPU disponibles sur le nœud), et redémarrera les services slurm avec la nouvelle configuration (si la configuration a changé).

Installation

ansible-galaxy install marvel-nccr.slurm

Variables du Rôle

Voir defaults/main.yml

Exemple de Playbook

- hosts: serveurs
  roles:
  - rôle: marvel-nccr.slurm

Développement et tests

Ce rôle utilise Molecule et Docker pour les tests.

Après avoir installé Docker :

Clonez le dépôt dans un package nommé marvel-nccr.slurm (le dossier doit avoir le même nom que celui d'Ansible Galaxy)

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

Ensuite, exécutez :

pip install -r requirements.txt  # Installe molecule
molecule test  # exécute les tests

ou utilisez tox (voir tox.ini) :

pip install tox
tox

Style de code

Le style de code est formaté et vérifié avec pre-commit.

pip install pre-commit
pre-commit run --all

Déploiement

Le déploiement sur Ansible Galaxy est automatisé via GitHub Actions. Il suffit de taguer une version vX.Y.Z pour initier le flux de travail CI et de publication. Notez que la publication ne sera terminée que si les tests CI passent.

Licence

MIT

Contact

Veuillez diriger vos demandes concernant Quantum Mobile et les rôles ansible associés vers la liste de diffusion AiiDA.

À propos du projet

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

Installer
ansible-galaxy install marvel-nccr.slurm
Licence
other
Téléchargements
2k
Propriétaire
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation