Efficient Race Verification for Debugging Programs with OpenMP Directives

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.

[1]  Zhiqiang Ma,et al.  A theory of data race detection , 2006, PADTAD '06.

[2]  Paul Petersen,et al.  OpenMP Support in the Intel® Thread Checker , 2003, WOMPAT.

[3]  Edith Schonberg,et al.  An empirical comparison of monitoring algorithms for access anomaly detection , 2011, PPOPP '90.

[4]  Barton P. Miller,et al.  What are race conditions?: Some issues and formalizations , 1992, LOPL.

[5]  Bronis R. de Supinski,et al.  OpenMP Shared Memory Parallel Programming - International Workshops, IWOMP 2005 and IWOMP 2006, Eugene, OR, USA, June 1-4, 2005, Reims, France, June 12-15, 2006. Proceedings , 2008, IWOMP.

[6]  Edith Schonberg,et al.  Detecting access anomalies in programs with critical sections , 1991, PADD '91.

[7]  D. B. Davis,et al.  Intel Corp. , 1993 .

[8]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[9]  So-Hee Park,et al.  A Comparison of Scalable Labeling Schemes for Detecting Races in OpenMP Programs , 2001, WOMPAT.

[10]  Kern Koh,et al.  On-the-fly detection of access anomalies in nested parallel loops , 1993, PADD '93.

[11]  Martin C. Rinard,et al.  Analysis of Multithreaded Programs , 2001, SAS.

[12]  John M. Mellor-Crummey,et al.  On-the-fly detection of data races for programs with nested fork-join parallelism , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[13]  Yong-Kee Jun,et al.  A Practical Tool for Detecting Races in OpenMP Programs , 2005, PaCT.