Sommaire
SLURM : the Simple Linux Utility for Resource Management
Slurm est un gestionnaire de ressources et un système d'ordonnancement de jobs Open Source (GPL), tolérant aux pannes, qui convient aussi bien aux clusters Linux de faibles et moyennes tailles comme Summit2 qu'aux clusters de très grandes tailles (> 65000 nœuds) disponibles sur les centres nationaux ou internationaux. Il a été développé à l'origine par une équipe du Lawrence Livermore National Laboratory (LLNL) assisté par HP et BULL et supporté par IBM et Sun. Pour plus de renseignements, n'hésitez pas à consulter les pages de documentation de leur site Web :
https://slurm.schedmd.com/archive/slurm-18.08.7/ pour la version installée sur Summit2
https://slurm.schedmd.com/documentation.html pour la documentation officielle.
1. Rôle du gestionnaire de ressource Slurm
La fonction du gestionnaire de ressource Slurm est triple :
- Il alloue l'accès aux ressources (nœuds/cpus) à l'utilisateur pour une durée donnée.
- Il fournit les outils pour démarrer, exécuter et superviser le travail sur les nœuds alloués.
- Il arbitre l'accès aux ressources en maintenant une file de jobs en attente d'exécution (FIFO + Backfill)
Pour son fonctionnement, Slurm s'appuie principalement sur 2 démons (programmes qui s'exécutent en tâche de fond) :
slurmctld : un gestionnaire centralisé, présent sur la frontale utlisateur Summit2 qui monitore les ressources et le travail.
slurmd : présent sur tous les nœuds de calcul et comparable à un shell qui s'occupe d'attendre un travail, de l'exécuter, de retourner son statut puis de se remettre en attente.
2. Entités manipulées par Slurm
- Nœud : ressource de calcul
- Partition : regroupement logique de nœuds sur lequel on applique des limites (temps, taille de jobs, groupes users autorisés, etc.)
- Job : ressource allouée au sein d'une partition (jusqu'au cpu/cœur)
- Jobstep : ensemble de tâches au sein du job
3. Commandes Slurm usuelles
En tant qu'utilisateur, vous devez connaître ces 6 commandes Slurm :
sinfo |
Informations sur les entités manipulées (nœuds, partitions, jobs) |
salloc |
Allocation de ressources; exécution, soumission et destruction de jobs |
