Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Symbolic consistency checking of OpenMp parallel programs

Published: 12 June 2012 Publication 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.
[2]
Amittai Aviram and Bryan Ford. Deterministic OpenMP for Race-Free Parallelism. In 3rd USENIX Workshop on Hot Topics in Parallelism (HotPar11), 2011.
[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.
[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.
[5]
OpenMP Architecture Review Board. OpenMP application interface version 3.0. 2008.
[6]
Hans-Juergen Boehm and Sarita V. Adve. Foundations of the c++ concurrency memory model. In PLDI, pages 68--78, 2008.
[7]
Daniel Brand and Pitro Zafiropulo. On communicating finite-state machines. JACM, 30(2):p323--342, 1983.
[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.
[9]
Sebastian Burckhardt, Chris Dern, Madanlal Musuvathi, and Roy Tan. Line-up: a complete and automatic linearizability checker. In PLDI, pages 330--340, 2010.
[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.
[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.
[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.
[13]
J. Ellsberger, D. Hogrefe D., and A. Sarma. SDL: Formal Object-Oriented Language For Communicating Systems. Prentrice Hall, Harlow, England, 1997.
[14]
Malay K. Ganai and Aarti Gupta. Efficient modeling of concurrent systems in bmc. In SPIN, pages 114--133, 2008.
[15]
Matthew Hennessy. Semantics of programming languages - an elementary introduction using structural operational semantics. Wiley, 1990.
[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.
[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.
[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.
[19]
Y. Lin. Static nonconcurrency analysis of openmp programs. OpenMP Shared Memory Parallel Programming, pages 36--50, 2008.
[20]
Jeremy Manson, William Pugh, and Sarita V. Adve. The java memory model. In POPL, pages 378--391, 2005.
[21]
Stephen P. Masticola and Barbara G. Ryder. Non-concurrency analysis. In PPOPP, pages 129--138, 1993.
[22]
Vijay Menon, Keshav Pingali, and Nikolay Mateev. Fractal symbolic analysis. ACM Trans. Program. Lang. Syst., 25(6):776--813, 2003.
[23]
Microsoft. Concurrency runtime. http://msdn.microsoft.com/en-us/library/dd504870.aspx.
[24]
Madan Musuvathi and Shaz Qadeer. Chess: Systematic stress testing of concurrent software. In LOPSTR, pages 15--16, 2006.
[25]
Paul Petersen and Sanjiv Shah. Openmp support in the intel thread checker. In WOMPAT, pages 1--12, 2003.
[26]
Shaz Qadeer and Jakob Rehof. Context-bounded model checking of concurrent software. In TACAS, pages 93--107, 2005.
[27]
Shaz Qadeer and Dinghao Wu. Kiss: keep it simple and sequential. In PLDI, pages 14--24, 2004.
[28]
Ishai Rabinovitz and Orna Grumberg. Bounded model checking of concurrent programs. In CAV, pages 82--97, 2005.
[29]
Arch D. Robison. Intel. In Encyclopedia of Parallel Computing, pages 955--964. 2011.
[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.
[31]
Caitlin Sadowski, Stephen N. Freund, and Cormac Flanagan. Single-track: A dynamic determinism checker for multithreaded programs. In ESOP, pages 394--409, 2009.
[32]
Christian Terboven. Comparing intel thread checker and sun thread analyzer. In PARCO, pages 669--676, 2007.
[33]
Emina Torlak, Mandana Vaziri, and Julian Dolby. Memsat: checking axiomatic specifications of memory models. In PLDI, pages 341--350, 2010.
[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.
[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.
[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.
[37]
Yue Yang, Ganesh Gopalakrishnan, and Gary Lindstrom. Memory-model-sensitive data race analysis. In ICFEM, pages 30--45, 2004.

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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
Published in SIGPLAN Volume 47, Issue 5

Check for updates

Author Tags

  1. OpenMP
  2. consistency
  3. data race
  4. parallel programs
  5. symbolic simulation

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)2
Reflects downloads up to 11 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media