Generation of Reversible C++ Code for Optimistic Parallel Discrete Event Simulation
Abstract
The reversible execution of C/C++ code has been a target of research and engineering for more than a decade as reversible computation has become a central notion in large-scale parallel discrete event simulation (PDES). The simulation 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 with user-defined C++ abstractions and abstractions of the C++ Standard Library. We present an approach based on incremental state saving for establishing reversibility of C++ and an evaluation for a kinetic Monte-Carlo simulation implemented in C++. Although a significant runtime overhead is introduced with our technique, it is an enormous win that it allows using the entire C++ language, and has that code automatically transformed into reversible code to enable parallel execution with the Rensselaer’s optimistic simulation system (ROSS).
- Authors:
-
- Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
- Publication Date:
- Research Org.:
- Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
- Sponsoring Org.:
- USDOE National Nuclear Security Administration (NNSA)
- OSTI Identifier:
- 1658686
- Report Number(s):
- LLNL-JRNL-745586
Journal ID: ISSN 0288-3635; 930204
- Grant/Contract Number:
- AC52-07NA27344
- Resource Type:
- Journal Article: Accepted Manuscript
- Journal Name:
- New Generation Computing
- Additional Journal Information:
- Journal Volume: 36; Journal Issue: 3; Journal ID: ISSN 0288-3635
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS AND COMPUTING; Reversible computation; PDES; checkpointing; incremental state saving; program transformation
Citation Formats
Schordan, Markus, Oppelstrup, Tomas, Jefferson, David, and Barnes, Peter D. Generation of Reversible C++ Code for Optimistic Parallel Discrete Event Simulation. United States: N. p., 2018.
Web. doi:10.1007/s00354-018-0038-2.
Schordan, Markus, Oppelstrup, Tomas, Jefferson, David, & Barnes, Peter D. Generation of Reversible C++ Code for Optimistic Parallel Discrete Event Simulation. United States. https://doi.org/10.1007/s00354-018-0038-2
Schordan, Markus, Oppelstrup, Tomas, Jefferson, David, and Barnes, Peter D. Fri .
"Generation of Reversible C++ Code for Optimistic Parallel Discrete Event Simulation". United States. https://doi.org/10.1007/s00354-018-0038-2. https://www.osti.gov/servlets/purl/1658686.
@article{osti_1658686,
title = {Generation of Reversible C++ Code for Optimistic Parallel Discrete Event Simulation},
author = {Schordan, Markus and Oppelstrup, Tomas and Jefferson, David and Barnes, Peter D.},
abstractNote = {The reversible execution of C/C++ code has been a target of research and engineering for more than a decade as reversible computation has become a central notion in large-scale parallel discrete event simulation (PDES). The simulation 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 with user-defined C++ abstractions and abstractions of the C++ Standard Library. We present an approach based on incremental state saving for establishing reversibility of C++ and an evaluation for a kinetic Monte-Carlo simulation implemented in C++. Although a significant runtime overhead is introduced with our technique, it is an enormous win that it allows using the entire C++ language, and has that code automatically transformed into reversible code to enable parallel execution with the Rensselaer’s optimistic simulation system (ROSS).},
doi = {10.1007/s00354-018-0038-2},
url = {https://www.osti.gov/biblio/1658686},
journal = {New Generation Computing},
issn = {0288-3635},
number = 3,
volume = 36,
place = {United States},
year = {2018},
month = {7}
}
Web of Science
Works referenced in this record:
The Backstroke framework for source level reverse computation applied to parallel discrete event simulation
conference, December 2011
- Vulov, George; Hou, Cong; Vuduc, Richard
- 2011 Winter Simulation Conference - (WSC 2011), Proceedings of the 2011 Winter Simulation Conference (WSC)
HYPERS: A unidimensional asynchronous framework for multiscale hybrid simulations
journal, February 2012
- Omelchenko, Y. A.; Karimabadi, H.
- Journal of Computational Physics, Vol. 231, Issue 4
Principles of a reversible programming language
conference, January 2008
- Yokoyama, Tetsuo; Axelsen, Holger Bock; Glück, Robert
- Proceedings of the 2008 conference on Computing frontiers - CF '08
A reversible programming language and its invertible self-interpreter
conference, January 2007
- Yokoyama, Tetsuo; Glück, Robert
- Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM '07
Virtual time
journal, July 1985
- Jefferson, David R.
- ACM Transactions on Programming Languages and Systems, Vol. 7, Issue 3
LORAIN: a step closer to the PDES 'holy grail'
conference, January 2014
- LaPre, Justin M.; Gonsiorowski, Elsa J.; Carothers, Christopher D.
- Proceedings of the 2nd ACM SIGSIM/PADS conference on Principles of advanced discrete simulation - SIGSIM-PADS '14
Efficient optimistic parallel simulations using reverse computation
journal, July 1999
- Carothers, Christopher D.; Perumalla, Kalyan S.; Fujimoto, Richard M.
- ACM Transactions on Modeling and Computer Simulation, Vol. 9, Issue 3
Reverse computation for rollback-based fault tolerance in large parallel systems: Evaluating the potential gains and systems effects
journal, June 2013
- Perumalla, Kalyan S.; Park, Alfred J.
- Cluster Computing, Vol. 17, Issue 2
Autonomic State Management for Optimistic Simulation Platforms
journal, June 2015
- Pellegrini, Alessandro; Vitali, Roberto; Quaglia, Francesco
- IEEE Transactions on Parallel and Distributed Systems, Vol. 26, Issue 6
Warp speed: executing time warp on 1,966,080 cores
conference, January 2013
- Barnes, Peter D.; Carothers, Christopher D.; Jefferson, David R.
- Proceedings of the 2013 ACM SIGSIM conference on Principles of advanced discrete simulation - SIGSIM-PADS '13
A Fine-Grain Time-Sharing Time Warp System
journal, July 2017
- Pellegrini, Alessandro; Quaglia, Francesco
- ACM Transactions on Modeling and Computer Simulation, Vol. 27, Issue 2
Hardware-Transactional-Memory Based Speculative Parallel Discrete Event Simulation of Very Fine Grain Models
conference, December 2015
- Santini, Emanuele; Ianni, Mauro; Pellegrini, Alessandro
- 2015 IEEE 22nd International Conference on High Performance Computing (HiPC)
Automatic Generation of Reversible C++ Code and Its Performance in a Scalable Kinetic Monte-Carlo Application
conference, January 2016
- Schordan, Markus; Oppelstrup, Tomas; Jefferson, David
- Proceedings of the 2016 annual ACM Conference on SIGSIM Principles of Advanced Discrete Simulation - SIGSIM-PADS '16
Dealing with Reversibility of Shared Libraries in PDES
conference, May 2017
- Cingolani, Davide; Pellegrini, Alessandro; Schordan, Markus
- SIGSIM-PADS '17: SIGSIM Principles of Advanced Discrete Simulation, Proceedings of the 2017 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation
Transparent incremental state saving in time warp parallel discrete event simulation
journal, July 1996
- Rönngren, Robert; Liljenstam, Michael; Ayani, Rassul
- ACM SIGSIM Simulation Digest, Vol. 26, Issue 1
Transparently Mixing Undo Logs and Software Reversibility for State Recovery in Optimistic PDES
conference, January 2015
- Cingolani, Davide; Pellegrini, Alessandro; Quaglia, Francesco
- Proceedings of the 3rd ACM Conference on SIGSIM-Principles of Advanced Discrete Simulation - SIGSIM-PADS '15
Transparently Mixing Undo Logs and Software Reversibility for State Recovery in Optimistic PDES
journal, July 2017
- Cingolani, Davide; Pellegrini, Alessandro; Quaglia, Francesco
- ACM Transactions on Modeling and Computer Simulation, Vol. 27, Issue 2
Works referencing / citing this record:
Reversing P/T Nets
book, June 2019
- Melgratti, Hernán; Mezzina, Claudio Antares; Ulidowski, Irek
- Coordination Models and Languages: 21st IFIP WG 6.1 International Conference, COORDINATION 2019, Held as Part of the 14th International Federated Conference on Distributed Computing Techniques, DisCoTec 2019, Kongens Lyngby, Denmark, June 17–21, 2019, Proceedings, p. 19-36