ABSTRACT
Dynamic data race prediction aims to identify races based on a single program run represented by a trace. The challenge is to remain efficient while being as sound and as complete as possible. Efficient means a linear run-time as otherwise the method unlikely scales for real-world programs. We introduce an efficient, near complete and often sound dynamic data race prediction method that combines the lockset method with several improvements made in the area of happens-before methods. By near complete we mean that the method is complete in theory but for efficiency reasons the implementation applies some optimizations that may result in incompleteness. The method can be shown to be sound for two threads but is unsound in general. Experiments show that our method works well in practice.
- Sarita V. Adve and Kourosh Gharachorloo. 1996. Shared Memory Consistency Models: A Tutorial. Computer 29, 12 (Dec. 1996 ), 66-76. https://doi.org/10.1109/2.546611 Google ScholarDigital Library
- Jalal S Alowibdi and Leon Stenneth. 2013. An empirical study of data race detector tools. In 2013 25th Chinese Control and Decision Conference (CCDC). IEEE, 3951-3955. https://doi.org/10.1109/CCDC. 2013.6561640 Google ScholarCross Ref
- Stephen M. Blackburn, Robin Garner, Chris Hofmann, Asjad M. Khang, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In Proc. of OOPSLA '06. ACM, 169-190. https://doi.org/10.1145/1167515.1167488 Google ScholarDigital Library
- Anne Dinning and Edith Schonberg. 1991. Detecting Access Anomalies in Programs with Critical Sections. SIGPLAN Not. 26, 12 (Dec. 1991 ), 85-96. https://doi.org/10. 1145/127695.122767 Google ScholarDigital Library
- Eitan Farchi, Yarden Nir, and Shmuel Ur. 2003. Concurrent bug patterns and how to test them. In Proceedings International Parallel and Distributed Processing Symposium. IEEE, 7-pp. https ://doi.org/10.1109/IPDPS. 2003.1213511 Google ScholarCross Ref
- Colin J. Fidge. 1992. Process Algebra Traces Augmented with Causal Relationships. In Proc. of FORTE '91. North-Holland Publishing Co., Amsterdam, The Netherlands, The Netherlands, 527-541.Google ScholarCross Ref
- Cormac Flanagan and Stephen N Freund. 2010. FastTrack: eficient and precise dynamic race detection. Commun. ACM 53, 11 ( 2010 ), 93-101. https://doi.org/10.1145/1543135. 1542490 Google ScholarDigital Library
- Kaan Genç, Jake Roemer, Yufan Xu, and Michael D. Bond. 2019. Dependence-Aware, Unbounded Sound Predictive Race Detection. Proc. ACM Program. Lang. 3, OOPSLA, Article 179 (Oct. 2019 ), 30 pages. https://doi.org/10.1145/3360605 Google ScholarDigital Library
- Jef Huang, Patrick O'Neil Meredith, and Grigore Rosu. 2014. Maximal Sound Predictive Race Detection with Control Flow Abstraction. SIGPLAN Not. 49, 6 ( June 2014 ), 337-348. https://doi.org/10.1145/2666356.2594315 Google ScholarDigital Library
- Christian Gram Kalhauge and Jens Palsberg. 2018. Sound Deadlock Prediction. Proc. ACM Program. Lang. 2, OOPSLA, Article 146 (Oct. 2018 ), 29 pages. https://doi.org/ 10.1145/3276516 Google ScholarDigital Library
- Dileep Kini, Umang Mathur, and Mahesh Viswanathan. 2017. Dynamic Race Prediction in Linear Time. SIGPLAN Not. 52, 6 ( June 2017 ), 157-170. https://doi.org/10.1145/ 3062341.3062374 Google ScholarDigital Library
- Leslie Lamport. 1978. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 ( 1978 ), 558-565. https://doi.org/10.1145/359545.359563 Google ScholarDigital Library
- Chunhua Liao, Pei-Hung Lin, Joshua Asplund, Markus Schordan, and Ian Karlin. 2017. DataRaceBench: a benchmark suite for systematic evaluation of data race detection tools. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. ACM, 11. https: //doi.org/10.1145/3126908.3126958 Google ScholarDigital Library
- Pei-Hung Lin, Chunhua Liao, Markus Schordan, and Ian Karlin. 2018. Runtime and memory evaluation of data race detection tools. In International Symposium on Leveraging Applications of Formal Methods. Springer, 179-196. https://doi.org/10. 1007/978-3-030-03421-4_13 Google ScholarDigital Library
- Qingzhou Luo, Jef Huang, and Grigore Rosu. 2015. Systematic Concurrency Testing with Maximal Causality. Technical Report.Google Scholar
- Umang Mathur, Dileep Kini, and Mahesh Viswanathan. 2018. What Happens-after the First Race? Enhancing the Predictive Power of Happens-before Based Dynamic Race Detection. Proc. ACM Program. Lang. 2, OOPSLA, Article 145 (Oct. 2018 ), 29 pages. https://doi.org/10.1145/3276515 Google ScholarDigital Library
- Friedemann Mattern. 1989. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland, 215-226.Google Scholar
- Andreas Pavlogiannis. 2019. Fast, Sound, and Efectively Complete Dynamic Race Prediction. Proc. ACM Program. Lang. 4, POPL, Article Article 17 (Dec. 2019 ), 29 pages. https://doi.org/10.1145/3371085 Google ScholarDigital Library
- Jake Roemer, Kaan Genç, and Michael D Bond. 2019. Practical Predictive Race Detection. arXiv preprint arXiv: 1905. 00494 ( 2019 ).Google Scholar
- Jake Roemer, Kaan Genç, and Michael D. Bond. 2018. High-coverage, Unbounded Sound Predictive Race Detection. SIGPLAN Not. 53, 4 ( June 2018 ), 374-389. https: //doi.org/10.1145/3192366.3192385 Google ScholarDigital Library
- Traian-Florin Serbanuta, Feng Chen, and Grigore Rosu. 2012. Maximal Causal Models for Sequentially Consistent Systems. In Poc. of RV'12 (LNCS), Vol. 7687. Springer, 136-150. https://doi.org/10.1007/978-3-642-35632-2_16 Google ScholarCross Ref
- Konstantin Serebryany and Timur Iskhodzhanov. 2009. ThreadSanitizer: data race detection in practice. In Proc. of WBIA âĂŹ09. ACM, New York, NY, USA, 62-71. https://doi.org/10.1145/1791194.1791203 Google ScholarDigital Library
- Yannis Smaragdakis, Jacob Evans, Caitlin Sadowski, Jaeheon Yi, and Cormac Flanagan. 2012. Sound Predictive Race Detection in Polynomial Time. SIGPLAN Not. 47, 1 (Jan. 2012 ), 387-400. https://doi.org/10.1145/2103656.2103702 Google ScholarDigital Library
- Lorna A Smith, J Mark Bull, and J Obdrizalek. 2001. A Parallel Java Grande Benchmark Suite. In Proc. of SC'01. IEEE, 8-8. https://doi.org/10.1145/582034.582042 Google ScholarDigital Library
- Martin Sulzmann and Kai Stadtmüller. 2019. Predicting all data race pairs for a specific schedule. In Proc. of MPLR'19. ACM, New York, NY, USA, 72-84. https: //doi.org/10.1145/3357390.3361022 Google ScholarDigital Library
- ThreadSanitizer 2020. ThreadSanitizer. https://github.com/google/sanitizers. ( 2020 ).Google Scholar
- Xinwei Xie, Jingling Xue, and Jie Zhang. 2013. Acculock: Accurate and eficient detection of data races. Software: Practice and Experience 43, 5 ( 2013 ), 543-576. https://doi.org/10.1109/CGO. 2011.5764688 Google ScholarCross Ref
- Misun Yu and Doo-Hwan Bae. 2016. SimpleLock+: fast and accurate hybrid data race detection. Comput. J. 59, 6 ( 2016 ), 793-809. https://doi.org/10.1109/PDCAT. 2013.15 Google ScholarCross Ref
- Misun Yu, Seung-Min Park, Ingeol Chun, and Doo-Hwan Bae. 2017a. Experimental performance comparison of dynamic data race detection techniques. ETRI Journal 39, 1 ( 2017 ), 124-134. https://doi.org/10.4218/etrij.17.0115.1027 Google ScholarCross Ref
- Zhen Yu, Zhen Yang, Xiaohong Su, and Peijun Ma. 2017b. Evaluation and comparison of ten data race detection techniques. International Journal of High Performance Computing and Networking 10, 4-5 ( 2017 ), 279-288. https://doi.org/ 10.1504/IJHPCN. 2017.086532 Google ScholarCross Ref
Index Terms
- Efficient, near complete, and often sound hybrid dynamic data race prediction
Recommendations
Fast, sound, and effectively complete dynamic race prediction
Writing concurrent programs is highly error-prone due to the nondeterminism in interprocess communication. The most reliable indicators of errors in concurrency are data races, which are accesses to a shared resource that can be executed concurrently. ...
The Complexity of Dynamic Data Race Prediction
LICS '20: Proceedings of the 35th Annual ACM/IEEE Symposium on Logic in Computer ScienceWriting concurrent programs is notoriously hard due to scheduling non-determinism. The most common concurrency bugs are data races, which are accesses to a shared resource that can be executed concurrently. Dynamic data-race prediction is the most ...
Sound Dynamic Deadlock Prediction in Linear Time
Deadlocks are one of the most notorious concurrency bugs, and significant research has focused on detecting them efficiently. Dynamic predictive analyses work by observing concurrent executions, and reason about alternative interleavings that can ...
Comments