Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3468737.3494089acmconferencesArticle/Chapter ViewAbstractPublication PagesuccConference Proceedingsconference-collections
research-article
Public Access

RDS: a cloud-based metaservice for detecting data races in parallel programs

Published: 17 December 2021 Publication History

Abstract

Data races are notorious concurrency bugs which can cause severe problems, including random crashes and corrupted execution results. However, existing data race detection tools are still challenging for users to use. It takes a significant amount of effort for users to install, configure and properly use a tool. A single tool often cannot find all the bugs in a program. Requiring users to use multiple tools is often impracticable and not productive because of the differences in tool interfaces and report formats.
In this paper, we present a cloud-based, service-oriented design and implementation of a race detection service (RDS)1 to detect data races in parallel programs. RDS integrates multiple data race detection tools into a single cloud-based service via a REST API. It defines a standard JSON format to represent data race detection results, facilitating producing user-friendly reports, aggregating output of multiple tools, as well as being easily processed by other tools. RDS also defines a set of policies for aggregating outputs from multiple tools. RDS significantly simplifies the workflow of using data race detection tools and improves the report quality and productivity of performing race detection for parallel programs. Our evaluation shows that RDS can deliver more accurate results with much less effort from users, when compared with the traditional way of using any individual tools. Using four selected tools and DataRaceBench, RDS improves the Adjusted F-1 scores by 8.8% and 12.6% over the best and the average scores, respectively. For the NAS Parallel Benchmark, RDS improves 35% of the adjusted accuracy compared to the average of the tools.
Our work studies a new approach of composing software tools for parallel computing via a service-oriented architecture. The same approach and framework can be used to create metaservice for compilers, performance tools, auto-tuning tools, and so on.

References

