The Backstroke framework for source level reverse computation applied to parallel discrete event simulation
- 1 December 2011
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 2960-2974
- https://doi.org/10.1109/wsc.2011.6147998
Abstract
We introduce Backstroke, a new open source framework for the automatic generation of reverse code for functions written in C++. Backstroke enables reverse computation for optimistic parallel discrete event simulations. It is built using the ROSE open-source compiler infrastructure, and handles complex C++ features including pointers and pointer types, arrays, function and method calls, class types, inheritance, polymorphism, virtual functions, abstract classes, templated classes and containers. Backstroke also introduces new program inversion techniques based on advanced compiler analysis tools built into ROSE. We explore and illustrate some of the complex language and semantic issues that arise in generating correct reverse code for C++ functions.Keywords
This publication has 26 references indexed in Scilit:
- Optimistic Simulations of Physical Systems Using Reverse ComputationSIMULATION, 2006
- GTW: a time warp system for shared memory multiprocessorsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Optimistic Synchronization in HLA-Based Distributed SimulationSIMULATION, 2005
- ROSS: A high-performance, low-memory, modular Time Warp systemJournal of Parallel and Distributed Computing, 2002
- TWLinuX: Operating System Support for Optimistic Parallel Discrete Event SimulationLecture Notes in Computer Science, 2001
- Efficient optimistic parallel simulations using reverse computationACM Transactions on Modeling and Computer Simulation, 1999
- Efficiently computing static single assignment form and the control dependence graphACM Transactions on Programming Languages and Systems, 1991
- IGOR: a system for program debugging via reversible executionPublished by Association for Computing Machinery (ACM) ,1988
- Virtual timeACM Transactions on Programming Languages and Systems, 1985
- Reversible executionCommunications of the ACM, 1973