01.01.2015 Views

LARGE-SCALE PARALLEL GRAPH-BASED SIMULATIONS - MATSim

LARGE-SCALE PARALLEL GRAPH-BASED SIMULATIONS - MATSim

LARGE-SCALE PARALLEL GRAPH-BASED SIMULATIONS - MATSim

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4 Parallel Queue Model 37<br />

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

4.1.1 Message Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

4.1.2 Domain Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

4.2 Parallel Computing in Transportation Simulations . . . . . . . . . . . . . . . . 40<br />

4.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

4.3.1 Handling Domain Decomposition . . . . . . . . . . . . . . . . . . . . 41<br />

4.3.2 Handling Message Exchanging . . . . . . . . . . . . . . . . . . . . . . 42<br />

4.3.3 Communication Software . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

4.4 Theoretical Performance Expectations . . . . . . . . . . . . . . . . . . . . . . 44<br />

4.5 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

4.5.1 Comparison of Different Communication Hardware: Ethernet vs. Myrinet 48<br />

4.5.2 Comparison of Different Communication Software: MPI vs. PVM . . . 50<br />

4.5.3 Comparison of Different Packing Algorithms . . . . . . . . . . . . . . 51<br />

4.5.4 Different Domain Decomposition Algorithms . . . . . . . . . . . . . . 55<br />

4.6 Conclusions and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />

4.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

5 Coupling the Traffic Simulation to Mental Modules 60<br />

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

5.2 Coupling Modules via Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

5.2.1 Description of a Framework . . . . . . . . . . . . . . . . . . . . . . . 60<br />

5.2.2 Performance Issues of Reading an Events File . . . . . . . . . . . . . . 63<br />

5.2.3 Performance Issues of Plan Writing . . . . . . . . . . . . . . . . . . . 67<br />

5.3 Other Coupling Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

5.3.1 Module Coupling via Subroutine Calls . . . . . . . . . . . . . . . . . 68<br />

5.3.2 Module Coupling via Remote Procedure Calls (e.g. CORBA, Java RMI) 69<br />

5.3.3 Module Coupling via WWW Protocols . . . . . . . . . . . . . . . . . 70<br />

5.3.4 Module Coupling via Databases . . . . . . . . . . . . . . . . . . . . . 70<br />

5.3.5 Module Coupling via Messages . . . . . . . . . . . . . . . . . . . . . 72<br />

5.4 Conclusions and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

5.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

6 Events Recorder 74<br />

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

6.2 The Competing File I/O Performance for Events . . . . . . . . . . . . . . . . . 76<br />

6.3 Other Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

6.4 Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

6.5 Test Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

6.6 Raw vs. XML Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

6.7 Buffered vs. Immediate Reporting of Events . . . . . . . . . . . . . . . . . . . 79<br />

6.7.1 Reporting Buffered Events . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

6.7.2 Immediately Reported Events . . . . . . . . . . . . . . . . . . . . . . 79<br />

6.8 Theoretical Expectation for Buffered Events . . . . . . . . . . . . . . . . . . . 79<br />

6.8.1 Packing Time Prediction . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

6.8.2 Sending and Receiving Time Prediction . . . . . . . . . . . . . . . . . 82<br />

6.8.3 Unpacking Time Prediction . . . . . . . . . . . . . . . . . . . . . . . 83<br />

6.8.4 Writing Time Prediction . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

6.8.5 Performance Prediction for Buffered Events: Putting it together . . . . 84<br />

v

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!