TP atelier SMAsHPC
L'objectif de ce TP est de lancer des simulations GAMA, le modèle proies-prédateurs, en mode batch (ligne de commande) sur le mésocentre.
Connexion aux mésocentre
- Se connecter au nœud de login
ssh -XC formationmeso@mesologin1.univ-fcomte.fr
- Se placer dans le répertoire de travail
[formationmeso@mesologin1 ~]$ cdw
- Créer un répertoire personnel unique en utilisant votre nom de famille, par exemple :
[formationmeso@mesologin1 ~]$ mkdir kmazouzi
- Copier l'archive
predatorPrey.tgz
vers le répertoire nouvellement créé[formationmeso@mesologin1 ~]$ cp predatorPrey.tgz kmazouzi
- Se placer dans le répertoire créé
[formationmeso@mesologin1 ~]$ cd kmazouzi
- Extraire l'archive
[formationmeso@mesologin1 ~]$ tar -xzvf predatorPrey.tgz
- Le répertoire devrait contenir
[formationmeso@mesologin1 ~]$ ls gama.sge includes models predatorPrey.tgz predatorPrey.xml
models
répertoire contenant des modèles GAMA (on va utiliser le modèleModel09.gaml
)includes
répertoire contenant des données nécessaires pour la simulation (images, GIS,…)predatorPrey.xml
fichier XML contenant la liste des paramètres de la simulationgama.sge
script SGE pour lancer la simulation
Préparer les données de simulation
GAMA permet de lancer des simulations en ligne de commande. Le programme s'appelle gama-headless.sh
. Il prend en paramètres :
- Un fichier XML qui contient les paramètres d'entrée et sortie de la simulation
- Un nom d'un répertoire où stocker les résultats
predatorPrey.xml
Ouvrir le fichier en utilisant votre éditeur de texte préféré (gedit
,vim
,emacs
,nano
)
- predatorPrey.xml
<?xml version="1.0" encoding="UTF-8"?> <Simulation id="2" sourcePath="./models/Model09.gaml" finalstep="1000" experiment="prey_predator"> <Parameters> <Parameter name="nb_predators_init" type="INT" value="20" /> <Parameter name="nb_preys_init" type="INT" value="300" /> </Parameters> <Outputs> <Output id="1" name="main_display" framerate="5" /> <Output id="2" name="nb_preys" framerate="1" /> <Output id="3" name="nb_predators" framerate="1" /> </Outputs> </Simulation>
Le fichier décrit une simulation prey_predator
, on trouve :
- Le chemin relatif vers le modèle GAMA :
./models/Model09.gaml
- Le nombre de pas de temps à exécuter
finalstep=1000
- Les paramètres d'entrée : nombre initial de prédateurs 20, nombre initial de proies 300
- Les paramètres de sortie :
snapshot
du graphique chaque 5 fps ?, nombre de proies et le nombre de prédateur chaque pas de temps
Lancer la simulation
Le fichier gama.sge
est le script SGE, il contient un ensemble de paramètres SGE et la commande pour lancer GAMA en mode ligne de commande.
- gama.sge
#!/bin/bash -l ####### DEBUT OPTIONS SGE ############# ### on choisit la file d'attente #$ -q formation.q ### On demande 6 G par coeur #$ -l h_vmem=6G ### Nom du job, visible dans qstat #$ -N Model09 ### Fichier où stocker la sortie standard #$ -o $JOB_NAME.$JOB_ID.out ###### FIN OPTIONS SGE ############## ## On charge Gama module tools/gama/1.6.1 ## On lance Gama en mode batch gama-headless.sh predatorPrey.xml ${JOB_NAME}_${JOB_ID}
$JOB_NAME : variable d'environnement SGE, elle contient le nom attribué au job :
Model09
$JOB_ID : variable d'environnement SGE, elle contient un identificateur unique
On peut donc s'attendre à Model09_74099
comme répertoire de sortie.
Soumettre le calcul avec SGE :
[formationmeso@mesologin1 kmazouzi]$ qsub gama.sge
Vérifier l'état du calcul :
[formationmeso@mesologin1 kmazouzi]$ qstat job-ID prior name user state submit/start at queue slots ja-task-ID ----------------------------------------------------------------------------------------------------------------- 74099 0.51000 Model09 formationmes r 07/07/2014 21:32:18 all.q@node1-15 1
Explorer les résultats dans le répertoire de sortie.
Le répertoire de sortie contient les fichiers résultats :
- simulation-outputs0.xml, fichier contenant le nombre de proie/prédateur en chaque pas de temps
- snapshot, répertoire contenant les images de la simulation pour chaque pas temps.
animate
ou convert
(logiciel ImageMagick)
On souhaite, par exemple, récupérer le répertoire : Model09_123456
1. En utilisant un outils graphique : filezella
, …
2. En ligne de commande, ouvrir un terminal sur votre machine local :
$ scp -r formationmeso@mesologin1.univ-fcomte.fr:WORK/<votreNom>/<Model09_123456 .
Tableaux de tâches
Solution 1 : lancer autant de scripts que de simulations ! et si on dispose de 1000 simulation ?
Solution 2 : utiliser la notion de tableaux de tâche SGE.
Tableaux de tâche : technique SGE permettant de lancer plusieurs simulation en utilisant un seul script.
prérequis : Il faut préparer les paramètres pour les différentes simulations : avoir plusieurs fichier XML
Exemple : lancer 3 simulations, dans notre exemple il nous faut préparer 3 fichiers : predatorsPrey1.xml, predatorsPrey2.xml et predatorsPrey3.xml
[formationmeso@mesologin1 kmazouzi]$ cp predatorPrey.xml predatorPrey1.xml [formationmeso@mesologin1 kmazouzi]$ cp predatorPrey.xml predatorPrey2.xml [formationmeso@mesologin1 kmazouzi]$ cp predatorPrey.xml predatorPrey3.xml
Méthodes :
- rajouter, dans le script SGE, l'option suivante
#$ -t 1-3
: lancer un tableau de 3 tâches par exemple - utiliser la variable d'environnement
$SGE_TASK_ID
pour identifier les tâches et le répertoire de sortie - modifier le script SGE pour lancer GAMA comme suite :
gama-headless.sh predatorPrey${SGE_TASK_ID}.xml ${JOB_NAME}_${JOB_ID}_task${SGE_TASK_ID}
- enfin, lancer le script
qsub gama2.sge