What's the Optimal Performance of Precise Dynamic Race Detection? - A Redundancy Perspective

In a precise data race detector, a race is detected only if the execution exhibits a real race. In such tools, every memory access from each thread is typically checked by a happens-before algorithm. What’s the optimal runtime performance of such tools? In this paper, we identify that a significant percentage of memory access checks in real-world program executions are often redundant: removing these checks affects neither the precision nor the capability of race detection. We show that if all such redundant checks were eliminated with no cost, the optimal performance of a state-of-the-art dynamic race detector, FastTrack, could be improved by 90%, reducing its runtime overhead from 68X to 7X on a collection of CPU intensive benchmarks. We further develop a purely dynamic technique, ReX, that efficiently filters out redundant checks and apply it to FastTrack. With ReX, the runtime performance of FastTrack is improved by 31% on average. 1998 ACM Subject Classification D.2.4 Software/Program Verification

[1]  Manu Sridharan,et al.  Effective race detection for event-driven programs , 2013, OOPSLA.

[2]  Laurent Vanbever,et al.  SDNRacer: detecting concurrency violations in software-defined networks , 2015, SOSR.

[3]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[4]  Serdar Tasiran,et al.  Goldilocks: a race-aware Java runtime , 2010, Commun. ACM.

[5]  Michael D. Bond,et al.  PACER: proportional detection of data races , 2010, PLDI '10.

[6]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.

[7]  Dimitar Dimitrov,et al.  Commutativity race detection , 2014, PLDI.

[8]  Stephen N. Freund,et al.  Array Shadow State Compression for Precise Dynamic Race Detection (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[9]  Stephen N. Freund,et al.  FastTrack: efficient and precise dynamic race detection , 2010, Commun. ACM.

[10]  Grigore Rosu,et al.  jPredictor: a predictive runtime analysis tool for java , 2008, ICSE '08.

[11]  Jeff Huang,et al.  Persuasive prediction of concurrency access anomalies , 2011, ISSTA '11.

[12]  Assaf Schuster,et al.  Scaling model checking of dataraces using dynamic information , 2007, J. Parallel Distributed Comput..

[13]  Stephen N. Freund,et al.  RedCard: Redundant Check Elimination for Dynamic Race Detectors , 2013, ECOOP.

[14]  Grigore Rosu,et al.  Maximal sound predictive race detection with control flow abstraction , 2014, PLDI.

[15]  Jeff Huang,et al.  Scaling predictive analysis of concurrent programs by removing trace redundancy , 2013, TSEM.

[16]  Jong-Deok Choi,et al.  Efficient and precise datarace detection for multithreaded object-oriented programs , 2002, PLDI '02.

[17]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multi-threaded programs , 1997, TOCS.

[18]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[19]  Satish Narayanasamy,et al.  LiteRace: effective sampling for lightweight data-race detection , 2009, PLDI '09.

[20]  Sorin Lerner,et al.  RELAY: static race detection on millions of lines of code , 2007, ESEC-FSE '07.

[21]  Alexander Aiken,et al.  Effective static race detection for Java , 2006, PLDI '06.

[22]  Koushik Sen,et al.  Race directed random testing of concurrent programs , 2008, PLDI '08.

[23]  Chao Wang,et al.  Symbolic Predictive Analysis for Concurrent Programs , 2009, FM.

[24]  Stephen N. Freund,et al.  BigFoot: static check placement for dynamic race detection , 2017, PLDI.

[25]  Thomas R. Gross,et al.  Object race detection , 2001, OOPSLA '01.

[26]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[27]  Jong-Deok Choi,et al.  Hybrid dynamic data race detection , 2003, PPoPP '03.

[28]  Stephen N. Freund,et al.  The RoadRunner Dynamic Analysis Framework for Concurrent Programs , 2010, PASTE '10.

[29]  Martin T. Vechev,et al.  Scalable race detection for Android applications , 2015, OOPSLA.

[30]  Swarnendu Biswas,et al.  Valor: efficient, software-only region conflict exceptions , 2015, OOPSLA.