skip to main content

Dynamic Race Detection with O(1) Samples

Published:11 January 2023Publication History
Skip Abstract Section

Abstract

Happens before-based dynamic analysis is the go-to technique for detecting data races in large scale software projects due to the absence of false positive reports. However, such analyses are expensive since they employ expensive vector clock updates at each event, rendering them usable only for in-house testing. In this paper, we present a sampling-based, randomized race detector that processes only constantly many events of the input trace even in the worst case. This is the first sub-linear time (i.e., running in o(n) time where n is the length of the trace) dynamic race detection algorithm; previous sampling based approaches like run in linear time (i.e., O(n)). Our algorithm is a property tester for -race detection — it is sound in that it never reports any false positive, and on traces that are far, with respect to hamming distance, from any race-free trace, the algorithm detects an -race with high probability. Our experimental evaluation of the algorithm and its comparison with state-of-the-art deterministic and sampling based race detectors shows that the algorithm does indeed have significantly low running time, and detects races quite often.

References

  1. 2021. Intel® Inspector. https://software.intel.com/content/www/us/en/develop/tools/inspector.html Accessed: 2021-11-01 Google ScholarGoogle Scholar
  2. Martin Abadi, Cormac Flanagan, and Stephen N. Freund. 2006. Types for Safe Locking: Static Race Detection for Java. ACM Trans. Program. Lang. Syst., 28, 2 (2006), March, 207–255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Advanced Simulation and Computing, LLNL. 2022. CORAL Benchmarks. https://asc.llnl.gov/coral-benchmarks Accessed: 2022-04-11 Google ScholarGoogle Scholar
  4. Advanced Simulation and Computing, LLNL. 2022. CORAL Benchmarks. https://asc.llnl.gov/coral-2-benchmarks Accessed: 2022-04-11 Google ScholarGoogle Scholar
  5. Sarita Adve. 2010. Data races are evil with no exceptions: Technical perspective. Commun. ACM, 53, 11 (2010), 84–84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Kunal Agrawal, Joseph Devietti, Jeremy T. Fineman, I-Ting Angelina Lee, Robert Utterback, and Changming Xu. 2018. Race Detection and Reachability in Nearly Series-Parallel DAGs. In Proceedings of the Twenty-Ninth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA ’18). Society for Industrial and Applied Mathematics, USA. 156–171. isbn:9781611975031 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Noga Alon, Michael Krivelevich, Ilan Newman, and Mario Szegedy. 2001. Regular languages are testable with a constant number of queries. SIAM J. Comput., 30, 6 (2001), 1842–1862. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. H. Bailey, E. Barszcz, J. T. Barton, D. S. Browning, R. L. Carter, L. Dagum, R. A. Fatoohi, P. O. Frederickson, T. A. Lasinski, R. S. Schreiber, H. D. Simon, V. Venkatakrishnan, and S. K. Weeratunga. 1991. The NAS Parallel Benchmarks—Summary and Preliminary Results. In Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing ’91). Association for Computing Machinery, New York, NY, USA. 158–165. isbn:0897914597 https://doi.org/10.1145/125826.125925 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Swarnendu Biswas, Man Cao, Minjia Zhang, Michael D. Bond, and Benjamin P. Wood. 2017. Lightweight Data Race Detection for Production Runs. In Proceedings of the 26th International Conference on Compiler Construction (CC 2017). Association for Computing Machinery, New York, NY, USA. 11–21. isbn:9781450352338 https://doi.org/10.1145/3033019.3033020 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Stephen M. Blackburn, Robin Garner, Chris Hoffmann, 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 Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications (OOPSLA ’06). ACM, New York, NY, USA. 169–190. isbn:1-59593-348-4 https://doi.org/10.1145/1167473.1167488 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Sam Blackshear, Nikos Gorogiannis, Peter W. O’Hearn, and Ilya Sergey. 2018. RacerD: Compositional Static Race Detection. Proc. ACM Program. Lang., 2, OOPSLA (2018), Article 144, oct, 28 pages. https://doi.org/10.1145/3276514 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hans-J. Boehm. 2011. How to Miscompile Programs with “Benign” Data Races. In Proceedings of the 3rd USENIX Conference on Hot Topic in Parallelism (HotPar’11). USENIX Association, USA. 3. Google ScholarGoogle Scholar
  13. Hans-J. Boehm and Sarita Adve. 2008. Foundations of the C++ Concurrency Memory Model. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 68–78. Google ScholarGoogle Scholar
  14. Michael Bond. 2021. Pacer: Proportional Detection of Data Races. https://sourceforge.net/p/jikesrvm/research-archive/28/ Accessed: 2021-11-01 Google ScholarGoogle Scholar
  15. Michael D. Bond, Katherine E. Coons, and Kathryn S. McKinley. 2010. PACER: Proportional Detection of Data Races. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’10). ACM, New York, NY, USA. 255–268. isbn:978-1-4503-0019-3 https://doi.org/10.1145/1806596.1806626 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Michael D. Bond, Milind Kulkarni, Man Cao, Minjia Zhang, Meisam Fathi Salmi, Swarnendu Biswas, Aritra Sengupta, and Jipeng Huang. 2013. OCTET: Capturing and Controlling Cross-thread Dependences Efficiently. SIGPLAN Not., 48, 10 (2013), Oct., 693–712. issn:0362-1340 https://doi.org/10.1145/2544173.2509519 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sebastian Burckhardt, Pravesh Kothari, Madanlal Musuvathi, and Santosh Nagarakatte. 2010. A Randomized Scheduler with Probabilistic Guarantees of Finding Bugs. In Proceedings of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XV). Association for Computing Machinery, New York, NY, USA. 167–178. isbn:9781605588391 https://doi.org/10.1145/1736020.1736040 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Dongjie Chen, Yanyan Jiang, Chang Xu, Xiaoxing Ma, and Jian Lu. 2018. Testing Multithreaded Programs via Thread Speed Control. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018). Association for Computing Machinery, New York, NY, USA. 15–25. isbn:9781450355735 https://doi.org/10.1145/3236024.3236077 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Guang-Ien Cheng, Mingdong Feng, Charles E. Leiserson, Keith H. Randall, and Andrew F. Stark. 1998. Detecting Data Races in Cilk Programs That Use Locks. In Proceedings of the Tenth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA ’98). ACM, New York, NY, USA. 298–309. Google ScholarGoogle Scholar
  20. Jong-Deok Choi, Keunwoo Lee, Alexey Loginov, Robert O’Callahan, Vivek Sarkar, and Manu Sridharan. 2002. Efficient and Precise Datarace Detection for Multithreaded Object-oriented Programs. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI ’02). ACM, New York, NY, USA. 258–269. isbn:1-58113-463-0 https://doi.org/10.1145/512529.512560 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Joseph Devietti, Benjamin P. Wood, Karin Strauss, Luis Ceze, Dan Grossman, and Shaz Qadeer. 2012. RADISH: Always-on sound and complete race detection in software and hardware. In 2012 39th Annual International Symposium on Computer Architecture (ISCA). 201–212. https://doi.org/10.1109/ISCA.2012.6237018 Google ScholarGoogle ScholarCross RefCross Ref
  22. Dimitar Dimitrov, Martin Vechev, and Vivek Sarkar. 2015. Race Detection in Two Dimensions. In Proceedings of the 27th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA ’15). Association for Computing Machinery, New York, NY, USA. 101–110. isbn:9781450335881 https://doi.org/10.1145/2755573.2755601 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Hyunsook Do, Sebastian Elbaum, and Gregg Rothermel. 2005. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering: An International Journal, 10 (2005), 405–435. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A.J. Dorta, C. Rodriguez, and F. de Sande. 2005. The OpenMP source code repository. In 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing. 244–250. https://doi.org/10.1109/EMPDP.2005.41 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Tayfun Elmas, Shaz Qadeer, and Serdar Tasiran. 2007. Goldilocks: A Race and Transaction-aware Java Runtime. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’07). ACM, New York, NY, USA. 245–255. isbn:978-1-59593-633-2 https://doi.org/10.1145/1250734.1250762 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. John Erickson, Madanlal Musuvathi, Sebastian Burckhardt, and Kirk Olynyk. 2010. Effective Data-Race Detection for the Kernel. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (OSDI’10). USENIX Association, USA. 151–162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Azadeh Farzan, P. Madhusudan, and Francesco Sorrentino. 2009. Meta-analysis for Atomicity Violations Under Nested Locking. In Proceedings of the 21st International Conference on Computer Aided Verification (CAV ’09). Springer-Verlag, Berlin, Heidelberg. 248–262. isbn:978-3-642-02657-7 https://doi.org/10.1007/978-3-642-02658-4_21 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Mingdong Feng and Charles E. Leiserson. 1997. Efficient Detection of Determinacy Races in Cilk Programs. In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA ’97). Association for Computing Machinery, New York, NY, USA. 1–11. isbn:0897918908 https://doi.org/10.1145/258492.258493 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Colin Fidge. 1991. Logical Time in Distributed Computing Systems. Computer, 24, 8 (1991), Aug., 28–33. issn:0018-9162 https://doi.org/10.1109/2.84874 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Cormac Flanagan and Stephen N. Freund. 2000. Type-based Race Detection for Java. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation (PLDI ’00). ACM, New York, NY, USA. 219–232. isbn:1-58113-199-2 https://doi.org/10.1145/349299.349328 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Cormac Flanagan and Stephen N. Freund. 2009. FastTrack: Efficient and Precise Dynamic Race Detection. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’09). ACM, New York, NY, USA. 121–133. isbn:978-1-60558-392-1 https://doi.org/10.1145/1542476.1542490 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Cormac Flanagan and Stephen N. Freund. 2010. The RoadRunner Dynamic Analysis Framework for Concurrent Programs. In Proceedings of the 9th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE ’10). ACM, New York, NY, USA. 1–8. Google ScholarGoogle Scholar
  33. Cormac Flanagan and Stephen N. Freund. 2013. RedCard: Redundant Check Elimination for Dynamic Race Detectors. In Proceedings of the 27th European Conference on Object-Oriented Programming (ECOOP’13). Springer-Verlag, Berlin, Heidelberg. 255–280. isbn:978-3-642-39037-1 Google ScholarGoogle Scholar
  34. Cormac Flanagan, Stephen N. Freund, Marina Lifshin, and Shaz Qadeer. 2008. Types for Atomicity: Static Checking and Inference for Java. ACM Trans. Program. Lang. Syst., 30, 4 (2008), Article 20, Aug., 53 pages. issn:0164-0925 https://doi.org/10.1145/1377492.1377495 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Oded Goldreich. 2017. Introduction to Property Testing. Cambridge University Press. Google ScholarGoogle Scholar
  36. Klaus Havelund. 2000. Using Runtime Analysis to Guide Model Checking of Java Programs. In SPIN Model Checking and Software Verification, Klaus Havelund, John Penix, and Willem Visser (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 245–264. isbn:978-3-540-45297-3 Google ScholarGoogle ScholarCross RefCross Ref
  37. Jeff Huang, Patrick O’Neil Meredith, and Grigore Rosu. 2014. Maximal Sound Predictive Race Detection with Control Flow Abstraction. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). ACM, New York, NY, USA. 337–348. isbn:978-1-4503-2784-8 https://doi.org/10.1145/2594291.2594315 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Ayal Itzkovitz, Assaf Schuster, and Oren Zeev-Ben-Mordehai. 1999. Toward Integration of Data Race Detection in DSM Systems. J. Parallel Distrib. Comput., 59, 2 (1999), Nov., 180–203. issn:0743-7315 https://doi.org/10.1006/jpdc.1999.1574 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Dae R. Jeong, Kyungtae Kim, Basavesh Shivakumar, Byoungyoung Lee, and Insik Shin. 2019. Razzer: Finding Kernel Race Bugs through Fuzzing. In 2019 IEEE Symposium on Security and Privacy (SP). 754–768. https://doi.org/10.1109/SP.2019.00017 Google ScholarGoogle ScholarCross RefCross Ref
  40. Vineet Kahlon, Franjo Ivančić, and Aarti Gupta. 2005. Reasoning About Threads Communicating via Locks. In Proceedings of the 17th International Conference on Computer Aided Verification (CAV’05). Springer-Verlag, Berlin, Heidelberg. 505–518. isbn:3-540-27231-3, 978-3-540-27231-1 https://doi.org/10.1007/11513988_49 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Baris Kasikci, Cristian Zamfir, and George Candea. 2013. RaceMob: Crowdsourced Data Race Detection. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP ’13). ACM, New York, NY, USA. 406–422. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Dileep Kini, Umang Mathur, and Mahesh Viswanathan. 2017. Dynamic Race Prediction in Linear Time. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017). ACM, New York, NY, USA. 157–170. isbn:978-1-4503-4988-8 https://doi.org/10.1145/3062341.3062374 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Dileep Kini, Umang Mathur, and Mahesh Viswanathan. 2018. Data Race Detection on Compressed Traces. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018). Association for Computing Machinery, New York, NY, USA. 26–37. isbn:9781450355735 https://doi.org/10.1145/3236024.3236025 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Rucha Kulkarni, Umang Mathur, and Andreas Pavlogiannis. 2021. Dynamic Data-Race Detection Through the Fine-Grained Lens. In 32nd International Conference on Concurrency Theory (CONCUR 2021), Serge Haddad and Daniele Varacca (Eds.) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 203). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl, Germany. 16:1–16:23. isbn:978-3-95977-203-7 issn:1868-8969 https://doi.org/10.4230/LIPIcs.CONCUR.2021.16 Google ScholarGoogle ScholarCross RefCross Ref
  45. Leslie Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, 21, 7 (1978), July, 558–565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 (SC ’17). Association for Computing Machinery, New York, NY, USA. Article 11, 14 pages. isbn:9781450351140 https://doi.org/10.1145/3126908.3126958 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. LLNL. 2022. ECP Proxy Applications. https://proxyapps.exascaleproject.org Accessed: 2021-04-01 Google ScholarGoogle Scholar
  48. Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XIII). ACM, New York, NY, USA. 329–339. isbn:978-1-59593-958-6 https://doi.org/10.1145/1346281.1346323 Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Weiyu Luo and Brian Demsky. 2021. C11Tester: A Race Detector for C/C++ Atomics. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2021). Association for Computing Machinery, New York, NY, USA. 630–646. isbn:9781450383172 https://doi.org/10.1145/3445814.3446711 Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Daniel Marino, Madanlal Musuvathi, and Satish Narayanasamy. 2009. LiteRace: Effective Sampling for Lightweight Data-race Detection. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’09). ACM, New York, NY, USA. 134–143. isbn:978-1-60558-392-1 https://doi.org/10.1145/1542476.1542491 Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 (2018), Article 145, Oct., 29 pages. issn:2475-1421 https://doi.org/10.1145/3276515 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Umang Mathur, Andreas Pavlogiannis, Hünkar Can Tunç, and Mahesh Viswanathan. 2022. A Tree Clock Data Structure for Causal Orderings in Concurrent Executions. In Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2022). Association for Computing Machinery, New York, NY, USA. 710–725. isbn:9781450392051 https://doi.org/10.1145/3503222.3507734 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Umang Mathur, Andreas Pavlogiannis, and Mahesh Viswanathan. 2020. The Complexity of Dynamic Data Race Prediction. In Proceedings of the 35th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS ’20). Association for Computing Machinery, New York, NY, USA. 713–727. isbn:9781450371049 https://doi.org/10.1145/3373718.3394783 Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Umang Mathur, Andreas Pavlogiannis, and Mahesh Viswanathan. 2021. Optimal Prediction of Synchronization-Preserving Races. Proc. ACM Program. Lang., 5, POPL (2021), Article 36, jan, 29 pages. https://doi.org/10.1145/3434317 Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Umang Mathur and Mahesh Viswanathan. 2020. Atomicity Checking in Linear Time Using Vector Clocks. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’20). Association for Computing Machinery, New York, NY, USA. 183–199. isbn:9781450371025 https://doi.org/10.1145/3373376.3378475 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Friedemann Mattern. 1988. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland, 215–226. Google ScholarGoogle Scholar
  57. Arndt Müehlenfeld and Franz Wotawa. 2007. Fault Detection in Multi-threaded C++ Server Applications. In Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’07). ACM, New York, NY, USA. 142–143. isbn:978-1-59593-602-8 https://doi.org/10.1145/1229428.1229457 Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Suvam Mukherjee, Pantazis Deligiannis, Arpita Biswas, and Akash Lal. 2020. Learning-Based Controlled Concurrency Testing. Proc. ACM Program. Lang., 4, OOPSLA (2020), Article 230, nov, 31 pages. https://doi.org/10.1145/3428298 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Madanlal Musuvathi and Shaz Qadeer. 2007. Iterative Context Bounding for Systematic Testing of Multithreaded Programs. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’07). Association for Computing Machinery, New York, NY, USA. 446–455. isbn:9781595936332 https://doi.org/10.1145/1250734.1250785 Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, Gerard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu. 2008. Finding and Reproducing Heisenbugs in Concurrent Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08). USENIX Association, Berkeley, CA, USA. 267–280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Mayur Naik, Alex Aiken, and John Whaley. 2006. Effective Static Race Detection for Java. In Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’06). ACM, New York, NY, USA. 308–319. isbn:1-59593-320-4 https://doi.org/10.1145/1133981.1134018 Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Satish Narayanasamy, Zhenghao Wang, Jordan Tigani, Andrew Edwards, and Brad Calder. 2007. Automatically Classifying Benign and Harmful Data Races Using Replay Analysis. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’07). Association for Computing Machinery, New York, NY, USA. 22–31. isbn:9781595936332 https://doi.org/10.1145/1250734.1250738 Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Robert O’Callahan and Jong-Deok Choi. 2003. Hybrid Dynamic Data Race Detection. In Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’03). ACM, New York, NY, USA. 167–178. isbn:1-58113-588-2 https://doi.org/10.1145/781498.781528 Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Andreas Pavlogiannis. 2019. Fast, Sound, and Effectively Complete Dynamic Race Prediction. Proc. ACM Program. Lang., 4, POPL (2019), Article 17, Dec., 29 pages. https://doi.org/10.1145/3371085 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Eli Pozniansky and Assaf Schuster. 2003. Efficient On-the-fly Data Race Detection in Multithreaded C++ Programs. In Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’03). ACM, New York, NY, USA. 179–190. isbn:1-58113-588-2 https://doi.org/10.1145/781498.781529 Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Raghavan Raman, Jisheng Zhao, Vivek Sarkar, Martin Vechev, and Eran Yahav. 2012. Scalable and Precise Dynamic Datarace Detection for Structured Parallelism. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’12). ACM, New York, NY, USA. 531–542. isbn:978-1-4503-1205-9 https://doi.org/10.1145/2254064.2254127 Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Dustin Rhodes, Cormac Flanagan, and Stephen N. Freund. 2017. BigFoot: Static Check Placement for Dynamic Race Detection. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017). ACM, New York, NY, USA. 141–156. isbn:978-1-4503-4988-8 https://doi.org/10.1145/3062341.3062350 Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Jake Roemer, Kaan Genç, and Michael D. Bond. 2018. High-coverage, Unbounded Sound Predictive Race Detection. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2018). ACM, New York, NY, USA. 374–389. isbn:978-1-4503-5698-5 https://doi.org/10.1145/3192366.3192385 Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Jake Roemer, Kaan Genç, and Michael D. Bond. 2020. SmartTrack: Efficient Predictive Race Detection. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020). Association for Computing Machinery, New York, NY, USA. 747–762. isbn:9781450376136 https://doi.org/10.1145/3385412.3385993 Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Mahmoud Said, Chao Wang, Zijiang Yang, and Karem Sakallah. 2011. Generating Data Race Witnesses by an SMT-based Analysis. In Proceedings of the Third International Conference on NASA Formal Methods (NFM’11). Springer-Verlag, Berlin, Heidelberg. 313–327. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Sandia National Laboratories. 2022. Mantevo Project. Accessed: 2022-04-11 Google ScholarGoogle Scholar
  72. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. 1997. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Trans. Comput. Syst., 15, 4 (1997), Nov., 391–411. issn:0734-2071 https://doi.org/10.1145/265924.265927 Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Adrian Schmitz, Joachim Protze, Lechen Yu, Simon Schwitanski, and Matthias S. Müller. 2020. DataRaceOnAccelerator – A Micro-benchmark Suite for Evaluating Correctness Tools Targeting Accelerators. In Euro-Par 2019: Parallel Processing Workshops, Ulrich Schwardmann, Christian Boehme, Dora B. Heras, Valeria Cardellini, Emmanuel Jeannot, Antonio Salis, Claudio Schifanella, Ravi Reddy Manumachu, Dieter Schwamborn, Laura Ricci, Oh Sangyoon, Thomas Gruber, Laura Antonelli, and Stephen L. Scott (Eds.). Springer International Publishing, Cham. 245–257. https://doi.org/10.1007/978-3-030-48340-1_19 Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Koushik Sen. 2008. Race Directed Random Testing of Concurrent Programs. In Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’08). ACM, New York, NY, USA. 11–21. isbn:978-1-59593-860-2 https://doi.org/10.1145/1375581.1375584 Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Koushik Sen, Grigore Roşu, and Gul Agha. 2005. Detecting Errors in Multithreaded Programs by Generalized Predictive Analysis of Executions. In Proceedings of the 7th IFIP WG 6.1 International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS’05). Springer-Verlag, Berlin, Heidelberg. 211–226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Konstantin Serebryany and Timur Iskhodzhanov. 2009. ThreadSanitizer: Data Race Detection in Practice. In Proceedings of the Workshop on Binary Instrumentation and Applications (WBIA ’09). ACM, New York, NY, USA. 62–71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Konstantin Serebryany, Alexander Potapenko, Timur Iskhodzhanov, and Dmitry Vyukov. 2011. Dynamic Race Detection with LLVM Compiler. Google. Google ScholarGoogle Scholar
  78. Yannis Smaragdakis, Jacob Evans, Caitlin Sadowski, Jaeheon Yi, and Cormac Flanagan. 2012. Sound Predictive Race Detection in Polynomial Time. In Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’12). ACM, New York, NY, USA. 387–400. isbn:978-1-4503-1083-3 https://doi.org/10.1145/2103656.2103702 Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. L. A. Smith, J. M. Bull, and J. Obdrizalek. 2001. A Parallel Java Grande Benchmark Suite. In SC ’01: Proceedings of the 2001 ACM/IEEE Conference on Supercomputing. 6–6. https://doi.org/10.1145/582034.582042 Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Francesco Sorrentino, Azadeh Farzan, and P. Madhusudan. 2010. PENELOPE: Weaving Threads to Expose Atomicity Violations. In Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE ’10). ACM, New York, NY, USA. 37–46. isbn:978-1-60558-791-2 https://doi.org/10.1145/1882291.1882300 Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Rishi Surendran and Vivek Sarkar. 2016. Dynamic determinacy race detection for task parallelism with futures. In International Conference on Runtime Verification. 368–385. Google ScholarGoogle ScholarCross RefCross Ref
  82. Paul Thomson, Alastair F. Donaldson, and Adam Betts. 2016. Concurrency Testing Using Controlled Schedulers: An Empirical Study. ACM Trans. Parallel Comput., 2, 4 (2016), Article 23, feb, 37 pages. issn:2329-4949 https://doi.org/10.1145/2858651 Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Christoph von Praun and Thomas R. Gross. 2003. Static Conflict Analysis for Multi-threaded Object-oriented Programs. In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI ’03). ACM, New York, NY, USA. 115–128. isbn:1-58113-662-5 https://doi.org/10.1145/781131.781145 Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Jan Wen Voung, Ranjit Jhala, and Sorin Lerner. 2007. RELAY: Static Race Detection on Millions of Lines of Code. In Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering (ESEC-FSE ’07). ACM, New York, NY, USA. 205–214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Jaroslav Ševčík. 2011. Safe optimizations for shared-memory concurrent programs. SIGPLAN Notices, 46, 6 (2011), 306–316. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. Jaroslav Ševčík and David Aspinall. 2008. On the validity of program transformations in the Java memory model. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). 27–51. Google ScholarGoogle Scholar
  87. Benjamin P. Wood, Man Cao, Michael D. Bond, and Dan Grossman. 2017. Instrumentation Bias for Dynamic Data Race Detection. Proc. ACM Program. Lang., 1, OOPSLA (2017), Article 69, Oct., 31 pages. issn:2475-1421 https://doi.org/10.1145/3133893 Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. Meng Xu, Sanidhya Kashyap, Hanqing Zhao, and Taesoo Kim. 2020. Krace: Data Race Fuzzing for Kernel File Systems. In 2020 IEEE Symposium on Security and Privacy (SP). 1643–1660. https://doi.org/10.1109/SP40000.2020.00078 Google ScholarGoogle ScholarCross RefCross Ref
  89. M. Zhivich and R. K. Cunningham. 2009. The Real Cost of Software Errors. IEEE Security and Privacy, 7, 2 (2009), March, 87–90. issn:1540-7993 https://doi.org/10.1109/MSP.2009.56 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic Race Detection with O(1) Samples

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!