An Efficient Tool for Verifying Races in OpenMP Directive Programs without Interthread Synchronization

스레드 동기화가 없는 OpenMP 디렉티브 프로그램을 위한 효율적인 경합검증 도구

  • Published : 2008.05.15

Abstract

Races must be detected for debugging OpenMP programs with directives, because they may cause unintended nondeterministic results of programs. Intel Thread Checker, an existing tool that can detects races, can not verify the existence of races and is often time-consuming and tends to require large space. To solve these problems, we developed a tool that verifies the existence of races using user requirements and analyzed model of programs. However, the tool does not have optimal performance in programs which have no synchronization for interthread coordination. This paper presents an optimal tool that applies the optimum labeling and protocol for program models without interthread coordination. For synthetic programs without interthread synchronization, the tool verifies races over 250 times faster than the previous tool on the average, even if the maximum parallelism increases in every case of which the number of total accesses are identical.

OpenMP 디렉티브 프로그램에서 경합은 의도하지 않은 비결정적인 수행결과를 초래하므로 디버깅을 위해서 반드시 탐지되어야 한다. 하지만 이러한 경합을 탐지하는 기존의 도구인 Intel Thread Checker는 경합의 존재를 검증하지 못하며 경합을 탐지하는 비용이 크므로 비실용적이다. 이러한 문제를 해결하기 위해서 본 연구팀은 프로그램의 특성 및 사용자 요구사항의 분석결과를 이용하여 경합을 검증하는 도구를 개발하였으나 스레드 동기화가 없는 모델에서는 최적화되지 못하였다. 본 논문에서는 이러한 선행연구의 결과를 확장하기 위해서 스레드 동기화가 없는 프로그램 모델을 위한 효율적 레이블링 기법과 경합탐지 프로토콜 기법을 적용한다. 합성프로그램을 이용하여 실험한 결과로는 스레드 동기화가 없는 프로그램 모델에서 경합검증 시간이 기존의 도구보다 평균 250배 이상 빠르고, 총 접근사건 수가 동일하면 최대병렬성이 증가하여도 경합검증 시간이 감소함을 보인다.

Keywords

References

  1. Dagum, L., and R. Menon, "OpenMP: An Industry-Standard API for Shared Memory Programming," Computational Science and Engineering, 5(1): 46-55, IEEE, January-March 1998 https://doi.org/10.1109/99.660313
  2. Netzer, R. H. B., and B. P. Miller, "What Are Race Conditions? Some Issues and Formalizations," Letters on Prog. Lang. and Systems, 1(1): 74-88, ACM, March 1992 https://doi.org/10.1145/130616.130623
  3. Dinning, A., and E. Schonberg, "Detecting Access Anomalies in Programs with Critical Sections," 2nd Wrokshop on Parallel and Distributed Debugging, pp. 85-96, ACM, May 1991
  4. Mellor-Crummey, J. M., "On-the-fly Detection of Data Races for Programs with Nested Fork-Join Parallelism," Supercomputing, pp. 24-33, ACM/ IEEE, Nov. 1991
  5. Intel Co., Getting Started with the Intel Thread Checker and Thread Profiler, 2003
  6. Petersen, P., and S. Shah, "OpenMP Support in the Intel Thread Checker," WOMPAT 2003, pp. 1-12, June 2003
  7. I. Nudler, L. Rudolph, "Tools for the Efficient Development of Efficient Parallel Programs," First Israeli Conference on Computer Systems Engineering, May 1986
  8. Kim, Y., M. Park, S. Park, and Y. Jun, "A Practical Tool for Detecting Races in OpenMP Programs," Proc. of 8th Int'l Conf. on Parallel Computing Technologies (PaCT), Krasnoyarsk, Russia, Lecture Notes in Computer Science, 3606: 321-330, Springer-Verlag, Sept. 2005
  9. Jun, Y. and K. Koh, "On-the-fly Detection of Access Anomalies in Nested Parallel Loops," 3rd ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 107-117, ACM, May 1993