A Comparison of Scalable Labeling Schemes for Detecting Races in OpenMP Programs

Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic executions of the program. On-the-fly technique to detect races uses a scalable labeling scheme which generates concurrency information of parallel threads without any globally-shared data structure. Two efficient schemes of scalable labeling, BD Labeling and NR Labeling, show the similar complexities in space and time, but their actual efficiencies have been compared empirically in no literature to the best of our knowledge. In this paper, we empirically compare these two labeling schemes by monitoring a set of OpenMP kernel programs with nested parallelism. The empirical results show that NR Labeling is more efficient than BD Labeling by at least 1.5 times in generating the thread labels, and by at least 3.5 times in using the labels to detect races in the kernel programs.