Detecting the First Race in OpenMP Program with Nested Parallelism

내포 병렬성을 가지는 OpenMP 프로그램의 최초 경합 탐지

  • 천병규 (한국항공우주산업(주)) ;
  • 우종정 (성신여자대학교 컴퓨터정보학부) ;
  • 전용기 (경상대학교 컴퓨터과학과)
  • Published : 2001.09.01

Abstract

It is important to detect races for debugging shared-memoy parallel programs, because the races cause unintended nondeterministic program execution. Previous on-the-fly techniques to detect races can not guarantee the first race detection in nested parallel programs. Detecting the first race is important for debugging parallel programs, since the removal of the first race may make the next occurred races disappear. In this paper, we presents an on-the-fly detection technique to detect all of the first races through the reexecution of the debugged programs. We assume that the debugged parallel program may have one-way nested parallel programs. The number of reexecution is at the least the nesting depth of the program in the worst case. The space complexity is O(VT) and the time complexity to detect race in each access of access history is O(T), where V is number of shared variables and T is the maximum parallelism of the program. This efficiency of our technique in each execution is the same with the previous on-the-fly detection techniques. Therefore, this technique makes debugging parallel programs more effective and practical.

공유 변수를 가지는 병렬 프로그램의 오류 수정에서 경합 탐지는 중요하다. 왜냐하면, 경합은 프로그램의 비결정적인 수행을 유발하기 때문이다. 기존에 제시된 병렬 프로그램의 오류 수정 기법인 수행중 탐지 기법은 내포된 병렬 프로그램에서 최초 경합 탐지를 보장할 수 없다. 최초 경합을 수정하면 이후에 발생하는 경합들이 나타나지 않을 수 있으므로, 최초경합의 탐지는 중요하다. 본 논문에서는 내포 병렬 루프 프로그램을 대상으로 반복 수행을 통해서 최초경합을 탐지하는 기법을 제시한다. 반복 수행의 횟수는 최악의 경우에 프로그램의 내포 깊이 만큼이며 각 수행시의 효율성은 공유변수의 개수를 V, 프로그램의 최대 병렬성을 T라 할 때, 공간 복잡도 O(VT)와 시간 복잡도 O(T)를 가지므로 기존의 수행중 탐지 기법과 동일하다. 그러므로 본 기법은 효과적이고 실용적인 오류 수정을 가능하게 한다.

Keywords

References

  1. Callahan, D., K. Kennedy and J. Subhlok, 'Analysis of event Synchronization in a Parallel Programming Tool,' 2nd Symp. on Principles and Practice of Parallel Programming, pp.21-30, ACM. March, 1990 https://doi.org/10.1145/99163.99167
  2. 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 https://doi.org/10.1145/109626.109641
  3. Dinnig, 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, March, 1990 https://doi.org/10.1145/99163.99165
  4. Emarth, P. A., S. Ghosh and D. A. Padua, 'Detecting Nondeterminacy in Parallel Programs,' Software, 9(1), pp.69-77, IEEE, Jan., 1992 https://doi.org/10.1109/52.108783
  5. Emarth, P. A. and D. A. Padua, 'Automatic Detection of Nondeterminacy in Parallel Programs,' 1st Workshop on Parallel Distributed Debugging, pp.89-99, ACM, May, 1988 https://doi.org/10.1145/69215.69224
  6. Grunwald. D. and H. Srinivasan, 'Efficient Computation of Precedence Information in Parallel Programs,' 6th Workshop on Languages and Compilers for Parallel Computing, pp.602-606, Springer-Verlag, Aug., 1993 https://doi.org/10.1007/3-540-57659-2_34
  7. Jun, Y. and C. E. McDowell, 'On-the-fly Detection of First Races in Programs with Nested Parallelism,' 2nd Int'l Conf. on Parallel and Distributed Processing Techniques and Applications, pp.1549-1560, CSREA, Sunnyvale, California, August, 1996
  8. Jun, Y. and K. Koh, 'On-the-fly Detection of Access Anomalies Nested parallel Loops,' 3rd Workshop on Parallel and Distributed debugging, pp.107-117, ACM, May, 1993 https://doi.org/10.1145/174266.174278
  9. Kim, D. and Y. Jun, 'An Effective Tool for Debugging Races in Parallel Programs,' 3rd Int'l Conf. on parallel and Distributed Processing techniques and Applications, pp.117-126, CSREA, Las Vegas, Nevada, July, 1997
  10. Kim, J. and Y. Jun, 'Scalable On-the-fly Detection of the First Races in Parallel Programs,' 12nd Intl. Conf. on Supercomputing, pp.345-352, ACM, Melbourne, Australia, July, 1998 https://doi.org/10.1145/277830.277914
  11. Leslie Lamport, 'Time, Clocks, and the Ordering of Events in Distributed System,' Communications of the ACM, 21(7), pp.558-565, July, 1978 https://doi.org/10.1145/359545.359563
  12. McDowell, C. E. and D. B. Helmbold, 'Debugging Concurrent Programs,' Computing Surveys, 21(4), pp.593-622, ACM, Dec., 1989 https://doi.org/10.1145/76894.76897
  13. OpenMP Architecture Review Board, OpenMP Fortran Application Program Interface, version 2.0, Jun., 2000
  14. Ramanujam, J. and A. Mathrew, 'Analysis of Event Synchronization in Parallel Programs,' Languages and Compilers for Parallel Computing, Eds, K.Pingali, et. al., Lecture Notes in Computer Science(LNCS), 892, pp.300-315, Springer-Verlag, 1995 https://doi.org/10.1007/BFb0025886