[1]
[n.d.]. NAS Parallel Benchmarks 3.0. https://github.com/benchmark-subsetting/NPB3.0-omp-C.
[2]
[n.d.]. Amazon Elastic Container Service Developer Guide. https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html.
[3]
[n.d.]. Code Dx. https://codedx.com/
[4]
[n.d.]. Parallel programming with Jupyter. https://curc.readthedocs.io/en/latest/gateways/parallel-programming-jupyter.html.
[5]
[n.d.]. Run the Docker daemon as a non-root user (Rootless mode). https://docs.docker.com/engine/security/rootless/.
[6]
[n.d.]. Software Assurance Marketplace. https://continuousassurance.org/
[7]
[n.d.]. The Extreme-scale Scientific Software Stack (E4S). https://e4s-project.github.io.
[8]
2020. Intel® Inspector. https://software.intel.com/en-us/inspector
[9]
Simone Atzeni, Ganesh Gopalakrishnan, Zvonimir Rakamarić, Dong H. Ahn, Ignacio Laguna, Martin Schulz, Gregory L. Lee, Joachim Protze, and Matthias S. Müller. 2016. ARCHER: Effectively Spotting Data Races in Large OpenMP Applications. In 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS). 53--62.
[10]
Todd Gamblin, Matthew LeGendre, Michael R Collette, Gregory L Lee, Adam Moody, Bronis R de Supinski, and Scott Futral. 2015. The Spack package manager: bringing order to HPC software chaos. In SC'15: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 1--12.
[11]
Jorge Gomes, Emanuele Bagnaschi, Isabel Campos, Mario David, Luís Alves, Joao Martins, Joao Pina, Alvaro López-García, and Pablo Orviz. 2018. Enabling rootless Linux Containers in multi-user environments: the udocker tool. Computer Physics Communications 232 (2018), 84--97.
[12]
Y. Gu and J. Mellor-Crummey. 2018. Dynamic Data Race Detection for OpenMP Programs. In SC18: International Conference for High Performance Computing, Networking, Storage and Analysis. 767--778.
[13]
Sorin Lucian Lerner Jan Wen Voung, Ranjit Jhala. 2007. RELAY: static race detection on millions of lines of code. In ESEC/FSE07: Joint 11th European Software Engineering Conference. 205--214.
[14]
Hao-Qiang Jin, Michael Frumkin, and Jerry Yan. 1999. The OpenMP implementation of NAS parallel benchmarks and its performance. (1999).
[15]
Jupyter. [n.d.]. Juputer Notebook. https://jupyter.org/.
[16]
Vineet Kahlon, Yu Yang, Sriram Sankaranarayanan, and Aarti Gupta. 2007. Fast and Accurate Static Data-Race Detection for Concurrent Programs. In Computer Aided Verification, Werner Damm and Holger Hermanns (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 226--239.
[17]
Thomas Kluyver, Benjamin Ragan-Kelley, Fernando Pérez, Brian Granger, Matthias Bussonnier, Jonathan Frederic, Kyle Kelley, Jessica Hamrick, Jason Grout, Sylvain Corlay, Paul Ivanov, Damian Avila, Safia Abdalla, and Carol Willing. 2016. Jupyter Notebooks - a publishing format for reproducible computational workflows. In Positioning and Power in Academic Publishing: Players, Agents and Agendas, F. Loizides and B. Schmidt (Eds.). IOS Press, 87 -- 90.
[18]
Timur Iskhodzhanov Konstantin Serebryany. 2009. ThreadSanitizer: data race detection in practice. In WBIA '09: Workshop on Binary Instrumentation and Applications. 62--71.
[19]
J. A. Kupsch, B. P. Miller, V. Basupalli, and J. Burger. 2017. From continuous integration to continuous assurance. In 2017 IEEE 28th Annual Software Technology Conference (STC). 1--8.
[20]
Leslie Lamport. 2019. Time, clocks, and the ordering of events in a distributed system. In Concurrency: the Works of Leslie Lamport. 179--196.
[21]
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 (Denver, Colorado) (SC '17). ACM, New York, NY, USA, Article 11, 14 pages.
[22]
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. 1--14.
[23]
Chunhua Liao, Pei-Hung Lin, Markus Schordan, and Ian Karlin. 2018. A semantics-driven approach to improving DataRaceBench's OpenMP standard coverage. In International Workshop on OpenMP. Springer, 189--202.
[24]
Pei-Hung Lin, Chunhua Liao, Markus Schordan, and Ian Karlin. 2018. Runtime and Memory Evaluation of Data Race Detection Tools. In Leveraging Applications of Formal Methods, Verification and Validation. Verification, Tiziana Margaria and Bernhard Steffen (Eds.). Springer International Publishing, Cham, 179--196.
[25]
Pei-Hung Lin, Chunhua Liao, Markus Schordan, and Ian Karlin. 2019. Exploring Regression of Data Race Detection Tools Using DataRaceBench. In 2019 IEEE/ACM 3rd International Workshop on Software Correctness for HPC Applications (Correctness). IEEE, 11--18.
[26]
Gleison Souza Diniz Mendonca, Chunhua Liao, and Fernando Magno Quintão Pereira. 2020. AutoParBench: a unified test framework for OpenMP-based parallelizers. In Proceedings of the 34th ACM International Conference on Supercomputing. 1--10.
[27]
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. 167--178.
[28]
Polyvios Pratikakis, Jeffrey S Foster, and Michael Hicks. 2006. LOCKSMITH: context-sensitive correlation analysis for race detection. Acm Sigplan Notices 41, 6 (2006), 320--331.
[29]
Joachim Protze, Jonas Hahnfeld, Dong H Ahn, Martin Schulz, and Matthias S Müller. 2017. OpenMP tools interface: Synchronization information for data race detection. In International Workshop on OpenMP. Springer, 249--265.
[30]
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. 1997. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems (TOCS) 15, 4 (1997), 391--411.
[31]
Robert Seacord, Will Dormann, James McCurley, Philip Miller, Robert Stoddard, David Svoboda, and Jefferson Welch. 2012. Source Code Analysis Laboratory (SCALe). Technical Report CMU/SEI-2012-TN-013. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=10091
[32]
SWAMP. [n.d.]. Software Assurance Marketplace (SWAMP) code-analysis service. https://www.mir-swamp.org/.
[33]
Gaurav Verma, Yaying Shi, Chunhua Liao, Barbara Chapman, and Yonghong Yan. 2020. Enhancing DataRaceBench for Evaluating Data Race Detection Tools. In 2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness). IEEE, 20--30.
[34]
Yuan Yu, Tom Rodeheffer, and Wei Chen. 2005. Racetrack: efficient detection of data race conditions via adaptive tracking. In Proceedings of the twentieth ACM symposium on Operating systems principles. 221--234.

Index Terms

  1. RDS: a cloud-based metaservice for detecting data races in parallel programs

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      UCC '21: Proceedings of the 14th IEEE/ACM International Conference on Utility and Cloud Computing
      December 2021
      214 pages
      ISBN:9781450385640
      DOI:10.1145/3468737
      Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of the United States government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

      Sponsors

      In-Cooperation

      • CIMPA: International Center for Pure and Applied Mathematics

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 17 December 2021

      Permissions

      Request permissions for this article.

      Check for updates

      Badges

      Author Tags

      1. cloud service API
      2. data race detection
      3. metaservices
      4. microservices
      5. parallel computing

      Qualifiers

      • Research-article

      Funding Sources

      Conference

      UCC '21
      Sponsor:

      Acceptance Rates

      UCC '21 Paper Acceptance Rate 21 of 62 submissions, 34%;
      Overall Acceptance Rate 38 of 125 submissions, 30%

      Upcoming Conference

      UCC '24
      2024 IEEE/ACM 17th International Conference on Utility and Cloud Computing
      December 16 - 19, 2024
      Sharjah , United Arab Emirates

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • 0
        Total Citations
      • 130
        Total Downloads
      • Downloads (Last 12 months)60
      • Downloads (Last 6 weeks)14
      Reflects downloads up to 18 Nov 2024

      Other Metrics

      Citations

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media