Advertisement

Efficient Race Verification for Debugging Programs with OpenMP Directives

  • Young-Joo Kim
  • Mun-Hye Kang
  • Ok-Kyoon Ha
  • Yong-Kee Jun
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4671)

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.

Keywords

OpenMP directive races verification labeling scheme protocol scheme 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 2.
    Dagum, L., Menon, R.: OpenMP: An Industry-Standard API for Shared Memory Programming. Computational Science and Engineering 5(1), 46–55 (1998)CrossRefGoogle Scholar
  3. 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)CrossRefGoogle Scholar
  4. 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)CrossRefGoogle Scholar
  5. 5.
    Intel Co.: Intel C++ Compiler 8.1 for Windows: Getting Started Guide (2004)Google Scholar
  6. 6.
    Intel Corp.: Getting Started with the Intel Thread Checker, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA (2004)Google Scholar
  7. 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. 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)CrossRefGoogle Scholar
  9. 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)CrossRefGoogle Scholar
  10. 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. 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)CrossRefGoogle Scholar
  12. 12.
    OpenMP Architecture Review Board: OpenMP Fortran Application Program Interface, Ver. 2.0 (November 2000)Google Scholar
  13. 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)CrossRefGoogle Scholar
  14. 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)CrossRefGoogle Scholar
  15. 15.
    Rinard, M.: Analysis of Multithreaded Programs. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 1–19. Springer, Heidelberg (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Young-Joo Kim
    • 1
  • Mun-Hye Kang
    • 1
  • Ok-Kyoon Ha
    • 1
  • Yong-Kee Jun
    • 1
  1. 1.Information Science, Gyeongsang National University, Jinju, 660-701South Korea

Personalised recommendations