Reversible imperative parallel programs and debugging
conference contributionposted on 2020-05-13, 14:59 authored by J Hoey, I Ulidowski
We present a state-saving approach to reversible execution of imperative programs containing parallel composition. Given an original program, we produce an annotated version of the program that both performs forwards execution and all necessary state-saving of required reversal information. We further produce an inverted version of our program, capable of using this saved information to reverse the effects of each step of the forwards execution. We show that this process implements correct and garbage-free inversion. We give examples of how our implementation of reversible execution can be used for debugging, and demonstrate how a simulation tool we have developed for our approach can be used to examine the program state. Finally, we evaluate the performance and overheads associated with state-saving and inversion.
The authors acknowledge partial support of COST Action IC1405 on Reversible Computation - Extending Horizons of Computing.
CitationLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2019, 11497 LNCS, pp. 108-127
Author affiliation/Organisation/COLLEGE OF SCIENCE AND ENGINEERING/Department of Informatics
SourceReversible Computation. RC 2019
- AM (Accepted Manuscript)