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 [2015/09/25 21:30] montap01 [Points d'attention] |
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 ==== | ||
- | Préparez un fichier texte qui décrit : | ||
- | * les ressources nécessaires : quantité de mémoire, nombre de CPU | ||
- | * le temps d’exécution maximum prévu | ||
- | * la // | ||
- | * la ou les commandes à exécuter | ||
- | Ensuite, la commande '' | + | ===== Premier exemple pratique ===== |
- | ==== Dépassement des ressources ==== | + | ==== Fichier batch et soumission |
- | <note important> | + | Nous créons un fichier texte '' |
- | + | ||
- | ===== Partition ===== | + | |
- | Un éléments est **primordial** quand vous soumettez un job : la // | + | |
- | * c'est un groupe de nœuds de calcul du cluster, avec une priorité | + | |
- | * des //limites// sont associées à chacune : temps maximal d' | + | |
- | * certaines sont // | + | |
- | + | ||
- | Vous pourrez par la suite consulter la liste complète des [[partitions-qos | partitions | + | |
- | + | ||
- | ==== Travaux de très courte durée ==== | + | |
- | Utilisez '' | + | |
- | * pour les travaux très courts (< 1 heure) : mise au point du code, tests | + | |
- | * limites d' | + | |
- | ==== Travaux " | + | |
- | Utilisez '' | + | |
- | * pour les jobs de temps normaux (**2 jours maximum**) | + | |
- | + | ||
- | ===== Premier exemple ===== | + | |
- | Ce premier exemple est adapté pour un programme // | + | |
- | + | ||
- | ==== Fichier batch ==== | + | |
- | Nous créons un fichier texte '' | + | |
< | < | ||
#!/bin/bash | #!/bin/bash | ||
+ | |||
#SBATCH --partition=rapide | #SBATCH --partition=rapide | ||
#SBATCH --ntasks=1 | #SBATCH --ntasks=1 | ||
Ligne 55: | Ligne 27: | ||
</ | </ | ||
- | ==== Soumission du travail ==== | ||
Ensuite, on indique à slurm que l'on veut lancer ce job : | Ensuite, on indique à slurm que l'on veut lancer ce job : | ||
sbatch mon_programme.batch | sbatch mon_programme.batch | ||
- | ==== Options sbatch ==== | + | Et voilà, votre code '' |
- | Les lignes | + | |
- | * '' | + | ==== Explications ==== |
- | * '' | + | Le fichier texte '' |
- | * '' | + | |
- | * '' | + | |
- | ==== Points | + | Mais il possèdes des // |
- | <note important> | + | * la // |
+ | * 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 ou les commandes à exécuter. | ||
+ | |||
+ | 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. | ||
+ | |||
+ | Par défaut, les sorties standards et d' | ||
+ | |||
+ | ==== Dépassement des ressources | ||
+ | <note important> | ||
+ | |||
+ | ===== Les partitions slurm ===== | ||
+ | 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é | ||
+ | * des //limites// sont associées à chacune : temps maximal d' | ||
+ | * certaines sont // | ||
+ | |||
+ | Vous pourrez par la suite consulter la liste complète des [[partitions| partitions utilisables]], | ||
+ | |||
+ | ==== Travaux de très courte durée ==== | ||
+ | Utilisez '' | ||
+ | * pour les travaux très courts (< 1 heure) : mise au point du code, tests | ||
+ | * limites d' | ||
+ | ==== Travaux " | ||
+ | Utilisez '' | ||
+ | * pour les jobs les plus communs (**2 jours maximum**) | ||
+ | |||
+ | |||
+ | ==== Points d' | ||
* 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 ]] |