[rouge]Attention : cet article concerne feu la plateforme PlaFRIM2[/rouge]
... en travaux ...
Page d’introduction à l’utilisation de la plateforme de calcul PLAFRIM2
Nous donnons ici une introduction à l’utilisation de PLAFRIM2 via quelques exemples simples représentatifs d’usages courants.
Pour en savoir plus et nous soumettre vos petits ou gros problèmes, venez nous rencontrer : bureau 270 (Laurent et Philippe).
L’utilisation d’un cluster de calcul n’est pas trivial, beaucoup d’éléments sont à prendre en compte. Nous sommes donc là pour vous accompagner afin de trouver les solutions les plus adaptées à vos problématiques et faire en sorte que vos calculs s’exécutent le plus rapidement possible et de la manière la plus efficace possible.
Préalable à toute utilisation de PLAFRIM2 : charger le modules du gestionnaire de jobs (slurm) à l’aide de la commande :
module load slurm
C’est ce module qui donne accès à toutes les commandes que nous allons voir maintenant (srun
, sbatch
, sinfo
, squeue
, salloc
, ...)
De façon générale, une fois ce module chargé, on peut avoir la documentation précise de chaque commande en faisant :
man NOM_DE_LA_COMMANDE
ou une version plus compacte en faisant
NOM_DE_LA_COMMANDE --help
Exemple 1 : Travailler en interactif sur une machine généraliste (miriel)
srun -c24 -I -p longq --time=8:0:0 --exclusive --pty bash
-I
: demande à ce que la réservation soit immédiate ou échoue si les ressources ne sont pas instantanément disponibles.
-I=10
pour attendre 10 secondes la libération des ressources.-c24
: autorise la commande lancée (ici bash
: interpréteur de commande) à utiliser les 24 cœurs de la machine.-p long
: utilisation de la partition longq
permettant une session jusqu’à 72 heures.--exclusive
: réserve la machine entièrement. aucun autre utilisateur ne pourra venir sur cette machine pendant l’exécution du job. Utile quand on utilise tous les nœuds ou toute la mémoire ou lorsque l’on veut mesurer précisément les temps de calcul.--time=8:0:0
: demande a réserver les ressources pour une durée de 8 heures, 0 minutes et 0 secondes.--pty
: paramètres technique pour que bash
fonctionne correctement en mode interactif.bash
: nom du programme à exécuter sur les ressources sélectionnée.Notion de partition : les machines de calculs sont accessibles via des partitions (option -p
) dont les caractéristiques (nombre et types des machines disponibles, temps d’exécution autorisés, ...) sont variables.
sinfo
-p
) est defq
limitée à 2h sur les machines miriel
.Exemple 2 : Lancer rapidement un calcul non interactif sur une machine généraliste (miriel)
sbatch -c24 -p longq --time=8:0:0 --exclusive ./MON_PROGRAMME
MON_PROGRAMME
: le nom de votre programme à exécuterLa commande sbatch
renvoie le n° du job que vous venez de soumettre (c.a.d d’en demander l’exécution).
Il s’exécutera dès que possible.
Pour visualiser l’ensemble des jobs en attente ou en cours d’exécution sur la plateforme, utilisez la commande : squeue
.
Pour ne voir que vos travaux, faites : squeue -u VOTRE_LOGIN
.
Pour supprimer un job : scancel NUMERO_DU_JOB
Exemple 3.1 : S’organiser pour lancer souvent le même programme
Lorsque l’on veut relancer plusieurs fois le même programme dans les mêmes conditions, au lieu d’utiliser les commandes srun
ou sbatch
avec "plein" d’options, il est pratique de créer à la place des fichiers batch contenant ces options et les différents paramètres de ses jobs.
On place alors les options après le préfixe #SBATCH
dans ce fichier.
Le fichier batch correspondant à l’exemple 2 peut ainsi se réécrire sous la forme suivante :
#! /bin/bash
# Fichier mon_job.sh
#SBATCH -c24
#SBATCH -p longq
#SBATCH --time=8:0:0
#SBATCH --exclusive
srun ./MON_PROGRAMME
que l’on pourra soumettre (c.a.d demander l’execution) avec la commande :
sbatch mon_job.sh
Exemple 3.2 : Exemple plus complet
D’autres options intéressantes peuvent être précisées (elles peuvent également être utilisées en ligne de commande, mais cela devient un peu fastidieux) permettant par exemple :
Voici un exemple où les nouvelles options sont commentées :
#! /bin/bash
# Fichier mon_job.sh
#SBATCH -c24
#SBATCH -p longq
#SBATCH --time=8:0:0
#SBATCH --time-min=6:0:0 # temps minimum. permet de démarrer plus vite
#SBATCH --exclusive
#SBATCH --mail-user=mon_adresse_email@math.u-bordeaux.fr # mon adresse email pour recevoir les notifications :
#SBATCH --mail-type=BEGIN,END # pour recevoir un email au début et à la fin du job.
# autres possibilités : FAIL,REQUEUE,TIME_LIMIT,TIME_LIMIT_50,TIME_LIMIT_80,TIME_LIMIT_90
# ALL est équivalent à BEGIN,END,FAIL,REQUEUE
#SBATCH --error=/home/mon_login/mon_fichier_erreurs # précise un fichier pour stocker les erreurs affichées par le programme
#SBATCH --output=/home/mon_login/mon_fichier_output # précise un fichier pour stocker les sorties classiques affichées par le programme
srun ./MON_PROGRAMME
Conclusion
Un problème ou une question se pose toujours ? passez nous voir :)