MATSIM
Static Public Member Functions | Static Private Attributes | List of all members
tutorial.programming.example17Parallelisation.RunParallelisationExample Class Reference

Static Public Member Functions

static void main (String[] args)
 

Static Private Attributes

final static Logger LOG = Logger.getLogger(Math.class)
 

Detailed Description

Demonstrates how to use parallelisation in MATSim using the Sioux Falls example. It is assumed the machine you are running this on actually accommodates multiple threads.

Author
jwjoubert

Definition at line 59 of file RunParallelisationExample.java.

Member Function Documentation

static void tutorial.programming.example17Parallelisation.RunParallelisationExample.main ( String[]  args)
static

Running the Sioux-Falls scenario, first with single thread, and then in parallel (for all modules allowing parallelisation: mobsim, replanning and events handling).

Note: the purpose of the example is to show how multi-threaded behaviour is switched on. It may be, given your hardware setup, that this example runs longer under the multi-threaded setup ;-)

Parameters
args

Definition at line 73 of file RunParallelisationExample.java.

References org.matsim.core.config.Config.controler, org.matsim.core.config.ConfigUtils.createConfig(), org.matsim.core.utils.io.IOUtils.deleteDirectory(), org.matsim.core.config.Config.global, org.matsim.core.config.ConfigUtils.loadConfig(), org.matsim.core.scenario.ScenarioUtils.loadScenario(), org.matsim.core.config.Config.parallelEventHandling, org.matsim.core.gbl.Gbl.printElapsedTime(), org.matsim.core.config.Config.qsim(), org.matsim.core.controler.Controler.run(), and org.matsim.core.gbl.Gbl.startMeasurement().

73  {
74  /* Running in single thread. */
75  Gbl.startMeasurement();
76  Config config = ConfigUtils.createConfig();
77  String configFilename = "examples/siouxfalls-2014/config_default.xml";
78  ConfigUtils.loadConfig(config, configFilename);
79  config.controler().setLastIteration(10);
80  /*====================================================================*/
81  /* Setting parallelisation: */
82  config.qsim().setNumberOfThreads(1); /* Mobility simulation */
83  config.global().setNumberOfThreads(1); /* Replanning */
84  config.parallelEventHandling().setNumberOfThreads(1); /* Events handling. */
85  /*====================================================================*/
86  Scenario sc = ScenarioUtils.loadScenario(config);
87  Controler controler = new Controler(sc);
88  controler.run();
89  LOG.info("Single thread time:");
90  Gbl.printElapsedTime();
91 
92  /* Running multi-threaded. First delete the output directory. */
93  IOUtils.deleteDirectory(new File(config.controler().getOutputDirectory()));
94  Gbl.startMeasurement();
95  config = ConfigUtils.createConfig();
96  ConfigUtils.loadConfig(config, configFilename);
97  config.controler().setLastIteration(10);
98  /*====================================================================*/
99  /* Setting parallelisation: */
100  config.qsim().setNumberOfThreads(2); /* Mobility simulation */
101  config.global().setNumberOfThreads(2); /* Replanning */
102  config.parallelEventHandling().setNumberOfThreads(2); /* Events handling. */
103  /*====================================================================*/
104  sc = ScenarioUtils.loadScenario(config);
105  controler = new Controler(sc);
106  controler.run();
107  LOG.info("Multi-threaded time:");
108  Gbl.printElapsedTime();
109  }

Here is the call graph for this function:

Member Data Documentation

final static Logger tutorial.programming.example17Parallelisation.RunParallelisationExample.LOG = Logger.getLogger(Math.class)
staticprivate

Definition at line 60 of file RunParallelisationExample.java.


The documentation for this class was generated from the following file: