Browse > Article

Analyzing Access Histories for Detecting First Races in Shared-memory Programs  

강문혜 (경상대학교 컴퓨터과학과)
김영주 (경상대학교 컴퓨터과학)
전용기 (경상대학교 컴퓨터과학과)
Abstract
Detecting races is important for debugging shared-memory Parallel programs, because races result in unintended nondeterministic executions of the programs. Particularly, the first races to occur in an execution of a program must be detected because they can potentially affect other races that occur later. Previous on-the-fly techniques that detect such first races based on candidate events that are likely to participate in the first races monitor access events in order to collect the candidate events during a program execution, and try to report the races only from determining the concurrency relationships of the candidates. Such races reported in this way. however, are not guaranteed to be first races, because they are not determined by taking into account how they are affected with each other. This paper presents a new post-mortem technique that analyzes, on each nesting level, candidate events collected from an execution of a shared-memory program with nested parallelism in order to report only first races. This technique is efficient, because it guarantees that first races reported by analyzing a nesting level are the races that occur first at the level, and does not require more analyses to the higher nesting levels than the current level. The Proposed technique facilitates more practical and effective debugging than the previous techniques, because it guarantees to detect first races if candidate events are collected from an execution instance of the program with nested parallelism.
Keywords
shared-memory parallel programs; first races; candidate events; nested parallelism;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Netzer, R. H. B., and B. P. Miller, 'What Are Race Conditions? Some Issues and Formalizations,' Letters on Programming Language and Systems, 1(1): 74-88, ACM, March. 1992   DOI
2 Jun, Y., and C. E. McDowell, 'On-the-fly Detection of the First Races in Programs with Nested Parallelism,' 2nd Int'l Conf. on Parallel and Distributed Processing Techniques and Applications, CSREA, Sunnyvale, Calif., Aug. 1996
3 Kim, J., D. Kim., and Y. Jun, 'Scalable Visualization for Debugging Races in OpenMP Programs,' 3rd Int'l Conf. on Communications in Computing, pp. 259-265, Las Vegas, Nevada, June 2002
4 Sato, M., S. Satoh, M. Kusano, and Y. Tanaka, 'Design of OpenMP Compiler for an SMP Cluster,' 1st European Workshop on OpenMP, Lund, Sweden, Sept. 1999
5 Dinning, A., and 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, 1990
6 Ronsse, M., and K. De Bosschere, 'RecPlay: A Fully Integrated Practical Record/Replay System,' Tr. on Computer Systems, 17(2): 133-152, ACM, May 1999   DOI
7 Choi, J., and S. L. Min, 'Race Frontier: Reproducing Data Races in Parallel Program Debugging,' 3rd Symp. on Principles and Practice of Parallel Programming, pp. 145-154, ACM, April 1991   DOI
8 OpenMP Architecture Review Board, OpenMP Fortran Application Program Interface, Ver. 2.0, Nov. 2000
9 Park, H., and Y. Jun, 'Detecting the First Races in Parallel Programs with Ordered Synchronization,' 6th Int'l Conf. on Parallel and Distributed Systems, pp. 201-208, IEEE, Tainan, Taiwan, Dec. 1998   DOI
10 Chandra R., L. Dagum, D. Kohr, D. Maydan, J. McDonald, and R. Menon, Parallel Programming in OpenMP, Academic Press, 2001