Abstract
Reverse computation has become a central notion in discrete event simulation over the last decade. It is not just a theoretical line of research, but an immensely practical one that is necessary to achieve high performance for large parallel discrete event simulations (PDES). The models that are implemented for PDES are of increasing complexity and size and require various language features to support abstraction, encapsulation, and composition when building a simulation model. In this paper we focus on parallel simulation models that are written in C++ and present an approach for automatically generating reverse code for C++. The strategy we have adopted for our approach is to first assure that we can correctly handle event methods that use the entire C++ language. Although a significant runtime overhead is introduced with our technique, the assurance that the reverse code is always generated fully automatically is an enormous win that can open the door to routine optimistic simulation with models that can be implemented using the entire C++ language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Carothers, C.D., Perumalla, K.S., Fujimoto, R.M.: Efficient optimistic parallel simulations using reverse computation. ACM Trans. Model. Comput. Simul. 9(3), 224–253 (1999)
Perumalla, K.S.: Introduction to Reversible Computing (2013)
Barnes, Jr., P.D., Carothers, C.D., Jefferson, D.R., LaPre, J.M.: Warp speed: executing time warp on 1,966,080 cores. In: Proceedings of the 2013 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. SIGSIM-PADS 2013, pp. 327–336. ACM, New York (2013)
Fujimoto, R.M.: Parallel and Distribution Simulation Systems, 1st edn. John Wiley & Sons Inc, New York (1999)
Quinlan, D., Liao, C., Matzke, R., Schordan, M., Panas, T., Vuduc, R., Yi, Q.: ROSE Web Page (2014). http://www.rosecompiler.org
Vulov, G., Hou, C., Vuduc, R., Fujimoto, R., Quinlan, D., Jefferson, D.: The backstroke framework for source level reverse computation applied to parallel discrete event simulation. In: Proceedings of the Winter Simulation Conference. WSC 2011, Winter Simulation Conference, pp. 2965–2979 (2011)
Holder, A.O., Carothers, C.D.: Analysis of time warp on a 32,768 processor ibm blue gene/l supercomputer. In: Proceedings of the European Modeling and Simulation Symposium (EMSS) (2008)
Jefferson, D.R.: Virtual time. ACM Trans. Program. Lang. Syst. 7(3), 404–425 (1985)
Perumalla, K.S., Park, A.J.: Reverse computation for rollback-based fault tolerance in large parallel systems. Cluster Computing 17(2), 303–313 (2014)
LaPre, J.M., Gonsiorowski, E.J., Carothers, C.D.: Lorain: a step closer to the pdes ’holy grail’. In: Proceedings of the 2nd ACM SIGSIM/PADS Conference on Principles of Advanced Discrete Simulation. SIGSIM-PADS 2014, pp. 3–14. ACM, New York (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Schordan, M., Jefferson, D., Barnes, P., Oppelstrup, T., Quinlan, D. (2015). Reverse Code Generation for Parallel Discrete Event Simulation. In: Krivine, J., Stefani, JB. (eds) Reversible Computation. RC 2015. Lecture Notes in Computer Science(), vol 9138. Springer, Cham. https://doi.org/10.1007/978-3-319-20860-2_6
Download citation
DOI: https://doi.org/10.1007/978-3-319-20860-2_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-20859-6
Online ISBN: 978-3-319-20860-2
eBook Packages: Computer ScienceComputer Science (R0)