Efficient Deterministic Replay Using Complete Race Detection

07/11/2011
by   Qi Guo, et al.
0

Data races can significantly affect the executions of multi-threaded programs. Hence, one has to recur the results of data races to deterministically replay a multi-threaded program. However, data races are concealed in enormous number of memory operations in a program. Due to the difficulty of accurately identifying data races, previous multi-threaded deterministic record/replay schemes for commodity multi-processor system give up to record data races directly. Consequently, they either record all shared memory operations, which brings remarkable slowdown to the production run, or record the synchronization only, which introduces significant efforts to replay. Inspired by the advances in data race detection, we propose an efficient software-only deterministic replay scheme for commodity multi-processor systems, which is named RacX. The key insight of RacX is as follows: although it is NP-hard to accurately identify the existence of data races between a pair of memory operations, we can find out all potential data races in a multi-threaded program, in which the false positives can be reduced to a small amount with our automatic false positive reduction techniques. As a result, RacX can efficiently monitor all potential data races to deterministically replay a multi-threaded program. To evaluate RacX, we have carried out experiments over a number of well-known multi-threaded programs from SPLASH-2 benchmark suite and large-scale commercial programs. RacX can precisely recur production runs of these programs with value determinism. Averagely, RacX causes only about 1.21 and 8.41 16-thread programs, respectively). The soundness, efficiency, scalability, and portability of RacX well demonstrate its superiority.

READ FULL TEXT
research
05/16/2018

Efficient and Deterministic Record & Replay for Actor Languages

With the ubiquity of parallel commodity hardware, developers turn to hig...
research
02/17/2022

CHEX: Multiversion Replay with Ordered Checkpoints

In scientific computing and data science disciplines, it is often necess...
research
04/04/2018

iReplayer: In-situ and Identical Record-and-Replay for Multithreaded Applications

Reproducing executions of multithreaded programs is very challenging due...
research
05/22/2018

Optimal Record and Replay under Causal Consistency

We investigate the minimum record needed to replay executions of process...
research
02/26/2021

Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record Replay

With concurrency being integral to most software systems, developers com...
research
09/06/2019

Lightweight Record-and-Replay for Intermittent Tests Failures

In this paper we present lightweight record-and-replay (RR). In contrast...
research
06/12/2020

Hindsight Logging for Model Training

Due to the long time-lapse between the triggering and detection of a bug...

Please sign up or login with your details

Forgot password? Click here to reset