A Verification Tool of Data Races in Programs with OpenMP Directives

OpenMP 디렉티브 프로그램을 위한 자료경합 검증도구

  • Published : 2007.09.15

Abstract

Races in programs with OpenMP directives must be detected for debugging, because they may cause unexpected result by non-deterministic executions. But, Thread Checker of Intel corporation, a well-known existing tool for detecting the races, is not practical because this tool does not verify the existence of races and is known that the cost for race detection is too big. This paper presents a web-based tool which verify the existence of races with an optimal functionality and performance using the results from the property analysis of OpenMP program as well as the user requirements. Our tool is proved to be practical in the aspect of functionality and performance by experiments using synthetic programs, because the suggested tool can verify the existence of race and shows O(n) as the ratio of time consumption while Thread Checker can not verify the existence of race and shows $O(n^2)$ as the ratio, where n is the number of total accesses.

OpenMP 디렉티브를 가진 프로그램에서 경합은 프로그램의 의도하지 않은 비결정적 수행결과를 초래하기 때문에 디버깅을 위해서 반드시 탐지되어야 한다. 하지만 이를 위한 기존의 경합탐지 도구인 Intel사의 Thread Checker는 경합의 존재를 검증하지 못하고 경합을 탐지하는 비용이 크므로 비실용적이다. 본 논문에서는 OpenMP 프로그램의 특성 및 사용자 요구사항의 분석결과를 이용하여 최적의 기능과 성능으로 경합을 검증하는 웹 기반 도구를 제시한다. 그리고 합성 프로그램을 이용하여 실험한 결과로서 Thread Checker는 경합의 존재를 검증하지 못하고 경합탐지 시에 소요되는 시간의 증가비율은 총 접근 사건수 n에 대해서 $O(n^2)$이지만 제안된 도구는 경합의 존재를 검증하고 소요되는 시간의 증가비율은 O(n)이므로 기능 및 성능적인 측면에서 실용적인 도구이다.

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. OpenMP Architecture Review Board, OpenMP Application Programs Interface, Version 2.5, May 2005
  3. Netzer, R. H. B., and B. P. Miller, 'What Are Race Conditions? Some Issues and Formalizations,' Letters on Programming Lang. and Systems, 1(1): 74-88, ACM, March 1992 https://doi.org/10.1145/130616.130623
  4. Intel Corp., Getting Started with the Intel Thread Checker, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA, 2004
  5. Intel Corp., Intel Thread Checker for Windows 3.0 Release Notes, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA, 2005
  6. Intel Corp., Threading Methodology: Principle and Practices, Version 2.0, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA, 2003
  7. Petersen, P., and S. Shah, 'OpenMP Support in the Intel Thread Checker,' Proc. of the Int'l Workshop on OpenMP Application and Tools (WOMPAT), Berlin Heidelberg, Lecture Notes in Computer Science, 2716: 1-12, Springer-Verlag, 2003
  8. Dinning, A., and E. Schonberg, 'Detecting Access Anomalies in Programs with Critical Sections,' 2nd Workshop on Parallel and Distributed Debugging, pp. 85-96, ACM, May 1991
  9. Nudler, I., and L. Rudolph, 'Tools for the Efficient Development of Efficient Parallel Programs,' In 1st Israeli Conference on Computer System Engineering, 1986
  10. Rinard. M., 'Analysis of Multithreaded Programs,' Int'l Static Analysis Symposium (SAS), Lecture Notes in Computer Science, 2126: 1-19, Springer- Verlag, July 2001
  11. Intel Corp., Getting Started with the Intel C++ Compiler 9.0 for Windows, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA, 2004
  12. Intel Corp., VTune(TM) Performance Analyzer 8.0 Release Notes, 2200 Mission College Blvd., Santa Clara, CA 95052-8119, USA, 2006
  13. Kusano, K., S. Satoh, and M. Sato, 'Performance Evaluation of the Omni OpenMP Compiler,' 3rd Int'l Symp. on High Performance Computing, pp. 403-414, Springer-Verlag, 2000
  14. Banerjee, U., B. Bliss, Z. Ma, and P. Petersen, 'A Theory of Data Race Detection,' Proc. of Workshop on Parallel and Distributed Systems: Testing and Debugging (PADTAD), pp. 69-78, ACM, Portland, USA, July 2006
  15. 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, March 1990
  16. 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
  17. 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
  18. Park, S., M. Park, and Y. Jun, 'A Comparision of Scalable Labeling Schemes for Detecting Races in OpenMP Programs,' Int'l Workshop on OpenMP Applications and Tools (Wompat), pp. 66-80, West lafayette, Indiana, July 2001
  19. Kim, J., and Y. Jun, 'Scalable On-the-fly Detection of the First Races in Parallel Programs,' Proc. of the 12nd Int'l Conf. on Supercomputing (ICS), pp. 345-352, ACM, Melbourne, Australia, July 1998
  20. Park, H., and Y. Jun, 'Two-Pass On-the-fly Detection of the First Races in Shared-Memory Parallel Programs,' Proc. of the 2nd Symp. on Parallel and Distributed Tools (SPDT), ACM, Welches, Oregon, August 1998