A Detection Tool of First Races in OpenMP Programs with Directives

OpenMP 디렉티브 프로그램의 최초경합 탐지를 위한 도구

  • Published : 2010.02.15

Abstract

Detecting data races is important for debugging programs with OpenMP directives, because races result in unintended non-deterministic executions of the program. It is especially important to detect the first data races to occur for effective debugging, because the removal of such races may make other affected races disappear or appear. The previous tools for race detecting can not guarantee that detected races are the first races to occur. This paper suggests a tool what detects the first races to occur on the program with nested parallelism using the two-pass on-the-fly technique. To show functionality of this tool, we empirically compare with the previous tools using a set of the synthetic programs with OpenMP directives.

OpenMP 디렉티브 프로그램의 디버깅을 위해서 비결정적인 수행결과를 초래하는 경합을 탐지 하는 것은 중요하다. 특히, 프로그램 수행에서 가장 먼저 발생하는 최초경합은 이후에 발생하는 경합에 영향을 줄 수 있으므로 효과적인 디버깅을 위해서 반드시 탐지되어야 한다. 그러나 기존의 경합탐지 도구들은 최초경합의 탐지를 보장하지 못한다. 본 논문에서는 내포병렬성을 포함한 프로그램을 두 번의 수행으로만 프로그램의 수행 중에 최초경합을 탐지하는 도구를 제시한다. 본 도구의 정당성을 합성프로그램을 이용하여 보이고, 기존 경합탐지 도구와 기능성을 비교한다.

Keywords

References

  1. Banerjee, U., B. Bliss, Z. Ma, and P. Petersen, "A Theory of Data Race Detection," Workshop on Parallel and Distributed Systems: Testing and Debugging (PADTAD), pp. 69-78, Int'l Symp. On Software Testing and Analysis (ISSTA), ACM, Portland, Maine, July 2006.
  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. Bücker, H. M. , A. Rasch, and A. Wolf, "A Class of OpenMP Applications Involving Nested Parallelism," Pro. of the 19th ACM Symposium on Applied Computing (SAC), 1: 220-224, Nicosia, Cyprus, New York, ACM, March 14-17, 2004.
  4. Dagum, L., and R. Menon, "OpenMP: An Industry- Standard API for Shared-Memory Programming," IEEE Computational Science & Engineering, 5(1): 46-55, IEEE, January/March 1998. https://doi.org/10.1109/99.660313
  5. OpenMP Architecture Review Board, "OpenMP Application Program Interface," www.openmp.org, version3.0, May 2008.
  6. Ha, K., Y. Jun, and K. Yoo, "Efficient On-the-fly Detection of First Races in Nested Parallel Programs," Proc. of Workshop on State-of-the-Art in Scientific Computing (PARA), pp.75-84, Copenhagen, Denmark, June 2004.
  7. 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. 1993.
  8. 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.
  9. 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.
  10. Petersen, P., and S. Shah, "OpenMP Support in the Intel Thread Checker," WOMPAT 2003, pp. 1-12, June 2003.
  11. C. Terboven, "Comparing Intel Thread Checker and Sun Thread Analyzer," Minisymposium on Scalability and Usability of HPC Programming Tools, PARCO2007, September 2007.
  12. Y. Lin, C. Terboven, D. an Mey and N. Copty, "Automatic Scoping of Variables lin Parallel Regions of an OpenMP Programs," Workshop on OpenMP Applications and Tools (WOMPAT), 2004.
  13. SUN Microsystems, Inc. Sun Studio 12: Thread Analyzer User's Guide, 2007.
  14. 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. 1993.
  15. Dinning, A., and E. Schonberg, "An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection," 2nd Symposium on Principles and Practice of Parallel Programming (PPoPP), pp.1-10, ACM, March 1990.
  16. Lamport, L., "Time, Clocks, and the Ordering of Events in Distributed System," Communication of the ACM, 21(7): 558-565, July 1978. https://doi.org/10.1145/359545.359563
  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.