Gestionnaire de calcul SLURM

Un gestionnaire de calcul SLURM est un logiciel utilisé pour la gestion des ressources de calcul dans un environnement de calcul distribué ou de cluster.

Voici quelques-unes des fonctionnalités principales :

  • Allocation de ressources: elles que les nœuds de calcul, les cœurs de processeur, la mémoire…
  • Ordonnancement: Il ordonne les tâches en fonction de divers critères tels que la priorité.
  • Suivi des ressources: SLURM surveille l'utilisation des ressources= la disponibilité.
  • Gestion des files d'attente: il gère les files d'attente des tâches en attente d'exécution, de manière équitable et efficace.
  • Contrôle d'accès: Il assure la sécurité en contrôlant l'accès aux ressources de calcul.
  • Équilibrage de charge: Il répartit les tâches de manière équilibrée sur les nœuds de calcul disponibles, optimisant ainsi l'utilisation des ressources.

Les commandes SLURM

  • salloc : est utilisé se pour allouer des ressources en mode interactif.
  • sbatch : est utilise pour soumettre un script batch.
  • scancel : est utilise pour annuler un calcul quelque soi son état avancement.
  • Squeue : permet de consulter la list des jobs en mode attente et en cours d’exécution.
  • srun : est utilise pour démarrer un job interactif .
  • sview : est une interface utilisateur graphique permettant d'obtenir et de mettre à jour les informations d'état des tâches, des partitions et des nœuds gérés par Slurm .
  • sinfo : rapporte l'état des partitions et des nœuds gérés par Slurm. Il propose une grande variété d’options de filtrage, de tri et de formatage .
  • scontrol : Permet d'afficher et/ou de modifier l'état de Slurm, avec des restrictions pour les utilisateurs non root .

Soumission d’un job

Pour la répartition des jobs sur les partitions d'un cluster Slurm, il existe deux commandes principales :

  • Sbatch : Définir le job dans un script et le lancer à l’aide de la commande (solution conseillée).
  • srun : est utilise pour démarrer un job interactif .

              
                
              
            
              
                
              
            

Suivi des jobs

squeue affiche la liste des jobs en cours et en attente

squeue -u < user > affiche les jobs en cours et en attente pour l'utilisateur user

squeue -p < nomPart > affiche les jobs en cours et en attente pour la partition demandée

squeue -i < sec > actualise la liste des jobs en cours toutes les secondes

Suppression d'un job :

scancel < jobID > supprime le job < jobID > (en cours ou en attente)

scancel -u < user > supprime les jobs de l'utilisateur < user > (en cours ou en attente)

Informations sur l'état d'un job:

  • sacct: affiche l'état des jobs de l'utilisateur qu'ils soient en cours ou déjà terminés :
  • CA: cancelled : le job a été annulé par l'utilisateur ou l'administrateur .
  • CD: completed : le job s'est terminé avec succès .
  • CG: completing : job en cours.
  • F: failed : le job s'est terminé avec un échec.
  • PD: pending : le job attend des ressources.
  • R: timeout : le job s'est terminé car il a atteint son temps d'exécution limite.
  • scontrol show job: < jobID > donne des informations détaillées sur le job < jobID > (en cours).

Exemple de soumission d'un job en utilisant un script et en mode interactif :

Créer le script de soumission du job :

              
                
              
              

Soumettre le job avec le script : sbatch nom_du_script.sh

En mode interactif :