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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Dagum, L., Menon, R.: OpenMP: An Industry-Standard API for Shared Memory Programming. Computational Science and Engineering 5(1), 46–55 (1998)
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)
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)
Intel Co.: Intel C++ Compiler 8.1 for Windows: Getting Started Guide (2004)
Intel Corp.: Getting Started with the Intel Thread Checker, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA (2004)
Intel Corp.: Intel Thread Checker for Windows 3.0 Release Notes, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA (2005)
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)
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)
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)
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)
OpenMP Architecture Review Board: OpenMP Fortran Application Program Interface, Ver. 2.0 (November 2000)
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)
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)
Rinard, M.: Analysis of Multithreaded Programs. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 1–19. Springer, Heidelberg (2001)
Author information
Authors and Affiliations
Editor information
Rights 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)