Compiler Construction of Idempotent Regions

dc.contributor.authorde Kruijf, Marcen_US
dc.contributor.authorSankaralingam, Karthikeyanen_US
dc.contributor.authorJha, Someshen_US
dc.date.accessioned2012-03-15T17:25:54Z
dc.date.available2012-03-15T17:25:54Z
dc.date.created2011en_US
dc.date.issued2011en_US
dc.description.abstractRecovery functionality has many applications in computing systems, from speculation recovery in modern microprocessors to fault recovery in high-reliability systems. Modern systems commonly recover using checkpoints. However, checkpoints introduce overheads, add complexity, and often conservatively save more state than necessary. This paper develops a compiler technique to recover program state without the overheads of explicit checkpoints. Our technique breaks programs into idempotent regions -- regions that can be freely re-executed -- which allows recovery without checkpointed state. Leveraging the property of idempotence, recovery can be obrained by simple re-execution. We develop static analysis techniques to construct these regions in a compiler, and demonstrate low overheads and large region sizes using an LLVM-based implementation. Across a set of diverse benchmark suites, we construct idempotent regions almost as large as those that could be obtained with perfect runtime information. Although the resulting code runs slower, typical execution time overheads are in the range of just 2-12%.en_US
dc.format.mimetypeapplication/pdfen_US
dc.identifier.citationTR1700en_US
dc.identifier.urihttp://digital.library.wisc.edu/1793/60752
dc.publisherUniversity of Wisconsin-Madison Department of Computer Sciencesen_US
dc.titleCompiler Construction of Idempotent Regionsen_US
dc.typeTechnical Reporten_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR1700.pdf
Size:
845.85 KB
Format:
Adobe Portable Document Format