Cyrus: Unintrusive application-level record-replay for replay parallelism

Nima Honarmand, Nathan Dautenhahn, Josep Torrellas, Samuel T. King, Gilles Pokam, Cristiano Pereira

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Architectures for deterministic record-replay (R&R) of multithreaded code are attractive for program debugging, intrusion analysis, and fault-tolerance uses. However, very few of the proposed designs have focused on maximizing replay speed - a key enabling property of these systems. The few efforts that focus on replay speed require intrusive hardware or software modifications, or target whole-system R&R rather than the more useful applicationlevel R&R. This paper presents the first hardware-based scheme for unintrusive, application-level R&R that explicitly targets high replay speed. Our scheme, called Cyrus, requires no modification to commodity snoopy cache coherence. It introduces the concept of an onthe- fly software Backend Pass during recording which, as the log is being generated, transforms it for high replay parallelism. This pass also fixes-up the log, and can flexibly trade-off replay parallelism for log size.We analyze the performance of Cyrus using full system (OS plus hardware) simulation. Our results show that Cyrus has negligible recording overhead. In addition, for 8-processor runs of SPLASH-2, Cyrus attains an average replay parallelism of 5, and a replay speed that is, on average, only about 50% lower than the recording speed. Categories and Subject Descriptors C.0 [General]: Hardware/ Software Interfaces; C.1.2 [Processor Architectures]: Multiple Data Stream Architectures (Multiprocessors) - MIMD Processors; D.1.3 [Programming Techniques]: Concurrent Programming - Parallel Programming; D.1.3 [Programming Techniques]: Concurrent Programming - Parallel Programming; D.4.0 [Operating Systems]: General; D.4.1 [Operating Systems]: Process Management - Threads.

Original languageEnglish (US)
Title of host publicationASPLOS 2013 - 18th International Conference on Architectural Support for Programming Languages and Operating Systems
Pages193-206
Number of pages14
DOIs
StatePublished - 2013
Event18th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2013 - Houston, TX, United States
Duration: Mar 16 2013Mar 20 2013

Publication series

NameInternational Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS

Other

Other18th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2013
CountryUnited States
CityHouston, TX
Period3/16/133/20/13

Keywords

  • Application-level parallel replay
  • Backend log processing
  • Deterministic replay
  • Source-only recording
  • Unintrusive hardware-assisted recording

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Hardware and Architecture

Fingerprint Dive into the research topics of 'Cyrus: Unintrusive application-level record-replay for replay parallelism'. Together they form a unique fingerprint.

  • Cite this

    Honarmand, N., Dautenhahn, N., Torrellas, J., King, S. T., Pokam, G., & Pereira, C. (2013). Cyrus: Unintrusive application-level record-replay for replay parallelism. In ASPLOS 2013 - 18th International Conference on Architectural Support for Programming Languages and Operating Systems (pp. 193-206). (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS). https://doi.org/10.1145/2451116.2451138