Gérer les Jobs
Pour monitorer et gérer vos jobs sous SLURM, plusieurs commandes et outils sont disponibles. Voici un guide complet pour suivre l'état de vos jobs, les modifier, les annuler, et obtenir des informations détaillées.
1. Monitorer les jobs
a. Liste des jobs en attente ou en cours
Utilisez la commande squeue
pour afficher la liste des jobs en attente ou en cours d'exécution.
squeue
Pour afficher uniquement vos jobs :
squeue -u $USER
Options utiles :
-j <job_id>
: Afficher un job spécifique.--start
: Afficher l'heure estimée de démarrage des jobs en attente.-l
: Afficher des informations détaillées.
b. État des jobs terminés ou annulés
Utilisez sacct
pour afficher des informations sur les jobs terminés, annulés ou en échec.
sacct
Options utiles :
-j <job_id>
: Afficher les informations d'un job spécifique.--format=<champs>
: Personnaliser les champs affichés (par exemple,JobID,JobName,State,Elapsed
).-S <date>
: Filtrer par date de début (formatYYYY-MM-DD
).-E <date>
: Filtrer par date de fin.
Exemple :
sacct -j 12345 --format=JobID,JobName,State,Elapsed
c. Informations détaillées sur un job
Utilisez scontrol show job <job_id>
pour obtenir des informations détaillées sur un job spécifique.
scontrol show job 12345
Cela affiche des détails tels que :
- L'état du job (
JobState
). - Les ressources allouées (
NumCPUs
,Mem
,GRES
). - Le nœud d'exécution (
NodeList
). - La durée écoulée (
RunTime
).
2. Gérer les jobs
a. Annuler un job
Utilisez scancel
pour annuler un job en cours ou en attente.
scancel <job_id>
Options utiles :
-u <username>
: Annuler tous les jobs d'un utilisateur.-t <state>
: Annuler les jobs dans un état spécifique (par exemple,PENDING
,RUNNING
).
Exemple pour annuler tous vos jobs en attente :
scancel -u $USER -t PENDING
b. Modifier un job en attente
Utilisez scontrol update jobid=<job_id> <paramètres>
pour modifier un job en attente.
Exemples :
- Changer la durée (
--time
) :
scontrol update jobid=12345 Time=02:00:00
```
- Changer la partition :
```bash
scontrol update jobid=12345 Partition=new_partition
```
- Changer la mémoire allouée :
```bash
scontrol update jobid=12345 MinMemoryCPU=16G
```
------
### c. **Suspendre et reprendre un job**
- Pour suspendre un job en cours :
```bash
scontrol suspend <job_id>
```
- Pour reprendre un job suspendu :
```bash
scontrol resume <job_id>
```
------
## 3. **Analyser les performances**
### a. **Utilisation des ressources**
Utilisez `sstat` pour surveiller l'utilisation des ressources (CPU, mémoire, etc.) d'un job en cours.
```bash
sstat -j <job_id>
Options utiles :
--format=<champs>
: Personnaliser les champs affichés (par exemple,JobID,MaxRSS,MaxVMSize
).
Exemple :
```bash sstat -j 12345 --format=JobID,MaxRSS,MaxVMSize
------
### b. **Informations sur les nœuds**
Utilisez `sinfo` pour afficher l'état des nœuds de calcul.
```bash
sinfo
Options utiles :
-N
: Afficher les informations par nœud.-p <partition>
: Filtrer par partition.
Exemple pour afficher les nœuds disponibles dans une partition :
bash
sinfo -p gpu
4. Bonnes pratiques
- Surveillez régulièrement vos jobs avec
squeue
ousacct
. - Utilisez
scancel
avec précaution pour éviter d'annuler des jobs par erreur. - Pour les jobs longs, utilisez
--mail-type
pour recevoir des notifications par e-mail. - Si un job échoue, consultez les fichiers de sortie (
--output
) et d'erreur (--error
) pour diagnostiquer le problème.
5. Exemple de workflow
- Soumettre un job :
bash
sbatch mon_script_job.sh
- Vérifier l'état du job :
bash
squeue -u $USER
- Obtenir des informations détaillées :
bash
scontrol show job 12345
- Annuler le job si nécessaire :
bash
scancel 12345
En suivant ces étapes, vous pouvez monitorer et gérer efficacement vos jobs sous SLURM.