Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Generation of Reversible C++ Code for Optimistic Parallel Discrete Event Simulation

Journal Article · · New Generation Computing
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).
Research Organization:
Lawrence Livermore National Laboratory (LLNL), Livermore, CA (United States)
Sponsoring Organization:
USDOE National Nuclear Security Administration (NNSA)
Grant/Contract Number:
AC52-07NA27344
OSTI ID:
1658686
Report Number(s):
LLNL-JRNL--745586; 930204
Journal Information:
New Generation Computing, Journal Name: New Generation Computing Journal Issue: 3 Vol. 36; ISSN 0288-3635
Country of Publication:
United States
Language:
English

References (22)

Reversible Flowchart Languages and the Structured Reversible Program Theorem book January 2008
A New Method for Program Inversion book January 2012
Reverse computation for rollback-based fault tolerance in large parallel systems: Evaluating the potential gains and systems effects journal June 2013
HYPERS: A unidimensional asynchronous framework for multiscale hybrid simulations journal February 2012
Virtual Time journal January 2004
Hardware-Transactional-Memory Based Speculative Parallel Discrete Event Simulation of Very Fine Grain Models conference December 2015
Autonomic State Management for Optimistic Simulation Platforms journal June 2015
The Backstroke framework for source level reverse computation applied to parallel discrete event simulation conference December 2011
Transparent Incremental State Saving in Time Warp Parallel Discrete Event Simulation conference January 1996
Efficient optimistic parallel simulations using reverse computation
  • Carothers, C. D.; Perumalla, K. S.; Fujimoto, R. M.
  • 13th Workshop on Parallel and Distributed Simulation, Proceedings Thirteenth Workshop on Parallel and Distributed Simulation. PADS 99. (Cat. No.PR00155) https://doi.org/10.1109/pads.1999.766169
conference January 1999
A reversible programming language and its invertible self-interpreter conference January 2007
Principles of a reversible programming language conference January 2008
Transparent incremental state saving in time warp parallel discrete event simulation journal July 1996
Warp speed: executing time warp on 1,966,080 cores
  • 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 https://doi.org/10.1145/2486092.2486134
conference January 2013
LORAIN: a step closer to the PDES 'holy grail'
  • 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 https://doi.org/10.1145/2601381.2601397
conference January 2014
Transparently Mixing Undo Logs and Software Reversibility for State Recovery in Optimistic PDES
  • Cingolani, Davide; Pellegrini, Alessandro; Quaglia, Francesco
  • Proceedings of the 3rd ACM Conference on SIGSIM-Principles of Advanced Discrete Simulation - SIGSIM-PADS '15 https://doi.org/10.1145/2769458.2769482
conference January 2015
Automatic Generation of Reversible C++ Code and Its Performance in a Scalable Kinetic Monte-Carlo Application
  • Schordan, Markus; Oppelstrup, Tomas; Jefferson, David
  • Proceedings of the 2016 annual ACM Conference on SIGSIM Principles of Advanced Discrete Simulation - SIGSIM-PADS '16 https://doi.org/10.1145/2901378.2901394
conference January 2016
A Fine-Grain Time-Sharing Time Warp System journal July 2017
Dealing with Reversibility of Shared Libraries in PDES
  • 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 https://doi.org/10.1145/3064911.3064927
conference May 2017
Transparently Mixing Undo Logs and Software Reversibility for State Recovery in Optimistic PDES
  • Cingolani, Davide; Pellegrini, Alessandro; Quaglia, Francesco
  • ACM Transactions on Modeling and Computer Simulation, Vol. 27, Issue 2 https://doi.org/10.1145/3077583
journal July 2017
Efficient optimistic parallel simulations using reverse computation journal July 1999
Virtual time journal July 1985

Cited By (2)

Report of the Workshop on Program Synthesis for Scientific Computing preprint January 2021
Reversing P/T Nets
  • 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 https://doi.org/10.1007/978-3-030-22397-7_2
book June 2019

Similar Records

Visual Data-Analytics of Large-Scale Parallel Discrete-Event Simulations
Conference · Sat Nov 12 23:00:00 EST 2016 · OSTI ID:1392627

Reversible Discrete Event Formulation and Optimistic Parallel Execution of Vehicular Traffic Models
Journal Article · Wed Dec 31 23:00:00 EST 2008 · International Journal of Simulation and Process Modeling · OSTI ID:1015679

Optimistic Simulations of Physical Systems using Reverse Computation
Journal Article · Sat Dec 31 23:00:00 EST 2005 · SIMULATION: Transactions of The Society for Modeling and Simulation International · OSTI ID:1003413