skip to main content
10.1145/2248418.2248438acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
research-article

Symbolic consistency checking of OpenMp parallel programs

Published:12 June 2012Publication History

ABSTRACT

We present a symbolic approach for checking consistency of OpenMP parallel programs. A parallel program is consistent if it yields the same result as its sequential version despite the execution order among threads. We find race conditions of an OpenMP parallel program, construct the formal model of its raced segments under relaxed memory models, and perform guided symbolic simulation to search consistency violations. The simulation terminates when (1) a witness has been found (the program is inconsistent), or (2) all reachable states have been explored (the program is consistent). We have developed the tool Pathg by incorporating Omega library to solve race constraints and Red symbolic simulator to perform guided search. We show that Pathg can prove consistency of programs, identify races that modern OpenMP checkers failed to report, and find inconsistency witnesses effectively against benchmarks from the OpenMP Source Code Repository and the NAS Parallel benchmark suite.

References

  1. Sarita V. Adve and Kourosh Gharachorloo. Shared memory consistency models: A tutorial. IEEE Computer, 29(12):66--76, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Amittai Aviram and Bryan Ford. Deterministic OpenMP for Race-Free Parallelism. In 3rd USENIX Workshop on Hot Topics in Parallelism (HotPar11), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Bailey, T. Harris, W. Saphir, R. Van Der Wijngaart, A. Woo, and M. Yarrow. The NAS parallel benchmarks 2.0. Technical report, Citeseer, 1995.Google ScholarGoogle Scholar
  4. V. Basupalli, Tomofumi Yuki, Sanjay V. Rajopadhye, Antoine Morvan, Steven Derrien, Patrice Quinton, and David Wonnacott. ompverify: Polyhedral analysis for the openmp programmer. In IWOMP, pages 37--53, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. OpenMP Architecture Review Board. OpenMP application interface version 3.0. 2008.Google ScholarGoogle Scholar
  6. Hans-Juergen Boehm and Sarita V. Adve. Foundations of the c++ concurrency memory model. In PLDI, pages 68--78, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Daniel Brand and Pitro Zafiropulo. On communicating finite-state machines. JACM, 30(2):p323--342, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Sebastian Burckhardt, Rajeev Alur, and Milo M. K. Martin. Check-fence: checking consistency of concurrent data types on relaxed memory models. In PLDI, pages 12--21, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Sebastian Burckhardt, Chris Dern, Madanlal Musuvathi, and Roy Tan. Line-up: a complete and automatic linearizability checker. In PLDI, pages 330--340, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Y. Byun, B. Sanders, and C.-S. Keum. Design patterns of communicating extended finite state machines in sdl. In 8th Conference on Pattern Languages of Programs (PLoP'01), 2001.Google ScholarGoogle Scholar
  11. M. Said C. Wang and A. Gupta. Coverage guided systematic concurrency testing. In International Conference on Software Engineering (ICSE'11), Honolulu, Hawaii, May 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A.J. Dorta, C. Rodriguez, and F. de Sande. The OpenMP source code repository. In Parallel, Distributed and Network-Based Processing, 2005. PDP 2005. 13th Euromicro Conference on, pages 244--250. IEEE, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Ellsberger, D. Hogrefe D., and A. Sarma. SDL: Formal Object-Oriented Language For Communicating Systems. Prentrice Hall, Harlow, England, 1997.Google ScholarGoogle Scholar
  14. Malay K. Ganai and Aarti Gupta. Efficient modeling of concurrent systems in bmc. In SPIN, pages 114--133, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Matthew Hennessy. Semantics of programming languages - an elementary introduction using structural operational semantics. Wiley, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Mun-Hye Kang, Ok-Kyoon Ha, Sang-Woo Jun, and Yong-Kee Jun. A tool for detecting first races in openmp programs. In PaCT, pages 299--303, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Wayne Kelly, Vadim Maslov, William Pugh, Evan Rosser, Tatiana Shpeisman, and David Wonnacott. The omega library interface guide. Technical report, College Park, MD, USA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Shuvendu K. Lahiri, Shaz Qadeer, and Zvonimir Rakamaric. Static and precise detection of concurrency errors in systems code using smt solvers. In CAV, pages 509--524, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Y. Lin. Static nonconcurrency analysis of openmp programs. OpenMP Shared Memory Parallel Programming, pages 36--50, 2008. Google ScholarGoogle ScholarCross RefCross Ref
  20. Jeremy Manson, William Pugh, and Sarita V. Adve. The java memory model. In POPL, pages 378--391, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Stephen P. Masticola and Barbara G. Ryder. Non-concurrency analysis. In PPOPP, pages 129--138, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Vijay Menon, Keshav Pingali, and Nikolay Mateev. Fractal symbolic analysis. ACM Trans. Program. Lang. Syst., 25(6):776--813, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Microsoft. Concurrency runtime. http://msdn.microsoft.com/en-us/library/dd504870.aspx.Google ScholarGoogle Scholar
  24. Madan Musuvathi and Shaz Qadeer. Chess: Systematic stress testing of concurrent software. In LOPSTR, pages 15--16, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Paul Petersen and Sanjiv Shah. Openmp support in the intel thread checker. In WOMPAT, pages 1--12, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Shaz Qadeer and Jakob Rehof. Context-bounded model checking of concurrent software. In TACAS, pages 93--107, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Shaz Qadeer and Dinghao Wu. Kiss: keep it simple and sequential. In PLDI, pages 14--24, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Ishai Rabinovitz and Orna Grumberg. Bounded model checking of concurrent programs. In CAV, pages 82--97, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Arch D. Robison. Intel. In Encyclopedia of Parallel Computing, pages 955--964. 2011.Google ScholarGoogle ScholarCross RefCross Ref
  30. Paul Sack, Brian E. Bliss, Zhiqiang Ma, Paul Petersen, and Josep Torrellas. Accurate and efficient filtering for the Intel thread checker race detector. In ASID, pages 34--41, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Caitlin Sadowski, Stephen N. Freund, and Cormac Flanagan. Single-track: A dynamic determinism checker for multithreaded programs. In ESOP, pages 394--409, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Christian Terboven. Comparing intel thread checker and sun thread analyzer. In PARCO, pages 669--676, 2007.Google ScholarGoogle Scholar
  33. Emina Torlak, Mandana Vaziri, and Julian Dolby. Memsat: checking axiomatic specifications of memory models. In PLDI, pages 341--350, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Jan Wen Voung, Ranjit Jhala, and Sorin Lerner. Relay: static race detection on millions of lines of code. In ESEC/SIGSOFT FSE, pages 205--214, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Farn Wang. Symbolic simulation checking of dense-time automata. In 5th FORMATS (International Conference on Formal Modelling and Analysis of Timed Systems), volume LNCS 4763. Springer-Verlag, October 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Farn Wang, Li-Wei Yao, and Ya-Lan Yang. Efficient verification of distributed real-time systems with broadcasting behaviors. To appear in Real-Time System Journal, Online First, 13 April 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Yue Yang, Ganesh Gopalakrishnan, and Gary Lindstrom. Memory-model-sensitive data race analysis. In ICFEM, pages 30--45, 2004.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Symbolic consistency checking of OpenMp parallel programs

      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
      • Published in

        cover image ACM Conferences
        LCTES '12: Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems
        June 2012
        153 pages
        ISBN:9781450312127
        DOI:10.1145/2248418
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 47, Issue 5
          LCTES '12
          MAY 2012
          152 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2345141
          Issue’s Table of Contents

        Copyright © 2012 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 12 June 2012

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate116of438submissions,26%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader