marvel-nccr.slurm

CI Ansible Role Release

Rol de Ansible: marvel-nccr.slurm

Una rol de Ansible que instala el gestor de carga de trabajo slurm en Ubuntu (probado en 16.04, 18.04 y 20.04).

Nota: Esta rol configura la máquina en la que se ejecuta slurm para que también sea el nodo de computación (por lo tanto, contiene, por ejemplo, alguna capacidad de autodetección sobre #CPUs en la máquina donde se ejecuta). Hasta ahora, la rol no está diseñada para configurar un clúster de computación con múltiples nodos; para esto, consulte herramientas como https://github.com/elasticluster/elasticluster.

La rol:

  • Instala los paquetes de slurm
  • Configura la configuración de slurm (/etc/slurm-llnl/slurm.conf) para utilizar dinámicamente los recursos de plataforma correctos (nombre de host, #CPUs, etc.), configurando un nodo (llamado $HOSTNAME) y una partición (llamada slurm_partition_name).
  • Agrega un script slurm-resources y un servicio de inicio para automatizar la iniciación de los recursos de plataforma correctos (requerido si se crea una imagen de VM donde las instancias pueden tener recursos diferentes)
  • Inicia los servicios de slurm.

Para verificar que los servicios están en funcionamiento (suponiendo que se usa systemd):

$ systemctl --type=service
...
slurmctld.service                  loaded active running Daemon de control de Slurm
slurmd.service                     loaded active running Daemon de nodo de Slurm
...

Para verificar el nodo/partición de slurm:

$ scontrol show node
$ scontrol show partition

Esto debería coincidir con los recursos dados en lscpu.

Para habilitar/deshabilitar el servicio de inicio slurm-resources:

$ systemctl enable slurm-resources

Para alterar la configuración de recursos de slurm directamente, puedes usar, por ejemplo:

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

Esto actualizará los recursos definidos para el nodo, establecerá la cantidad máxima de CPUs para la partición a 2 (independientemente de los CPUs disponibles en el nodo) y reiniciará los servicios de slurm con la configuración actualizada (si ha cambiado la configuración).

Instalación

ansible-galaxy install marvel-nccr.slurm

Variables de Rol

Consulta defaults/main.yml

Ejemplo de Playbook

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

Desarrollo y pruebas

Esta rol utiliza Molecule y Docker para las pruebas.

Después de instalar Docker:

Clona el repositorio en un paquete llamado marvel-nccr.slurm (la carpeta debe llamarse igual que el nombre en Ansible Galaxy)

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

Luego ejecuta:

pip install -r requirements.txt  # Instala molecule
molecule test  # ejecuta pruebas

o utiliza tox (consulta tox.ini):

pip install tox
tox

Estilo de código

El estilo de código se formatea y se revisa con pre-commit.

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

Despliegue

El despliegue en Ansible Galaxy está automatizado a través de GitHub Actions. Simplemente etiqueta una versión como vX.Y.Z para iniciar el flujo de trabajo de CI y liberación. Nota, la liberación solo se completará si las pruebas de CI pasan.

Licencia

MIT

Contacto

Por favor dirija las consultas sobre Quantum Mobile y las roles de ansible asociadas a la lista de correo de AiiDA.

Acerca del proyecto

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

Instalar
ansible-galaxy install marvel-nccr.slurm
Licencia
other
Descargas
2k
Propietario
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation