Efficient Thread Labeling for On-the-fly Race Detection of Programs with Nested Parallelism

It is quite difficult to detect data races in parallel programs, because they may lead to unintended nondeterministic executions of the program. To detect data races during an execution of program that may have nested parallelism, it is important to maintain thread information called label which is used to determine the logical concurrency between threads. Unfortunately, the previous schemes of thread labeling introduce a serious amount of overhead that includes serializing bottleneck to access centralized data structure or depends on the maximum parallelism or the depth of nested parallelism. This paper presents an efficient thread labeling, called eNR Labeling, which does not use any centralized data structure and creates thread labels on every thread operation in a constant amount of time and space even in its worst case. Furthermore, this technique allows to determine the logical concurrency between threads in a small amount of time that is proportional only to the depth of nested parallelism. Compared with three state-of-the-arts labeling schemes, our empirical results using OpenMP benchmarks show that eNR labeling reduces both time overhead by 10% and space overhead by more than 90% for on-the-fly race detection.

[1]  Yong-Kee Jun,et al.  Space-efficient On-the-fly Race Detection for Programs with Nested Parallelism , 1997, Euro-PDS.

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

[3]  Michael A. Bender,et al.  On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs , 2004, SPAA '04.

[4]  Koen De Bosschere,et al.  RecPlay: a fully integrated practical record/replay system , 1999, TOCS.

[5]  Jong-Deok Choi,et al.  Hybrid dynamic data race detection , 2003, PPoPP '03.

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

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

[8]  Koenraad Audenaert Maintaining Concurrency Information for On-the-fly Data Race Detection , 1997, PARCO.

[9]  Michel Raynal,et al.  Fundamentals of Distributed Computing: A Practical Tour of Vector Clock Systems , 2002, IEEE Distributed Syst. Online.

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

[11]  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).

[12]  Andreas Wolf,et al.  A class of OpenMP applications involving nested parallelism , 2004, SAC '04.

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

[14]  Alexander V. Veidenbaum,et al.  Efficient Scheduling of Nested Parallel Loops on Multi-Core Systems , 2009, 2009 International Conference on Parallel Processing.

[15]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[16]  Stephen N. Freund,et al.  FastTrack: efficient and precise dynamic race detection , 2009, PLDI '09.

[17]  Koenraad Audenaert,et al.  Clock Trees: Logical Clocks for Programs with Nested Parallelism , 1997, IEEE Trans. Software Eng..

[18]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

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

[20]  Ok-Kyoon Ha,et al.  Efficient Thread Labeling for Monitoring Programs with Nested Parallelism , 2010, FGIT-FGCN.

[21]  Walter F. Tichy,et al.  On-the-fly race detection in multi-threaded programs , 2008, PADTAD '08.

[22]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

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

[24]  Arturo González-Escribano,et al.  The OpenMP source code repository , 2005, 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing.

[25]  SchonbergEdith,et al.  Detecting access anomalies in programs with critical sections , 1991 .