Efficient and precise datarace detection for multithreaded object-oriented programs

We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many false positive datarace reports, or maintained precision but incurred significant overheads in the range of 3x to 30x. In contrast, our approach results in very few false positives and runtime overhead in the 13% to 42% range, making it both efficient and precise. This performance improvement is the result of a unique combination of complementary static and dynamic optimization techniques.

[1]  Edward Fredkin,et al.  Trie memory , 1960, Commun. ACM.

[2]  Edith Schonberg,et al.  On-the-fly detection of access anomalies , 2018, PLDI '89.

[3]  Jong-Deok Choi,et al.  An efficient cache-based access anomaly detection scheme , 1991, ASPLOS IV.

[4]  Edith Schonberg,et al.  Detecting access anomalies in programs with critical sections , 1991, PADD '91.

[5]  Jong-Deok Choi,et al.  Race Frontier: reproducing data races in parallel-program debugging , 1991, PPOPP '91.

[6]  Barton P. Miller,et al.  What are race conditions?: Some issues and formalizations , 1992, LOPL.

[7]  Nicholas Sterling,et al.  WARLOCK - A Static Data Race Analysis Tool , 1993, USENIX Winter.

[8]  Jong-Deok Choi,et al.  Flow-Insensitive Interprocedural Alias Analysis in the Presence of Pointers , 1994, LCPC.

[9]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[10]  S. Savage,et al.  Eraser: a dynamic data race detector for multi-threaded programs , 1997 .

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

[12]  James R. Larus,et al.  Protocol-based data-race detection , 1998, SPDT '98.

[13]  David Gay,et al.  Barrier inference , 1998, POPL '98.

[14]  Charles E. Leiserson,et al.  Detecting data races in Cilk programs that use locks , 1998, SPAA '98.

[15]  Bruno Blanchet,et al.  Escape analysis for object-oriented languages: application to Java , 1999, OOPSLA '99.

[16]  Jong-Deok Choi,et al.  Escape analysis for Java , 1999, OOPSLA '99.

[17]  Urs Hölzle,et al.  Removing unnecessary synchronization in Java , 1999, OOPSLA '99.

[18]  David F. Bacon,et al.  Guava: a dialect of Java without data races , 2000, OOPSLA '00.

[19]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[20]  Stephen N. Freund,et al.  Type-based race detection for Java , 2000, PLDI '00.

[21]  Erik Ruf,et al.  Effective synchronization removal for Java , 2000, PLDI '00.

[22]  Jong-Deok Choi,et al.  A perturbation-free replay platform for cross-optimized multithreaded applications , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[23]  Martin C. Rinard,et al.  A parameterized type system for race-free Java programs , 2001, OOPSLA '01.

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

[25]  Jong-Deok Choi,et al.  Static Datarace Analysis for Multithreaded Object-Oriented Programs , 2001 .

[26]  Koen De Bosschere,et al.  TRaDe: A Topological Approach to On-the-Fly Race Detection in Java Programs , 2001, Java Virtual Machine Research and Technology Symposium.