Créer un nouveau launcher sous Eclipse
Créer un fichier batch_params.xml
Lancer le modèle en batch (hors eclipse)
(1) sous windows
(2) sous linux
Annexe: script de lancement de la simulation en shell
Ouvrir le menu de la flèche verte
Aller dans Run Configurations
Appuyer sur l’icône de création d’un nouveau launcher
Choisir le projet auquel on veut associer le launcher.
NB : On peut aussi renommer la configuation qui s’appelle par défault « new configuration »Choisir repast.symphony.batch.BatchMain comme MainClass
Aller dans l’onglet Arguments
Inscrire les arguments suivant dans Program arguments :
params “${workspace_loc:ProjectName}/batch/batch_params.xml”
“${workspace_loc:ProjectName}/projectname.rs”
NB: Changer le ProjectName par le nom du projetAjuster les arguments VM
Appliquer les modifications pour sauvegarder la nouvelle configuration
Le fichier batch_params.xml sert à spécifier la valeur des paramètres de la simulation, mais aussi le nombre de simulations que l’on souhaite lancer les unes à la suite des autres.
Voici la structure d’un fichier de ce type:
<?xml version="1.0"?>
<sweep runs="nombre de run à lancer">
<parameter name="nom du paramètre" type="constant" constant_type="number" value="valeur"/>
</sweep>
Le fichier XML correspondant au projet SIMmasto est :
<?xml version="1.0"?>
<sweep runs="1">
<parameter name="Agent_speed_m_by_mn" type="constant" constant_type="number" value="1.0"/>
<parameter name="Agent_vision_m" type="constant" constant_type="number" value="8.0"/>
<parameter name="Minutes_by_tick" type="constant" constant_type="number" value="1.0"/>
</sweep>
La méthode proposée ci-dessous permet de lancer une simulation en batch sans utiliser Eclipse. Elle est utilisée par le Cluster.
Pour lancer le modèle en batch, il faut créer un fichier.bat (voir note ci-dessous) dans lequel on spécifie les librairies dont aura besoin, la plateforme Java pour lancer le modèle, ainsi que les éventuelles librairies qu’elle ne trouverait pas. Le fichier.bat doit comporter les paths de Java, Repast et celui du projet. Il faudra aussi spécifier le path pour les paramètres du batch.
G Créer un fichier .bat: Pour faire un fichier.bat, il suffit de créer un nouveau fichier .txt et de modifier son extension. Si on ne peut pas voir l’extension des fichiers, il faut aller dans Panneau de Configuration / (Apparence et personnalisation) / Options des dossiers puis dans l’onglet Affichage et désélectionner « Masquer les extensions des fichiers dont le type est connu » pour voir apparaitre les extensions. Enfin, il faut renommer le document en effaçant son extension txt et en la remplaçant par bat.
Voici les variables définies dans le .bat :
rem The version of Repast Simphony being used
set VERSION=2.0.0
rem The path of Java being used
set JAVAPATH="C:\Program Files (x86)\Java\jre6\bin\java.exe"
rem The installed path of Repast.
set REPAST=C:\RepastSimphony-2.0-beta
rem The plugins path of Eclipse.
set PLUGINS=%REPAST%/eclipse /plugins
rem The workspace containing the Repast model.
set WORKSPACE=%REPAST%/workspace
rem The name of the model. This might be case-sensitive.
set MODELNAME=SIMmasto_0
rem The folder of the model. This might be case-sensitive.
set MODELFOLDER=%WORKSPACE%/%MODELNAME%
rem The file containing the batch parameters.
set BATCHPARAMS=%MODELFOLDER%/batch/batch_params.xml
rem The repast.simphony.runtime librairie
set RUNTIME_LIB=%PLUGINS%/repast.simphony.runtime_2.0.0/lib/
Une fois que toutes les variables sont définies, il faut spécifier les librairies que l’on souhaite utiliser :
· Le dossier repast.simphony.batch contient le main du modèle. Comme on utilise le batch, on doit utiliser BatchMain et non RepastMain qui se trouve dans repast.simphony.runtime et qui est utilisé pour lancer un modèle « normal » :
SET CP=%CP%;%PLUGINS%/repast.simphony.batch_%VERSION%/bin
· Le dossier repast.simphony.runtime contient les classes utiles au lancement de Repast. Comme on utilise seulement quelques classes de ce package, on peut choisir de préciser celles que l’on veut plutôt que de charger l’intégralité :
SET CP=%CP%;%RUNTIME_LIB%saf.core.runtime.jar
SET CP=%CP%;%RUNTIME_LIB%commons-logging-1.0.4.jar
SET CP=%CP%;%RUNTIME_LIB%groovy-all-1.7.5.jar
SET CP=%CP%;%RUNTIME_LIB%javassist-3.7.0.GA.jar
SET CP=%CP%;%RUNTIME_LIB%jpf.jar
SET CP=%CP%;%RUNTIME_LIB%jpf-boot.jar
SET CP=%CP%;%RUNTIME_LIB%log4j-1.2.13.jar
SET CP=%CP%;%RUNTIME_LIB%xpp3_min-1.1.4c.jar
SET CP=%CP%;%RUNTIME_LIB%xstream-1.3.jar
SET CP=%CP%;%RUNTIME_LIB%commons-cli-1.0.jar
· Le package repast.simphony.core contient plusieurs classes utilisées dans les projets Repast mais aussi une classe qui gère les paramètres du batch :
SET CP=%CP%;%PLUGINS%/repast.simphony.core_%VERSION%/lib/*
SET CP=%CP%;%PLUGINS%/repast.simphony.core_%VERSION%/bin
· Repast.simphony.bin_and_src contient l’essentiel des classes utilisées dans les projets Repast :
SET CP=%CP%;%PLUGINS%/repast.simphony.bin_and_src_%VERSION%/*
· Ces lignes indiquent les paths des librairies que Java n’a pas pu trouver en lançant le batch. La console indique alors une erreur « java.lang.NoClassDefFoundError » suivie de la librairie introuvable. Il suffit ensuite d’aller dans le dossier plugins de Repast et de la rechercher (NB : si l’erreur vient de bsh/util/JConsole il faudra peut-être rechercher uniquement bsh car le reste est souvent dans un .jar et donc introuvable) :
SET CP=%CP%;%PLUGINS%/libs.bsf_2.0.0/lib/bsh-2.0b4.jar
SET CP=%CP%;%PLUGINS%/repast.simphony.essentials_2.0.0/lib/*
· Cette dernière ligne précise où sont rangés les fichiers compilés du projet :
SET CP=%CP%;%MODELFOLDER%/bin
Une fois cette étape terminée, il suffit d’appeler la commande suivante :
Java [args] -cp <classpath> main -params <batchParams> <model>.rs
Voici la correspondance avec SIMmasto :
· Java → %JAVAPATH%
· [args] → -Xss10M -Xmx400M
· <classpath> → %CP%
· main → repast.simphony.batch.BatchMain
· <batchParams> → %BATCHPARAMS%
· <model> → %MODELFOLDER%\%MODELNAME%
On obtient alors :
%JAVAPATH% -Xss10M -Xmx400M -cp %CP% repast.simphony.batch.BatchMain -params %BATCHPARAMS% %MODELFOLDER%\%MODELNAME%.rs
Pour lancer une simulation en batch sous Linux il faut :
créer un document en shell (On utilise la même méthode que pour créer un fichier .bat; ce document est disponible en annexe ci-dessous) puis,
convertir le
fichier.bat créé précédemment dans ce nouveau langage.
La variable JAVAPATH n’est plus utile car Linux trouve automatiquement
l’emplacement de Java.
De plus, étant donné que l’installation de Repast sous
Windows et sous Linux diffère, la variable REPAST n’existe plus.
En effet, sous
Linux on installe Eclipse avant d’installer Repast alors que sous Windows, les
deux forment un tout.
De ce fait, l’emplacement de l’installation sous Linux
aura tendance à s’appeler « Eclipse » plutôt que « Repast »
Pour terminer, il faudra vérifier les paths des autres variables et procéder aux changements qui s’imposent car les dossiers ne seront pas nécessairement aux mêmes emplacements.
· NB : Le document.bat/.sh devra se trouver dans le dossier du projet.
retour aux mémos retour au modèle retour à la page d'accueil