Visible to the public Automatic Generation of Reversible C++ Code and Its Performance in a Scalable Kinetic Monte-Carlo Application

TitleAutomatic Generation of Reversible C++ Code and Its Performance in a Scalable Kinetic Monte-Carlo Application
Publication TypeConference Paper
Year of Publication2016
AuthorsSchordan, Markus, Oppelstrup, Tomas, Jefferson, David, Barnes, Jr., Peter D., Quinlan, Dan
Conference NameProceedings of the 2016 Annual ACM Conference on SIGSIM Principles of Advanced Discrete Simulation
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-3742-7
Keywordscheckpointing, composability, incremental state saving, optimistic PDES, pubcrawl, reversible computation, Scalability, software assurance, time warp
Abstract

The fully automatic generation of code that establishes the reversibility of arbitrary C/C++ code has been a target of research and engineering for more than a decade as reverse 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 in C++ and present an approach and an evaluation for a fully automatically generated reversible code for a kinetic Monte-Carlo application implemented in C++. Although a significant runtime overhead is introduced with our technique, the assurance that the reverse code is generated automatically and correctly, is an enormous win that allows simulation model developers to write forward event code using the entire C++ language, and have that code automatically transformed into reversible code to enable parallel execution with the Rensselaer's Optimistic Simulation System (ROSS).

URLhttp://doi.acm.org/10.1145/2901378.2901394
DOI10.1145/2901378.2901394
Citation Keyschordan_automatic_2016