Publication | Open Access
Automatic Generation of Reversible C++ Code and Its Performance in a Scalable Kinetic Monte-Carlo Application
17
Citations
12
References
2016
Year
Unknown Venue
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSimulationReverse CodeSoftware AnalysisFormal VerificationReverse ComputationSystems EngineeringModeling And SimulationParallel ComputingSimulation LanguageAutomatic GenerationMonte CarloCompiler SupportComputer EngineeringLarge-scale SimulationSoftware SimulationComputer ScienceOptimizing CompilerReversible C++ CodeComputational ScienceProgram AnalysisMonte Carlo MethodFormal MethodsParallel ProgrammingComputer Modeling
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).
| Year | Citations | |
|---|---|---|
Page 1
Page 1