Suivi des jobs¶
La commande qstat¶
Vous pouvez consulter l’état de vos jobs en attente ou en cours d’exécution avec la commande qstat
. Vous obtenez des informations sur l’état actuel de votre job :
job-ID prior name user state submit/start at queue slots ja-task-
-------------------------------------------------------------------------------
5947764 0.00000 hello_worl login qw 09/31/2019 16:22:23 1
Ici, le job est en attente (statut qw
: queued and waiting). Les statuts les plus courants sont :
r : running (job en exécution)
Rr : running, re-submit (job en exécution qui a été relancé)
qw : queued and waiting (job en attente)
Eqw : queues and waiting with error (job en erreur en attente)
Les autres statuts possibles sont listés ici :
Category | State | GE Letter Code |
---|---|---|
Pending | pending | qw |
pending, user hold | hqw | |
pending, system hold | hqw | |
pending, user and system hold | hqw | |
pending, user hold, re-queue | hRwq | |
pending, system hold, re-queue | hRwq | |
pending, user and system hold, re-queue | hRwq | |
Running | running | r |
transferring | t | |
running, re-submit | Rr | |
queued, re-submit | Rq | |
transferring, re-submit | Rt | |
Suspended | job suspended | s, ts |
queue suspended | S, tS | |
queue suspended by alarm | T, tT | |
all suspended with re-submit | Rs, Rts, RS, RtS, RT, RtT | |
Error | all pending states with errors | Eqw, Ehqw, EhRqw |
Deleted | all running and suspended states with deletion | dr, dt, dRr, dRt, ds, dS, dT, dRs, dRS, dRT |
La commande qstat
comporte plusieurs options qui peuvent être utiles :
-s <p|r|s>
- affiche les jobs se trouvant dans un état spécifique (“p” pour pending, “r” pour running, et “s” pour suspended).
-u <@groupname>
- affiche les jobs d’un groupe
-j <jobid>
- affiche des informations détaillées sur un job particulier
-nenv
- réduit la verbosité
-r
- affiche des informations sur les ressources demandées par un job
-ext
- affiche d’autres informations supplémentaires sur les jobs
Pour connaitre toutes les options possibles, voir :
% man qstat
Commandes utiles¶
Vérifier pourquoi votre job reste en attente¶
Si votre job reste en queue trop longtemps, vous pouvez utiliser la commande check_waiting_job
pour en comprendre la raison :
% check_waiting_job -j <jobid>
S’il y a un problème dans votre soumission, la commande affichera alors un message d’erreur.
La commande vérifie :
- si vous avez été bloqué ou que vos ressources sont limitées : demandez de l’aide au Support Utilisateur
% check_waiting_job -j 12345 -v
DEBUG verbosity turned on
ERROR User <user> or group <group> locked
- si les ressources demandées ne dépassent pas les limites fixées pour la queue demandée (voir ici)
% check_waiting_job -j 987654 -v
DEBUG verbosity turned on
DEBUG User <user> or group <group> is not limited or blocked
DEBUG Read long queue configuration
DEBUG User <user> allowed on queue long
ERROR s_rss not valid for the queue long: asked 4.6 - available 4.0
- si vous avez les droits requis pour soumettre des jobs dans la queue demandée
% check_waiting_job -j 1111111 -v
DEBUG verbosity turned on
DEBUG User <user> or group <group> is not limited or blocked
INFO Queue mc_debug defined by the job
DEBUG Read mc_debug queue configuration
ERROR User <user> can NOT run jobs on queue mc_debug
Si aucun problème est détecté, il faut juste attendre que les ressources soient à nouveau disponibles (voir l’utilisation des ressources).
Pour voir les options de la commande faire check_waiting_job -h
.
Enfin, si tout semble bon, et que votre job reste toujours en queue, veuillez contacter le Support Utilisateur.
Supprimer des jobs¶
Les jobs peuvent être supprimés avec la commande qdel
. Vous pouvez supprimer seulement vos propres jobs. Pour annuler l’ensemble de vos jobs :
% qdel -u <loginname>
Pour annuler un ou plusieurs jobs :
% qdel <jobid>[,jobid,...]
Pour annuler une tâche d’un job tableau :
% qdel <jobid>.<taskid>
Pour annuler plusieurs tâches d’un job tableau :
% qdel <jobid>.<taskid_first>-<taskid_last>[:intervalle]
# ou avec l'option -t
% qdel <jobid> -t <taskid first>-<taskid last>[:intervalle]
Tapez man qdel
pour connaître toutes les options de la commande qdel.
Modifier des jobs¶
La commande qalter
permet de modifier les demandes de ressources des jobs se trouvant encore en attente. Pour modifier une ressource d’un job, par exemple la mémoire demandée :
% qalter -mods l_hard s_rss 2G <jobid>
Pour ajouter une ressource à un job, par exemple “sps” :
% qalter -adds l_hard sps 1 <jobid>
Pour supprimer une ressource d’un job, par exemple “hpss” :
% qalter -clears l_hard hpss <jobid>
Pour supprimer toutes les ressources d’un job :
% qalter -clearp l_hard <jobid>
Pour remplacer la liste des ressources d’un job :
% qalter -l resource=value[,resource2=value2,resource3=value3] <jobid>
Tapez man qalter
pour voir toutes les options possibles (changement de queue, d’e-mail etc.).
Suspendre et libérer un job¶
Vous pouvez suspendre un ou plusieurs jobs soumis avec la commande qhold
:
% qhold <jobid>
Pour libérer le job suspendu avec la commande qhold utilisez la commande qrls
:
% qrls <jobid>
Les jobs en queue en erreur (statut Eqw) peuvent être libérés avec la commande qmod
:
% qmod -cj <jobid>