Process-oriented Discrete-event Simulation in Java with Continuations - Quantitative Performance Evaluation

Antonio Cuomo, Massimiliano Rak, Umberto Villano

2012

Abstract

In discrete-event simulation the process interaction view is appreciated in many different contexts, as it often provides the cleanest and simplest way to express models. However, this view is harder to implement than the more common event-oriented view. This is mostly due to the need for the simulation engine to support in a efficient way the coroutine-like semantics needed to implement the simulation processes. A common solution adopted in many Java-based simulators is the use of system threads to provide coroutines. This paper shows that this choice leads to unnecessary overheads and limitations, and presents an alternative implementation based on continuations. For many common models the continuation-based simulator shows significant performance gains compared to the most popular open source Java engines.

References

  1. Derrick, E., Balci, O., and Nance, R. (1989). A comparison of selected conceptual frameworks for simulation modeling. In Proc. of the 21st Winter Simulation Conference, pages 711-718.
  2. Fujimoto, R. M. (1990). Performance of Time Warp under synthetic workloads. In Proc. of 22nd SCS Multiconference on Distributed Simulation.
  3. Helsgaun, K. (2000). Discrete Event Simulation in Java. http://akira.ruc.dk/~keld/research/JAVASIMULATIO N/JAVASIMULATION-1.0/docs/Report.pdf.
  4. Howell, F. and McNab, R. (1998). SimJava: a discrete event simulation package for Java with applications in computer systems modelling. In Proc. of the First International Conference on Web-based Modelling and Simulation.
  5. Jacobs, P., Lang, N., and Verbraeck, A. (2002). D-SOL; a distributed Java based discrete event simulation architecture. In Proc. of the 34th Winter Simulation Conference: exploring new frontiers, pages 793-800.
  6. Kiviat, P. (1969). Digital computer simulation: computer programming languages. Rand Corp.
  7. Kunert, A. (2008). Optimistic parallel Process-Oriented DES in Java using Bytecode Rewriting. In Proc. of MESM 2008, pages 15-21.
  8. Lechler, T. and Page, B. (1999). DESMO-J: An object oriented discrete simulation framework in Java. In Proc. Simulation in Industry 7899 - 11th European Simulation Symposium 7899, pages 119-124. SCS publ.
  9. L'Ecuyer, P. and Buist, E. (2005). Simulation in Java with SSJ. In Proc. of the 37th Winter Simulation Conference, pages 611-620.
  10. Marlin, C. (1980). Coroutines: A Programming Methodology, a Language Design and an Implementation, volume 95 of Lecture notes in computer science. Springer.
  11. Miller, J., Nair, R., Zhang, Z., and Zhao, H. (1997). JSIM: A Java-based simulation and animation environment. In Simulation Symposium, 1997. Proc.. 30th Annual, pages 31-42. IEEE.
  12. Nance, R. (1996). A history of discrete event simulation programming languages. In History of programming languages-II, pages 369-427. ACM.
  13. Ortega-Ruiz, J., Curdt, T., and Ametller-Esquerra, J. (2004). Continuation-based mobile agent migration. http://hacks-galore.org/jao/spasm.pdf .
  14. Perumalla, K. and Fujimoto, R. (1998). Efficient large-scale process-oriented parallel simulations. In Proc. of the 30th Winter Simulation Conference, pages 459-466.
  15. Reynolds, J. (1993). The discoveries of continuations. Lisp and symbolic computation, 6(3):233-247.
  16. Schwetman, H. (2001). CSIM19: a powerful tool for building system models. In Proc. of the 33nd Winter Simulation Conference, pages 250-255. IEEE.
  17. Stadler, L. (2011). Serializable coroutines for the HotSpotTM Java virtual machine. Master's thesis, Johannes Kepler University Linz, Austria.
  18. Weatherly, R. and Page, E. (2004). Efficient process interaction simulation in Java: Implementing co-routines within a single Java thread. In Proc. of the 36th Winter Simulation Conference, pages 1437-1443.
Download


Paper Citation


in Harvard Style

Cuomo A., Rak M. and Villano U. (2012). Process-oriented Discrete-event Simulation in Java with Continuations - Quantitative Performance Evaluation . In Proceedings of the 2nd International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH, ISBN 978-989-8565-20-4, pages 87-96. DOI: 10.5220/0004014500870096


in Bibtex Style

@conference{simultech12,
author={Antonio Cuomo and Massimiliano Rak and Umberto Villano},
title={Process-oriented Discrete-event Simulation in Java with Continuations - Quantitative Performance Evaluation},
booktitle={Proceedings of the 2nd International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH,},
year={2012},
pages={87-96},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004014500870096},
isbn={978-989-8565-20-4},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 2nd International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH,
TI - Process-oriented Discrete-event Simulation in Java with Continuations - Quantitative Performance Evaluation
SN - 978-989-8565-20-4
AU - Cuomo A.
AU - Rak M.
AU - Villano U.
PY - 2012
SP - 87
EP - 96
DO - 10.5220/0004014500870096