Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slurm:les-bases [2022/12/21 12:21] montap01 [Principe] |
slurm:les-bases [2024/10/02 17:23] (Version actuelle) montap01 [Calcul sur GPU] |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
Pour exécuter un programme, vous devez le soumettre à l’ordonnanceur (// | Pour exécuter un programme, vous devez le soumettre à l’ordonnanceur (// | ||
- | ===== Soumettre un job ===== | + | |
- | ==== Principe | + | ===== Premier exemple pratique |
- | Il faut préparer | + | |
- | | + | ==== Fichier batch et soumission |
- | * le temps d’exécution maximum prévu | + | Nous créons |
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | #SBATCH --partition=rapide | ||
+ | #SBATCH --ntasks=1 | ||
+ | #SBATCH --mem-per-cpu=100 | ||
+ | #SBATCH --time=00: | ||
+ | |||
+ | ./mon_programme | ||
+ | </code> | ||
+ | |||
+ | Ensuite, on indique à slurm que l'on veut lancer ce job : | ||
+ | |||
+ | | ||
+ | |||
+ | Et voilà, votre code '' | ||
+ | |||
+ | ==== Explications ==== | ||
+ | Le fichier texte '' | ||
+ | |||
+ | Mais il possèdes des // | ||
* la // | * la // | ||
- | * la ou les commandes à exécuter | + | * les ressources nécessaires : nombre de processus qui seront lancés, quantité de mémoire, nombre de CPU |
+ | * le temps d’exécution maximum prévu | ||
+ | |||
+ | Dans notre exemple : | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Dans sa seconde partie, le fichier contient | ||
+ | |||
+ | La commande '' | ||
+ | |||
+ | Toutes les directives (''# | ||
+ | ===== Où est mon job ? Comment l' | ||
+ | Une fois votre //job// soumis, vous pouvez examiner la //queue//, c' | ||
+ | |||
+ | Pour voir tous les jobs dans la file : | ||
+ | squeue -l | ||
+ | |||
+ | Les //job// ont un //état// associé -- Les 2 principaux sont : | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Vous pouvez stopper un job en cours avec : | ||
+ | scancel < | ||
+ | |||
+ | Pour plus d' | ||
+ | |||
+ | ==== Où sont stockés les résultats du job ? ==== | ||
+ | Slurm exécute le job depuis le dossier où vous étiez quand vous avez soumis le job. | ||
- | Ensuite, la commande | + | Par défaut, les sorties standards et d'erreur (qui s'affichent sur le terminal) sont redirigées vers le fichier |
==== Dépassement des ressources ==== | ==== Dépassement des ressources ==== | ||
<note important> | <note important> | ||
- | ===== Partition | + | ===== Les partitions slurm ===== |
Un élément est **primordial** quand vous soumettez un job : la // | Un élément est **primordial** quand vous soumettez un job : la // | ||
* c'est un groupe de nœuds de calcul du cluster, avec une priorité | * c'est un groupe de nœuds de calcul du cluster, avec une priorité | ||
* des //limites// sont associées à chacune : temps maximal d' | * des //limites// sont associées à chacune : temps maximal d' | ||
- | * certaines sont // | + | * certaines sont // |
- | Vous pourrez par la suite consulter la liste complète des [[partitions-qos | partitions | + | Vous pourrez par la suite consulter la liste complète des [[partitions| partitions utilisables]], |
==== Travaux de très courte durée ==== | ==== Travaux de très courte durée ==== | ||
Ligne 39: | Ligne 91: | ||
* pour les jobs les plus communs (**2 jours maximum**) | * pour les jobs les plus communs (**2 jours maximum**) | ||
- | ===== Premier exemple ===== | ||
- | Ce premier exemple est adapté pour un programme // | ||
- | ==== Fichier batch ==== | + | ==== Points d' |
- | Nous créons un fichier texte '' | + | |
- | + | ||
- | < | + | |
- | # | + | |
- | #SBATCH --partition=rapide | + | |
- | #SBATCH --ntasks=1 | + | |
- | #SBATCH --mem-per-cpu=100 | + | |
- | #SBATCH --time=00: | + | |
- | + | ||
- | ./ | + | |
- | </ | + | |
- | + | ||
- | ==== Soumission du travail ==== | + | |
- | Ensuite, on indique à slurm que l'on veut lancer ce job : | + | |
- | + | ||
- | sbatch mon_programme.batch | + | |
- | + | ||
- | ==== Options sbatch ==== | + | |
- | Les lignes ''# | + | |
- | + | ||
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | + | ||
- | ==== Points d' | + | |
- | <note important> | + | |
* Vous **devez** indiquer les ressources mémoire et temps nécessaires, | * Vous **devez** indiquer les ressources mémoire et temps nécessaires, | ||
* Les quantités demandées en temps, CPU, mémoire doivent être compatible avec la // | * Les quantités demandées en temps, CPU, mémoire doivent être compatible avec la // | ||
* Un job consommant plus de mémoire ou de temps que demandé sera tué | * Un job consommant plus de mémoire ou de temps que demandé sera tué | ||
- | </ | ||
- | ===== Résultats du job ===== | ||
- | Par défaut, les sorties standards et d' | ||
- | ===== Inter-agir avec slurm ===== | ||
- | ==== Voir la file d' | ||
- | Voir tous les jobs dans la file : | ||
- | squeue -l | ||
- | ==== Arrêter | ||
- | scancel < | ||
- | ===== Pour plus d' | ||
- | Consultez le contenu de la rubrique dédiée à [[start | slurm ]] |