Browse > Article
http://dx.doi.org/10.3745/KIPSTA.2010.17A.1.009

A Preprocessor for Detecting Potential Races in Shared Memory Parallel Programs with Internal Nondeterminism  

Kim, Young-Joo (한국과학기술원)
Jung, Min-Sub ((주)글로벌스텐다드테크놀로지 SE사업본부)
Jun, Yong-Kee (경상대학교 정보과학과)
Abstract
Races that occur in shared-memory parallel programs such as OpenMP programs must be detected for debugging because of causing unintended non-deterministic results. Previous works which verify the existence of these races on-the-fly are limited to the programs without internal non-determinism. But in the programs with internal non-determinism, such works need at least N! execution instances for each critical section to verify the existence of races, where N is the degree of maximum parallelism. This paper presents a preprocessor that statically analyzes the locations of non-deterministic accesses using program slicing and can detect apparent races as well as potential races through single execution using the analyzed information. The suggested tool can deterministically monitor non-deterministic accesses to occur in OpenMP programs so that this tool can verify the existence of races even if it is used any race detection protocol which can apply to programs with critical section. To prove empirically this tool, we have experimented using a set of benchmark programs such as synthetic programs that involve non-deterministic accesses, OpenMP Microbenchmark, NAS Parallel Benchmark, and OpenMP application programs.
Keywords
Parallel Programs; Races; On-The-Fly Race Detection; Internal Non-Determinism; Apparent Races; Potential Races; Synthetic Programs; Microbenchmark; NAS Parallel Benchmark;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 Bull, J. M., "Measuring Synchronisation and Scheduling Overheads in OpenMP," Proc. of European Workshop on OpenMP (EWOMP), pp.99-105, Sept. 1999.
2 Jin, H., M. Frumkin, and J. Yan, "The OpenMP Implementation of NAS Parallel Benchmarks and its Performance," NAS TR: NAS-99-011, NASA Ames Research Center, 1999.
3 Netzer, R. H. B., B. P. Miller, "What Are Race Conditions? Some Issues and Formalizations," ACM Letters on Programming Language and Systems, pp.74-88, ACM, March, 1992.
4 Dinning, A., E. Schonberg, "Detecting Access Anomalies in Programs with Critical Sections," 2nd Workshop on Parallel and Distributed Debugging, pp.85-96, ACM, May, 1991.
5 O'Callahan, R. and J. Choi, "Hybrid Dynamic Data Race Detection," Proc. of ACM SIGPALN Symp. on Principle and Practice of Parallel Programming (PPoPP), San Diego, California, ACM, June, 2003.
6 Kim, Y., D. Kim, and Y. Jun, "An Empirical Analysis of Intel Thread Checker for Detecting Races in OpenMP Programs," Int'l Conf. on Computer and Information Science (ICIS), pp.409-414, IEEE, Portland, USA, May, 2008.
7 Praun, C., T. R. Gross, "Object Race Detection," Proc. of the 16th ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications, pp. 70-82, ACM, October, 2001.
8 Yu, Y., T. Rodeheffer, W. Chen, "Race Track: Efficient Detection of Data Race Conditions via Adaptive Tracking," Proc. of the twentieth ACM Symposium on Operating Systems Principles, pp.221-234, ACM, Oct., 2005.
9 Kim, Y., M. Kang, O. Ha, and Y. Jun, "Effcient Race Verfication for Debugging Programs with OpenMP Directives," Int'l Conf. on Parallel Computing Technologies (PaCT), Pereslavl-Zalessky, Russia, Sept. 2007, Lecture Notes in Computer Science, 4671: 230-239, Springer, Aug., 2007.
10 Cheng, G. I., M. Feng, C. E. Leiserson, K. H. Randall, A. F. Stark "Detecting Data Races in Cilk Programs that Use Locks," Proc. of the Tenth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pp.298-309, ACM, June, 1998.
11 Petersen, P., and S. Shah, "OpenMP Support in the Intel Thread Checker," Int'l Workshop on OpenMP Applications and Tools, 1-12, June, 2003.
12 Dinning, A., E. Schonberg, "An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection," 2nd Symp. On Principles and Practice of Parallel Programming, pp.1-10, ACM, March, 1990.
13 김영주, 전용기, "OpenMP 디렉티브 프로그램을 위한 자료경합 검증도구," 정보과학회논문지: 시스템 및 이론, 34(9):395-406, 한국정보과학회, 2007.9.
14 Stefan S., M. Burrows, G. Nelson, P. Sobalvarro, T. Anderson, "Eraser: a dynamic data race detector for multithreaded programs," ACM Transactions on Computer Systems (TOCS), pp.391-411, ACM, Nov., 1997.
15 Jun, Y., and K. Koh, " On-the-fly Detection of Access Anomalies in Nested Parallel Loops," Proc. of the 3rd ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 107-117, ACM, San Diego, California, May 1993. Also in SIGPLAN Notices, 28(12): 107-117, ACM, Nov., 193.
16 Dagum, L., and R. Menon, "OpenMP: An Industry-Standard API for Shared-Memory Programming," IEEE Computational Science & Engineering, pp.5(1): 46-55, IEEE, January/ March, 1998.   DOI   ScienceOn
17 SUN Microsystems Inc., Sun Studio12: Thread Analyzer User's Guide, 2007.
18 Terboven, C., "Comparing Intel Thread Checker and Sun Thread Analyzer," Mini-symposium on Scalability and Usability of HPC Programming Tools, In Parallel Computing (PARCO), September, 2007.
19 Ferrante, J., T. J. Watson, J. Ottenstein, J. D. Warren, "The Program Dependence Graph and Its Use in Optimization," ACM Transactions on Programming Languages and Systems (TOPLAS), pp.319-349, ACM, July, 1987.
20 Audenaert, K., "Clock Trees: Logical Clocks for Programs with Nested Parallelism," Tr. on Software Engineering, 23(10): 646-658, IEEE, Oct., 1997.   DOI   ScienceOn
21 Park, S., M. Park, and Y. Jun, "A Comparison of Scalable Labeling Schemes for Detecting Races in OpenMP Programs," Proc. of the Int'l Workshop on OpenMP Applications and Tools, Purdue Univ., West Lafayette, Indiana, Lecture Notes in Computer Science, 2104: 68-80, Springer-Verlag, July, 2001.