Skip to content

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 (format YYYY-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 ou sacct.
  • 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

  1. Soumettre un job :

bash sbatch mon_script_job.sh

  1. Vérifier l'état du job :

bash squeue -u $USER

  1. Obtenir des informations détaillées :

bash scontrol show job 12345

  1. Annuler le job si nécessaire :

bash scancel 12345

En suivant ces étapes, vous pouvez monitorer et gérer efficacement vos jobs sous SLURM.