marvel-nccr.slurm

CI Ansible Role Release

Ansible Rola: marvel-nccr.slurm

Rola Ansible, która instalująca menedżera obciążenia slurm na Ubuntu (testowana na 16.04, 18.04 i 20.04).

Uwaga: Ta rola konfiguruje maszynę, na której działa slurm, aby była również węzłem obliczeniowym (zawiera m.in. zdolność do automatycznego wykrywania #CPUs na maszynie, na której jest uruchamiana). Do tej pory rola nie jest zaprojektowana do tworzenia klastra obliczeniowego z wieloma węzłami; w tym celu można wykorzystać narzędzia takie jak https://github.com/elasticluster/elasticluster.

Rola:

  • Instaluje pakiety slurm
  • Ustawia konfigurację slurm (/etc/slurm-llnl/slurm.conf), aby dynamicznie używać odpowiednich zasobów platformy (nazwa hosta, #CPUs itd.), konfigurując jeden węzeł (nazywany $HOSTNAME) i jedną partycję (nazywaną slurm_partition_name).
  • Dodaje skrypt slurm-resources oraz usługę uruchamiającą do automatyzacji inicjacji poprawnych zasobów platformy (wymagane, jeśli tworzy się obraz VM, gdzie instancje mogą mieć różne zasoby)
  • Uruchamia usługi slurm.

Aby sprawdzić, czy usługi działają (zakładając użycie systemd):

$ systemctl --type=service
...
slurmctld.service                  załadowano aktywne działające demon kontrolera Slurm
slurmd.service                     załadowano aktywne działające demon węzła Slurm
...

Aby sprawdzić węzeł/partycję slurm:

$ scontrol show node
$ scontrol show partition

Powinno to odpowiadać zasobom podanym w lscpu.

Aby włączyć/wyłączyć usługę uruchamiającą slurm-resources:

$ systemctl enable slurm-resources

Aby bezpośrednio zmienić konfigurację zasobów slurm, możesz użyć m.in.:

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

To zaktualizuje zasoby zdefiniowane dla węzła, ustawi maksymalnie CPU dla partycji na 2 (niezależnie od dostępnych CPU na węźle) i zrestartuje usługi slurm z zaktualizowaną konfiguracją (jeśli konfiguracja uległa zmianie).

Instalacja

ansible-galaxy install marvel-nccr.slurm

Zmienne roli

Zobacz defaults/main.yml

Przykład Playbooka

- hosts: serwery
  roles:
  - rola: marvel-nccr.slurm

Rozwój i testowanie

Ta rola używa Molecule i Docker do testów.

Po zainstalowaniu Docker:

Sklonuj repozytorium do pakietu o nazwie marvel-nccr.slurm (folder musi być nazwany tak samo jak nazwa w Ansible Galaxy)

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

Następnie uruchom:

pip install -r requirements.txt  # Instalacja molecule
molecule test  # uruchamia testy

lub użyj tox (zobacz tox.ini):

pip install tox
tox

Styl kodu

Styl kodu jest formatowany i sprawdzany z użyciem pre-commit.

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

Wdrożenie

Wdrożenie do Ansible Galaxy jest zautomatyzowane za pomocą GitHub Actions. Po prostu oznacz wydanie jako vX.Y.Z, aby zainicjować proces CI i wydania. Uwaga, wydanie zakończy się powodzeniem tylko wtedy, gdy testy CI przejdą.

Licencja

MIT

Kontakt

Wszelkie pytania dotyczące Quantum Mobile i powiązanych ról ansible prosimy kierować na listę mailingową AiiDA.

O projekcie

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

Zainstaluj
ansible-galaxy install marvel-nccr.slurm
Licencja
other
Pobrania
2k
Właściciel
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation