Automatic generation of reversible C++ code and its performance in a scalable kinetic Monte-Carlo application

15Citations
Citations of this article
11Readers
Mendeley users who have this article in their library.

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).

Cite

CITATION STYLE

APA

Schordan, M., Oppelstrup, T., Jefferson, D., Barnes, P. D., & Quinlan, D. (2016). Automatic generation of reversible C++ code and its performance in a scalable kinetic Monte-Carlo application. In SIGSIM-PADS 2016 - Proceedings of the 2016 Annual ACM Conference on Principles of Advanced Discrete Simulation (pp. 111–122). Association for Computing Machinery, Inc. https://doi.org/10.1145/2901378.2901394

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free