Ceci est une ancienne révision du document !
Cet article est une introduction à slurm, l'ordonnanceur de travaux (jobs) sur CALI. Vous trouverez les recettes pratiques pour commencer à travailler sur CALI :
Sur un cluster de calcul, vous ne travaillez pas comme sur votre PC personnel. Vous ne pouvez pas lancer un programme inter-actif qui utiliserait immédiatement les ressources du cluster.
Pour exécuter un programme, vous devez le soumettre à l’ordonnanceur (scheduler). Le logiciel utilisé comme ordonnanceur sur notre cluster est slurm. Il exécutera votre programme (job) en différé, quand les ressources (CPU, mémoire) nécessaires à votre travail seront disponibles “quelque part” dans le cluster, sur un des nœuds dédiés aux calculs.
Préparez un fichier texte qui décrit :
Ensuite, la commande sbatch
permet de soumettre le fichier batch, autrement dit de créer un job slurm qui sera exécuté dès que les ressources demandées seront disponibles.
Un éléments est primordial quand vous soumettez un job : la partition
Vous pourrez par la suite consulter la liste complète des partitions et QoS utilisables, ou la page utilisation des noeuds GPU. Nous présentons ci-après les choix les plus usuels.
Utilisez partition=rapide
Utilisez partition=24h
Ce premier exemple est adapté pour un programme séquentiel, qui n'utilise qu'un seul processus sans threads (processus léger).
Nous créons un fichier texte mon_programme.batch
:
#!/bin/bash #SBATCH --partition=rapide #SBATCH --ntasks=1 #SBATCH --mem-per-cpu=100 #SBATCH --time=00:30:00 ./mon_programme
Ensuite, on indique à slurm que l'on veut lancer ce job :
sbatch mon_programme.batch
Les lignes #SBATCH
sont des options pour la commande sbatch
(et considérées comme des commentaires pour le shell – elles commencent avec #
).
--partition=rapide
et --qos=rapide
sélectionnent la partition et la qos--ntasks=1
donne le nombre de processus--mem-per-cpu=100
donne la quantité de mémoire en Mo pour chaque CPU. Le job sera tué si la quantité consommée excède la valeur demandée--time=00:30:00
donne la durée maximale du job, au format JOUR-HH:MM:SS . Le job sera tué si la quantité consommée excède la valeur demandée
Par défaut, les sorties standards et d'erreur sont redirigés vers le fichier slurm-<JOB_ID>.out
Voir tous les jobs dans la file :
squeue -l
scancel <JOB_ID>
Consultez le contenu de la rubrique dédiée à slurm