Bonjour je n'ai pas pu repondre en fin de semaine derniere car je n'ai eu que un acces tres limite a INTERNET (juste le temps de recuperer la nouvelle version d'ISIS). merci Benjamin d'avoir repondu rapidement a ma demande. J'ai reussi a faire tourner des simulations avec toutes les strategies meme si sans mesure de gestion, il faut 30 minutes pour une annee avec 2 pop et les 24 strategies. Je vais lancer en ce debut de semaine les simulations en file d'attente le soir pour sortie des resultats. Il faut que l'on discute de ce probleme jeudi prochain d'autant que le simulateur danois ne met que qqes secondes pour simuler une pecherie (35 metiers non spatialises) avec mesure de gestion. Youen pourra nous en dire 2 mots. A+ et merci encore stephanie Benjamin POUSSIN a écrit:
Bonjour,
Une nouvelle version d'isis-fish vient d'être mise en place.
http://isis-fish.labs.libre-entreprise.org/download/version2/ifremer-simulat...
* ajout de 3 caches different pour l'optimisation des caculs les caches sont selectionnable au lancement d'isis * ajout de la possibilité de faire les boucles Str/Met que sur les metiers de la strategie dans SiMatrice. Cette fontion est selectionnable au lancement d'isis
Explication ===========
Pour selectionner un des 3 caches il faut passer les options suivantes a la JVM (ce veux dire juste derriere java)
-DOptimizationCache=[SimpleLRU[=<valeur>]|ShiftOne|Soft]
Il est possible dans les calcules de ne pas faire les boucles sur tous les metiers, mais seulement sur les metiers, utilisés par la strategie au mois de calcul avec l'option suivante. ATTENTION, les simulations donneront n'importe quoi si vous utilisé l'option et qu'une regle de gestion ajoute des metiers a une strategie durant la simulation.
-Dfr.ifremer.simulation.SiMatrice2.loopOverAllMetier=<false|true>
Je ne suis pas du tout sur que les resultats avec cette option a false, soit vraiment convenable, donc il vaut mieux faire des tests de vérification avant de vraiment l'utiliser.
Toutes ces modifications ont ete faite sans test, mais cela peut ameliorer ou non les simulations aucune idee.
Si on ne met pas d'option cela revient a la ligne suivante: java -DOptimizationCache=Soft -Dfr.ifremer.simulation.SiMatrice2.loopOverAllMetier=true -Xmx512M -jar ifremer-simulation-all.jar
dans ce cas, des que la JVM n'a plus de memoire elle supprimer les données calculé du cache (tres peu de risque de OutOfMemory) mais les simulations devrait etre beaucoup plus longue.
exemple d'utilisation:
- java -DOptimizationCache=SimpleLRU -Xmx512M -jar ifremer-simulation-all.jar Ici on utilise un cache LRU (Least Recently Used) avec par defaut 50000 au maximum dans le cache
- java -DOptimizationCache=SimpleLRU=1000000 -Xmx512M -jar ifremer-simulation-all.jar la meme chose avec 1000000 de calcul mis en cache
- java -DOptimizationCache=ShiftOne -Xmx512M -jar ifremer-simulation-all.jar ici on utilise le cache ShiftOne, qui se parametre par un fichier de configuration par defaut il utilise celui trouvé dans le jar. Il est possible d'en utiliser un autre pour cela il suffit de mettre un fichier partant le nom isisCache.properties dans le repertoire de lancement du simulateur. Par defaut il utilise un cache LRU et LFU avec 100000 objet au maximum. Mais il y a plein d'autre facon de configurer ce cache
En gros il y a beaucoup de test a faire qui prenne beaucoup de temps (que je n'ai pas :(.
Pour aider je peux dire qu'une simulation de test (1 strategie, 1 pop). Calcul environs 50000 données par ans. Je pense que ce doit-etre a peu pres lineaire avec les strategie/metier/population
Il faut regler le nombre d'objet dans les caches pour qu'il aille avec la memoire alouée. donc si on met -Xmx64M il faut mettre une plus petite valeur que pour -Xmx1024M
ps: pour les personnes qui trouve que relancer le simulateur pour tester telle ou telle chose est penible, il doit etre possible d'utiliser les script de pre simulation pour modifier le cache selectionné. (Mais je pense qu'il ne faut mieux pas lancer 2 simulations en meme temps avec 2 caches different.
Donc dans le prescript:
Packages.java.lang.System.setProperties("<option>", "<valeur>");
donc par exemple
Packages.java.lang.System.setProperties("OptimizationCache", "SimpleLRU=1000000"); ou Packages.java.lang.System.setProperties("OptimizationCache", "ShiftOne"); ou Packages.java.lang.System.setProperties("OptimizationCache", "Soft"); ou Packages.java.lang.System.setProperties("fr.ifremer.simulation.SiMatrice2.loopOverAllMetier", "false"); ou Packages.java.lang.System.setProperties("fr.ifremer.simulation.SiMatrice2.loopOverAllMetier", "true");
bien sur je n'ai pas testé cette facon de faire :)
------------------------------------------------------------------------
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-devel
-- ...................................................................... Stephanie MAHEVAS (Stephanie.Mahevas@ifremer.fr) IFREMER/MAERHA Tel: 02 40 37 41 81 Fax: 02 40 37 40 75 (Mathématiques Appliquées à l'Evaluation des Ressources Halieutiques et Aquacoles) rue de l'île d'Yeu BP 21105 44311 NANTES Cedex 03 http://www.ifremer.fr/maerha o \ o / _ o __| \ / |__ o _ \ o / o /|\ | /\ ___\o \o | o/ o/__ /\ | /|\ / \ / \ | \ /) | ( \ /o\ / ) | (\ / | / \ / \ ......................................................................