Dealing with Reversibility of Shared Libraries in PDES

Davide Cingolani, Alessandro Pellegrini, Markus Schordan, Francesco Quaglia, and David R. Jefferson

Published in: Proceedings of the 2017 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation
pdf Download PDF

State recoverability is a crucial aspect of speculative Time Warp-based Parallel Discrete Event Simulation. In the literature, we can identify three major classes of techniques to support the correct restoration of a previous simulation state upon the execution of a rollback operation: state checkpointing/restore, manual reverse computation and automatic reverse computation. The latter class has been recently supported by relying either on binary code instrumentation or on source-to-source code transformation. Nevertheless, both solutions are not intrinsically meant to support a reversible execution of third-party shared libraries, which can be pretty useful when implementing complex simulation models.
In this paper, we present an architectural solution (realized as a static C library) which allows to transparently instrument at runtime any third party shared library, with no need for any modification to the model’s code. We also present a preliminary experimental evaluation, based on the integration of our library with the ROOT-Sim simulation engine.

BibTeX Entry:

author = {Cingolani, Davide and Pellegrini, Alessandro and Schordan, Markus and Quaglia, Francesco and Jefferson, David R.},
booktitle = {Proceedings of the 2017 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation},
title = {Dealing with Reversibility of Shared Libraries in PDES},
year = {2017},
month = may,
publisher = {ACM},
series = {PADS},
location = {Singapore},
name = {pads17b}