Skip to main content

Efficient Race Verification for Debugging Programs with OpenMP Directives

  • Conference paper
Parallel Computing Technologies (PaCT 2007)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4671))

Included in the following conference series:

Abstract

Races must be detected for debugging parallel programs with OpenMP directives because they may cause unintended nondeterministic results of programs. The previous tool that detects races does not verify the existence of races in programs with no internal nondeterminism because the tool regards nested sibling threads as ordered threads and has the possibility of ignoring accesses involved in races in program models with synchronization such as critical section. This paper suggests an efficient tool that verifies the existence of races with optimal performance by applying race detection engines for labeling and detection protocol. The labeling scheme generates a unique identifier for each parallel thread created during a program execution, and the protocol scheme detects at least one race if any. This tool verifies the existence of races over 250 times faster in average than the previous tool even in the case that the maximum parallelism increases with the fixed number of total accesses using a set of synthetic programs without synchronization such as critical section.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Banerjee, U., Bliss, B., Ma, Z., Petersen, P.: A Theory of Data Race Detection. In: PADTAD. Proc. of Workshop on Parallel and Distributed Systems: Testing and Debugging, pp. 69–78. ACM, Portland, USA (2006)

    Chapter  Google Scholar 

  2. Dagum, L., Menon, R.: OpenMP: An Industry-Standard API for Shared Memory Programming. Computational Science and Engineering 5(1), 46–55 (1998)

    Article  Google Scholar 

  3. Dinning, A., Schonberg, E.: An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection. In: 2nd Symp. on Principles and Practice of Parallel Programming, ACM, pp. 1–10. ACM Press, New York (1990)

    Chapter  Google Scholar 

  4. Dinning, A., Schonberg, E.: Detecting Access Anomalies in Programs with Critical Sections. In: 2nd Wrokshop on Parallel and Distributed Debugging, pp. 85–96. ACM Press, New York (1991)

    Chapter  Google Scholar 

  5. Intel Co.: Intel C++ Compiler 8.1 for Windows: Getting Started Guide (2004)

    Google Scholar 

  6. Intel Corp.: Getting Started with the Intel Thread Checker, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA (2004)

    Google Scholar 

  7. Intel Corp.: Intel Thread Checker for Windows 3.0 Release Notes, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA (2005)

    Google Scholar 

  8. Jun, Y., Koh, K.: On-the-fly Detection of Access Anomalies in Nested Parallel Loops. In: 3rd ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 107–117. ACM Press, New York (1993)

    Chapter  Google Scholar 

  9. Kim, Y., Park, M., Park, S., Jun, Y.: A Practical Tool for Detecting Races in OpenMP Programs. In: Malyshkin, V. (ed.) PaCT 2005. LNCS, vol. 3606, pp. 321–330. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  10. Mellor-Crummey, J.M.: On-the-fly Detection of Data Races for Programs with Nested Fork-Join Parallelism. Supercomputing, pp. 24–33, ACM/IEEE (November 1991)

    Google Scholar 

  11. Netzer, R.H.B., Miller, B.P.: What Are Race Conditions? Some Issues and Formalizations. Letters on Prog. Lang. and Systems 1(1), 74–88 (1992)

    Article  Google Scholar 

  12. OpenMP Architecture Review Board: OpenMP Fortran Application Program Interface, Ver. 2.0 (November 2000)

    Google Scholar 

  13. Petersen, P., Shah, S.: OpenMP Support in the Intel Thread Checker. In: Voss, M.J. (ed.) WOMPAT 2003. LNCS, vol. 2716, pp. 1–12. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  14. Park, S., Park, M., Jun, Y.: A Comparision of Scalable Labeling Schemes for Detecting Races in OpenMP Programs. In: Eigenmann, R., Voss, M.J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 66–80. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  15. Rinard, M.: Analysis of Multithreaded Programs. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 1–19. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Victor Malyshkin

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kim, YJ., Kang, MH., Ha, OK., Jun, YK. (2007). Efficient Race Verification for Debugging Programs with OpenMP Directives. In: Malyshkin, V. (eds) Parallel Computing Technologies. PaCT 2007. Lecture Notes in Computer Science, vol 4671. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73940-1_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-73940-1_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-73939-5

  • Online ISBN: 978-3-540-73940-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics