LORAIN: a step closer to the PDES ’Holy Grail’. Automatic parallelization of models has been the ”Holy Grail” of the PDES community for the last 20 years. In this paper we present LORAIN -- Low Overhead Runtime Assisted Instruction Negation -- a tool capable of automatic emission of a reverse event handler by the compiler. Upon detection of certain instructions, LORAIN is able to account for, and in many cases reverse, the computation without resorting to state-saving techniques. For our PDES framework, we use Rensselaer’s Optimistic Simulation System (ROSS) coupled with the LLVM compiler to generate the reverse event handler. One of the primary contributions of this work is that LORAIN operates on the LLVM-generated Intermediate Representation (IR) as opposed to the model, high-level source code. Through information gleaned from the IR, LORAIN is able to analyze, instrument, and invert various operations and emit efficient reverse event handlers at the binary code level. This preliminary work demonstrates the potential of this tool. We are able to reverse both the PHOLD model (a synthetic benchmark) as well as Fujimoto’s airport model. Our results demonstrate that LORAIN-generated models are able to execute at a rate that is over 97% of hand-written, parallel model code performance.
References in zbMATH (referenced in 2 articles )
Showing results 1 to 2 of 2.
- Cingolani, Davide; Ianni, Mauro; Pellegrini, Alessandro; Quaglia, Francesco: Mixing hardware and software reversibility for speculative parallel discrete event simulation (2016)
- Schordan, Markus; Jefferson, David; Barnes, Peter; Oppelstrup, Tomas; Quinlan, Daniel: Reverse code generation for parallel discrete event simulation (2015)