marvel-nccr.slurm

CI Ansible Rolle Version

Ansible Rolle: marvel-nccr.slurm

Eine Ansible Rolle, die den slurm Job-Manager auf Ubuntu installiert (getestet auf 16.04, 18.04 und 20.04).

Hinweis: Diese Rolle konfiguriert die Maschine, auf der Slurm läuft, auch als Rechenknoten (sie enthält z.B. eine Autodetektion für die #CPUs auf der Maschine, auf der sie ausgeführt wird). Bisher ist die Rolle nicht dafür ausgelegt, ein Cluster mit mehreren Rechenknoten einzurichten. Dafür können Tools wie https://github.com/elasticluster/elasticluster verwendet werden.

Die Rolle:

  • Installiert die Slurm-Pakete
  • Richtet die Slurm-Konfiguration (/etc/slurm-llnl/slurm.conf) ein, um dynamisch die richtigen Plattformressourcen (Hostname, #CPUs usw.) zu nutzen, und konfiguriert einen Knoten (genannt $HOSTNAME) und eine Partition (genannt slurm_partition_name).
  • Fügt ein Skript slurm-resources und einen Startdienst hinzu, um die Initiierung der richtigen Plattformressourcen zu automatisieren (notwendig, wenn ein VM-Image erstellt wird, bei dem Instanzen unterschiedliche Ressourcen haben können).
  • Startet die Slurm-Dienste.

Um zu überprüfen, ob die Dienste laufen (unter der Annahme, dass systemd verwendet wird):

$ systemctl --type=service
...
slurmctld.service                  geladen aktiv laufend Slurm-Controller-Daemon
slurmd.service                     geladen aktiv laufend Slurm-Knoten-Daemon
...

Um den Slurm-Knoten/die Partition zu überprüfen:

$ scontrol show node
$ scontrol show partition

Dies sollte mit den in lscpu angegebenen Ressourcen übereinstimmen.

Um den Startdienst slurm-resources zu aktivieren/deaktivieren:

$ systemctl enable slurm-resources

Um die Ressourcen-Konfiguration von Slurm direkt zu ändern, können Sie z.B. Folgendes verwenden:

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

Dies aktualisiert die für den Knoten definierten Ressourcen, setzt die maximalen CPUs für die Partition auf 2 (unabhängig von den verfügbaren CPUs auf dem Knoten) und startet die Slurm-Dienste mit der aktualisierten Konfiguration neu (wenn sich die Konfiguration geändert hat).

Installation

ansible-galaxy install marvel-nccr.slurm

Rollenvariablen

Siehe defaults/main.yml

Beispiel-Playbook

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

Entwicklung und Test

Diese Rolle verwendet Molecule und Docker für Tests.

Nachdem Sie Docker installiert haben:

Klonen Sie das Repository in ein Paket mit dem Namen marvel-nccr.slurm (der Ordner muss den gleichen Namen wie der Ansible Galaxy-Name haben)

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

Führen Sie dann Folgendes aus:

pip install -r requirements.txt  # Installiert Molecule
molecule test  # führt Tests aus

oder verwenden Sie tox (siehe tox.ini):

pip install tox
tox

Code-Stil

Der Code-Stil wird mit pre-commit formatiert und überprüft.

pip install pre-commit
pre-commit run -all

Bereitstellung

Die Bereitstellung an Ansible Galaxy erfolgt automatisch über GitHub Actions. Tagsen Sie einfach eine Version vX.Y.Z, um den CI- und Release-Workflow zu starten. Hinweis: Die Veröffentlichung wird nur abgeschlossen, wenn die CI-Tests bestanden sind.

Lizenz

MIT

Kontakt

Bitte richten Sie Anfragen zu Quantum Mobile und zugehörigen Ansible-Rollen an die AiiDA Mailingliste.

Über das Projekt

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

Installieren
ansible-galaxy install marvel-nccr.slurm
GitHub Repository
Lizenz
other
Downloads
2k
Besitzer
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation