Aller au contenu principal

Suivre et contrôler ses jobs SLURM

Le suivi d'un job permet de vérifier son état, sa durée, ses ressources et ses éventuels messages d'erreur. Utilisez l'identifiant du job renvoyé par sbatch, srun ou Open OnDemand.

Voir ses jobs​

Afficher les jobs en cours ou en attente :

squeue -u "$USER"

Afficher une vue plus détaillée :

squeue -u "$USER" \
-o "%.18i %.9P %.24j %.8T %.10M %.10l %.6D %R"

Afficher tous les jobs d'un utilisateur :

squeue -u <identifiant>

Comprendre les états​

CodeÉtatSignification
PDPENDINGJob en attente
RRUNNINGJob en cours
CGCOMPLETINGJob en finalisation
CDCOMPLETEDJob terminé avec succès
FFAILEDJob terminé avec une erreur
CACANCELLEDJob annulé
TOTIMEOUTDurée maximale atteinte
OOM—Mémoire dépassée
NFNODE_FAILDéfaillance d'un nœud

Comprendre l'attente​

Pour voir la raison d'attente :

squeue -j <job_id> \
-o "%.18i %.9P %.20j %.8T %.10M %.10l %.6D %R"

Raisons courantes :

  • ressources occupées ;
  • priorité insuffisante ;
  • quota ou limite du projet ;
  • durée ou ressources difficiles à placer ;
  • dépendance non satisfaite ;
  • partition indisponible.

Afficher les détails d'un job​

scontrol show job <job_id>

Cette commande affiche notamment :

  • la partition ;
  • le compte ;
  • les ressources demandées ;
  • le nœud attribué ;
  • les dates de soumission, début et fin ;
  • les dépendances ;
  • les fichiers de sortie et d'erreur.

Consulter l'historique​

Pour un job terminé :

sacct -j <job_id>

Pour les ressources utilisées :

sacct -j <job_id> \
--format=JobID,JobName,State,ExitCode,Elapsed,AllocCPUS,MaxRSS,AllocTRES

Ces données permettent de comparer les ressources demandées et réellement consommées.

Consulter les logs​

Si le script contient :

#SBATCH --output=logs/%x-%j.out
#SBATCH --error=logs/%x-%j.err

Consultez les fichiers :

less logs/mon-calcul-<job_id>.out
less logs/mon-calcul-<job_id>.err

Pour suivre un fichier pendant l'exécution :

tail -f logs/mon-calcul-<job_id>.out

Annuler un job​

Annuler un job précis :

scancel <job_id>

Annuler tous ses jobs :

scancel -u "$USER"
Vérifiez avant d'annuler plusieurs jobs

La commande scancel -u "$USER" annule tous vos jobs autorisés. Utilisez-la avec prudence.

Annuler une tâche d'un job array :

scancel <job_id>_<array_index>

Contrôler un job en cours​

Afficher le nœud utilisé :

squeue -j <job_id> -o "%.18i %.9P %.20j %.8T %.10M %.10l %.6D %R"

Afficher les détails du nœud :

scontrol show node <nom-du-nœud>

Pour un job GPU, vérifiez le GPU depuis le job ou ses logs :

nvidia-smi

Les outils de mesure disponibles peuvent dépendre des droits et de la configuration du centre.

Job terminé avec erreur​

Vérifiez dans l'ordre :

  1. l'état du job avec sacct ;
  2. le code de sortie ;
  3. le fichier .err ;
  4. le fichier .out ;
  5. les ressources consommées ;
  6. les modules et environnements chargés.

Commandes utiles :

sacct -j <job_id> --starttime=now-1day
scontrol show job <job_id>

Problèmes fréquents​

TIMEOUT​

La durée maximale a été atteinte. Mesurez le temps nécessaire, demandez une durée adaptée ou découpez le traitement.

OUT_OF_MEMORY ou OOM​

La mémoire demandée était insuffisante. Augmentez progressivement --mem, réduisez la taille des lots ou traitez les données par étapes.

FAILED​

Le programme a renvoyé une erreur. Consultez les logs et vérifiez les chemins, modules, paramètres et fichiers d'entrée.

Job toujours en attente​

Vérifiez la raison avec squeue. Une demande trop importante peut être plus difficile à planifier qu'une demande plus modeste.

Open OnDemand​

Depuis Open OnDemand :

  • utilisez Jobs pour voir les sessions ;
  • consultez le statut et le message affiché ;
  • récupérez l'identifiant du job SLURM ;
  • annulez les sessions inutilisées avec l'action proposée.

Fermer l'onglet du navigateur ne garantit pas l'arrêt du job.

Pages associées​