Developing Parallel, Discrete Event Simulations in Python - First Results and User Experiences with the SimX Library

Sunil Thulasidasan, Lukas Kroc, Stephan Eidenbenz

2014

Abstract

This paper describes SimX, a recently developed library for developing parallel, discrete-event simulations in Python. Written in C++ and Python, SimX enables rapid development and prototyping of a parallel simulation entirely in Python by providing the simulation modeler with core functionality such as processes, event queuing, time advancement, domain partitioning, synchronization and message passing. Designed for both ease-of-use and scalability, applications built using SimX can be executed on multi-core workstations or high performance clusters and can also be easily integrated with other Python tools for scientific computing. In this paper, we briefly discuss the motivation for developing SimX, provide a brief but illustrative example on using SimX to develop an application, a short description of its architecture and some of our initial experiences using SimX in a diverse array of domains. SimX is free software and is publicly available at http://github.com/sim-x under the GNU LGPL license.

References

  1. Abrahams, D. and Grosse-Kuntsleve, R. (2003). Building hybrid systems with boost.python. http://www.boostpro.com/writing/bpl.html.
  2. Barr, R., Haas, Z. J., and van Renesse, R. (2005). Jist: an efficient approach to simulation using virtual machines: Research articles. Softw. Pract. Exper., 35(6):539- 576.
  3. cPickles (2006). http://docs.python.org/2/library/pickle.html.
  4. Galli, E., Eidenbenz, S., Mniszewski, S., Teuscher, C., and Cuellar, L. (2009). Activitysim: Large-scale agentbased activity generation for infrastructure simulation. In Proceedings of the 2009 Spring Simulation Conference.
  5. Hybinette, M., Kraemer, E., Xiong, Y., Matthews, G., and Ahmed, J. (2006). Sassy: a design for a scalable North, M. J., Collier, N. T., and Vos, J. R. (2006). Experiences creating three implementations of the repast agent modeling toolkit. ACM Trans. Model. Comput. Simul., 16(1):1-25.
  6. NS-2. http://www.isi.edu/nsnam.
  7. NS-3. http://www.nsnam.org.
  8. OMNET++ (1996). http://www.omnetpp.org.
  9. Pecevski, D., Natschlager, T., and Schuch, K. (2009). Pcsim: a parallel simulation environment for neural circuits fully integrated with python. Frontiers in Neuroinformatics, 3(0).
  10. Pellegrini, A., Vitali, R., and Quaglia, F. (2011). The rome optimistic simulator: Core internals and programming model. In Proceedings of the 4th International ICST Conference on Simulation Tools and Techniques, SIMUTools 7811, pages 96-98, ICST, Brussels, Belgium, Belgium. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering).
  11. Perumalla, K. (2005). µsik - a micro-kernel for parallel/distributed simulation systems. In Workshop on Principles of Advanced and Distributed Simulation.
  12. Ramos and Martins (2004). Clustersim: a Java-based parallel discrete-event simulation tool for cluster computing. In Proceedings of IEEE International Conference on Cluster Computing.
  13. Schmitt, R. (2012). http://greenlet.readthedocs.org.
  14. Thulasidasan, S., Kasiviswanathan, S., Eidenbenz, S., and Romero, P. (2010). Explicit spatial scattering for load balancing in conservatively synchronized parallel discrete event simulations. In Proceedings of ACM/IEEE Workshop on Principles of Advanced and Distributed Simulation (PADS).
  15. Thulasidasan, S., Kroc, L., and Eidenbenz, S. (2012). Simcore: A library for rapid development of large scale parallel simulations. In SIMULTECH, pages 71-76.
  16. Williams, S. and Eidenbenz, S. (2013). Themis-1: An agent-based model of a modern monetary reserve system. In Proceedings of the Agent-Directed Simulation Symposium, ADSS 13, pages 6:1-6:8, San Diego, CA, USA. Society for Computer Simulation International.
Download


Paper Citation


in Harvard Style

Thulasidasan S., Kroc L. and Eidenbenz S. (2014). Developing Parallel, Discrete Event Simulations in Python - First Results and User Experiences with the SimX Library . In Proceedings of the 4th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH, ISBN 978-989-758-038-3, pages 188-194. DOI: 10.5220/0005042701880194


in Bibtex Style

@conference{simultech14,
author={Sunil Thulasidasan and Lukas Kroc and Stephan Eidenbenz},
title={Developing Parallel, Discrete Event Simulations in Python - First Results and User Experiences with the SimX Library},
booktitle={Proceedings of the 4th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH,},
year={2014},
pages={188-194},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005042701880194},
isbn={978-989-758-038-3},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 4th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH,
TI - Developing Parallel, Discrete Event Simulations in Python - First Results and User Experiences with the SimX Library
SN - 978-989-758-038-3
AU - Thulasidasan S.
AU - Kroc L.
AU - Eidenbenz S.
PY - 2014
SP - 188
EP - 194
DO - 10.5220/0005042701880194