Suivi des jobs¶
Etat du service de la ferme¶
Pour évaluer l’état d’occupation de la ferme de calcul, vous pouvez vous référer au portail des utilisateurs ou lancer la commande suivante :
% sjstat
Scheduling pool data:
-------------------------------------------------------------
Pool Memory Cpus Total Usable Free Other Traits
-------------------------------------------------------------
htc* 144801Mb 48 191 191 0 htc
htc* 192934Mb 64 190 190 0 htc
htc_inter 192934Mb 64 1 1 0 htc_interactive
htc_inter 128361Mb 40 2 2 0 htc_interactive
[..]
Statut de soumission d’un job¶
La commande squeue
permet l’affichage de différentes informations concernant un job. Elle donne, entre autres, le temps d’exécution, l’état courant (colonne ST
, avec état possible R
pour running et PD
pour pending), le nom du job, et la partition dans laquelle le job est exécuté :
% squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
465 multiseq hello user R 0:01 1 ccwtbslurm01
Les principales options de squeue
sont :
-t [running|pending]
- sélectionne l’état running ou pending pour les jobs à afficher
[[-v] -l] -j
- affiche un job donné, avec
-l
pour un format dit long, et-v
pour une sortie plus détaillée, verbeuse.
Pour plus d’informations sur cette commande, et les codes de sorties, veuillez vous référer à la documentation officielle :
Efficacité d’un job¶
La commande seff
affiche les ressources utilisées par un job donné, et calcule son efficacité :
% seff <jobid>
Job ID: <jobid>
Cluster: ccslurmlocal
User/Group: <userid>/<groupid>
State: CANCELLED (exit code 0)
Cores: 1
CPU Utilized: 00:12:50
CPU Efficiency: 98.59% of 00:13:01 core-walltime
Job Wall-clock time: 00:13:01
Memory Utilized: 120.00 KB
Memory Efficiency: 0.00% of 0.00 MB
Suspension et altération d’un job¶
La commande scontrol
permet la gestion des jobs. Avec les options hold
, update
et release
, elle permet respectivement de suspendre un job (le sortir de la queue), de le modifier, puis de le remettre en queue :
% scontrol [hold|update|release] <liste des identifiants des jobs>
Pour plus de détails sur cette commande, veuillez vous référer à l’aide de la commande scontrol -h
.
Annulation d’un job¶
La commande scancel
permet de retirer (annuler) un ou plusieurs jobs :
% scancel <jobid>
Ou tous les jobs d’un utilisateur donné :
% scancel -u <userid>
Pour plus de détails sur cette commande, veuillez vous référer à l’aide de la commande scancel -h
.
Statut de fin de job¶
La commande sacct
vérifie et affiche le statut, la partition et le compte account d’un job :
% sacct
JobID JobName Partition Account AllocCPUS State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
1377 stress.sh multiseq ccin2p3 8 CANCELLED+ 0:0
1381 stress.sh multiseq ccin2p3 8 COMPLETED 0:0
1381.batch batch ccin2p3 8 COMPLETED 0:0
Il est possible de modifier ponctuellement le formattage via l’option --format
:
% sacct --format="Account,JobID,NodeList,CPUTime,MaxRSS"
Account JobID NodeList CPUTime MaxRSS
---------- ------------ --------------- ---------- ----------
ccin2p3 1523 ccwslurm0001 00:10:14
ccin2p3 1523.batch ccwslurm0001 00:10:14
ccin2p3 1524 ccwslurm0001 00:10:14
ou modifiez la variable d’environnement SACCT_FORMAT
pour définir une nouveau output :
% export SACCT_FORMAT=Account,JobID,NodeList,CPUTime,MaxRSS
% sacct
Account JobID NodeList CPUTime MaxRSS
---------- ------------ --------------- ---------- ----------
... ... ... ... ...
Pour avoir la liste complète des champs disponibles :
% sacct -e
Pour plus de détails sur cette commande, veuillez vous référer à l’aide de la commande sacct -h
.
Profilage des jobs¶
La plateforme de calcul permet de profiler un job, fournissant à l’utilisateur un fichier html
, qui peut être ouvert dans un navigateur affichant des informations de profilage et des graphiques, et un fichier xml
avec des valeurs de profilage brutes.
Si vous avez besoin de profiler un job, vous devez ajouter au moins une option à votre ligne de soumission :
% sbatch -t 0-01:00 -n 3 --mem 7G --profile=task [--acctg-freq=task=10] job.sh
--profile=task
- active l’agent de profilage
--acctg-freq=task=<nombre>
- définit la fréquence d’interrogation en secondes (entre 1 et 15 sec.). Par défaut :
<nombre>=15
Après avoir lancé votre job de production avec les options ci-dessus, vous pouvez lancer un second job avec la syntaxe suivante :
% sbatch -t 0-01:00 -n 1 --mem 1G -d <jobid> slurm_profiling <jobid>
<jobid>
étant l’ID du que vous souhaitez profiler. Les fichiers html
et xml
seront créés dans votre répertoire de travail.