Author: bpoussin Date: 2014-06-17 17:50:26 +0200 (Tue, 17 Jun 2014) New Revision: 4024 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4024 Log: add possibility to change matrix backend for simulation in configuration Modified: trunk/pom.xml trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-06-17 15:29:15 UTC (rev 4023) +++ trunk/pom.xml 2014-06-17 15:50:26 UTC (rev 4024) @@ -81,7 +81,7 @@ <dependency> <groupId>org.nuiton.matrix</groupId> <artifactId>nuiton-matrix</artifactId> - <version>2.4.1</version> + <version>2.4.2-SNAPSHOT</version> <scope>compile</scope> </dependency> Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2014-06-17 15:29:15 UTC (rev 4023) +++ trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2014-06-17 15:50:26 UTC (rev 4024) @@ -936,7 +936,7 @@ /** * L'implementation de la class gérant les implémentations de vecteur de - * matrice pour les fichiers mappés. + * matrice pour les fichiers mappés pour le rendu des resultats * * @return * @since 4.2.1.1 @@ -947,6 +947,18 @@ } /** + * L'implementation de la class gérant les implémentations de vecteur de + * matrice pour les simulations + * + * @return + * @since 4.2.1.1 + */ + public Class getSimulationMatrixVectorClass() { + Class result = getOptionAsClass(Option.SIMULATION_MATRIX_VECTOR_CLASS.key); + return result; + } + + /** * Retourne la factory a utilise pour le cache * * @return factory a utilise pour le backend de cache @@ -989,6 +1001,10 @@ SIMULATOR_LAUNCHER2(SimulationService.SIMULATION_LAUNCHER + ".1", n("isisfish.config.main.subSimulator.description"), SubProcessSimulationLauncher.class.getName()), SIMULATOR_LAUNCHER_REMOTE(SimulationService.SIMULATION_LAUNCHER + ".2", n("isisfish.config.main.remoteCaparmor.description"), SSHSimulatorLauncher.class.getName()), + + // pour les simulations + SIMULATION_MATRIX_VECTOR_CLASS("simulation.matrix.vector.class", n("isisfish.config.simulation.matrix.vector.class.description"), DoubleBigVector.class.getName()), + /** Nombre maximum de thread de simulation in process. */ SIMULATOR_IN_MAXTHREADS("simulation.in.max.threads", n("isisfish.config.main.simulation.in.max.threads.description"), "1"), Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2014-06-17 15:29:15 UTC (rev 4023) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2014-06-17 15:50:26 UTC (rev 4024) @@ -25,6 +25,8 @@ package fr.ifremer.isisfish.simulator; +import fr.ifremer.isisfish.IsisConfig; +import fr.ifremer.isisfish.IsisFish; import java.io.File; import java.util.HashMap; import java.util.LinkedHashSet; @@ -42,6 +44,7 @@ import fr.ifremer.isisfish.types.TimeStep; import fr.ifremer.isisfish.util.IsisCache; import fr.ifremer.isisfish.util.Trace; +import org.nuiton.math.matrix.MatrixFactory; /** * Keep all information on one simulation. @@ -101,7 +104,8 @@ }; protected SimulationContext() { - + // force matrix backend for this simulation + MatrixFactory.initMatrixFactoryThreadLocal(IsisFish.config.getSimulationMatrixVectorClass()); } /** Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2014-06-17 15:29:15 UTC (rev 4023) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2014-06-17 15:50:26 UTC (rev 4024) @@ -70,6 +70,7 @@ import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.types.TimeStep; import fr.ifremer.isisfish.util.CompileHelper; +import org.nuiton.math.matrix.MatrixFactory; /** * Fait une simulation dans la meme jvm. @@ -421,6 +422,10 @@ // Call listener simulation (used per example for prescript) // context.fireBeforeSimulation(); + String matrixBackend = MatrixFactory.getInstance().getVectorClass().getName(); + simulation.getInformation().addInformation("Matrix backend: " + + matrixBackend); + log.info("Matrix backend: " + matrixBackend); simulatorObject.simulate(context); // Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java 2014-06-17 15:29:15 UTC (rev 4023) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java 2014-06-17 15:50:26 UTC (rev 4024) @@ -225,6 +225,7 @@ modelBuilder.addOption(IsisConfig.Option.SIMULATOR_IN_MAXTHREADS); modelBuilder.addOption(IsisConfig.Option.SIMULATOR_SUB_MAXPROCESS); modelBuilder.addOption(IsisConfig.Option.SIMULATOR_SUB_MAXMEMORY); + modelBuilder.addOption(IsisConfig.Option.SIMULATION_MATRIX_VECTOR_CLASS); modelBuilder.addOption(IsisConfig.Option.MAPPED_RESULT_MATRIX_VECTOR_CLASS); // category database vcs