Prise en compte de l’historique
L’ordre d’exécution des jobs en file d’attente est déterminé selon un système de priorités. Sont pris en compte 3 paramètres :
- La durée depuis laquelle votre job est en attente.
- L’historique récent de l’utilisateur et des autres membres de son projet (fairshare).
- Les ressources demandées pour ce job (nœuds et durée du job).
La commande squeue liste vos jobs en attente en partant du plus prioritaire.
La priorité d’un job s’exprime sous la forme d’une valeur entre 0 et 1. Cette valeur est définie en prenant en compte les 3 paramètres énoncés précédemment, qui ont chacun un poids défini. Plus la valeur est proche de 1, plus le job sera prioritaire. Pour connaître la priorité de vos jobs en attente, utilisez la commande :
sprio -n
Pour comparer les priorités entre différents jobs (ici 10345 et 10346) :
sprio -n --jobs=10345,10346
Pour connaître la valeur de votre fairshare actuel et celle de votre account Slurm (prenant donc en compte le fairshare de vos collègues) :
sshare -A nom_de_votre_account
Si votre fairshare a une valeur faible (colonne FairShare), sachez que celle-ci augmentera si vous ne soumettez pas de job pendant plusieurs jours.
Files basse priorité
Certaines machines, financées par un laboratoire ou une entreprise, sont aussi disponibles pour l’ensemble des utilisateurs mais avec une priorité plus faible. Cela signifie que si des jobs sont en attente (état Pending dans Slurm) d’un même type de nœud, celui envoyé sur une file prioritaire sera exécuté avant les autres. La préemption de job n’est pas appliquée sur le cluster, c’est-à-dire qu’aucun job en cours d’exécution ne sera arrêté pour céder sa place à un job soumis sur une file plus prioritaire.
A100 dans la file gpu
Afin de spécifier explicitement que vous voulez utiliser une carte A100, mentionnez l’option Slurm suivante :
#SBATCH --gres=gpu:a100:1
#SBATCH --partition=gpu
Les demandes d’utilisation de GPU A100 sont non prioritaires. S’il n’y a aucun A100 libre au moment où vous envoyez votre job, sachez que celui-ci pourra rester potentiellement longtemps en file d’attente car d’autres utilisateurs sont prioritaires. Il est donc conseillé de vérifier au préalable l’état du nœud gpu03 (équipé des A100). Pour cela :
sinfo --Format Partition,NodeList,NodeAI,CPUsState -p gpu
Si l’état CPUS(A) = 12 ou plus et NODES(A)=3, les GPUs sont tous occupés.
Si vous ne précisez pas le type de GPU souhaité, votre job pourra être traité soit sur une V100, soit sur une A100, selon les disponibilités :
#SBATCH --gres=gpu:1
#SBATCH --partition=gpu
D’autres informations concernant les jobs de type GPU sont disponibles sur cette page.