DOI QR코드

DOI QR Code

Abstract Visualization for Effective Debugging of Parallel Programs Based on Multi-threading

멀티 스레딩 기반 병렬 프로그램의 효과적인 디버깅을 위한 추상적 시각화

  • Kim, Young-Joo (Embedded SW Research Department, Electronics and Telecommunications Research Institute)
  • Received : 2016.01.18
  • Accepted : 2016.02.11
  • Published : 2016.03.31

Abstract

It is important for effective visualization to summarize not only a large amount of debugging information but also the mental models of abstract ideas. This paper presents an abstract visualization tool which provides effective visualization of thread structure and race information for OpenMP programs with critical sections and nested parallelism, using a partial order execution graph which captures logical concurrency among threads. This tool is supported by an on-the-fly trace-filtering technique to reduce space complexity of visualization information, and a graph abstraction technique to reduce visual complexity of nested parallelism and critical sections in the filtered trace. The graph abstraction of partial-order relation and race information is effective for understanding program execution and detecting to eliminate races, because the user can examine control flow of program and locations of races in a structural fashion.

효과적인 시각화는 일반적으로 대용량의 디버깅 정보와 프로그램의 추상적 수행모델을 표현하는 것이 중요하다. 본 논문에서는 스레드들간의 논리적 병행성 관계를 나타내는 부분순서 수행그래프를 이용하여 내포병렬성과 임계구역을 가진 OpenMP 병렬 프로그램의 수행양상과 경합정보의 효과적 디버깅을 위해서 효과적으로 제공하는 추상적 시각화 도구를 제안한다. 본 도구는 수행중 추적선택 기법으로 시각화 정보를 위한 공간적 복잡성을 줄이고, 추적된 시각화 정보에 프로그램의 내포병렬성과 임계구역 동기화를 위한 그래프 추상화를 제공하여 시각적 복잡성을 해결한다. 그래프 추상화를 통한 스레드들간의 부분순서 관계와 경합탐지 정보는 프로그램의 제어흐름과 경합의 위치를 구조적으로 파악할 수 있게 하므로 프로그램 수행의 이해와 경합 탐지 및 수정에 효과적이다.

Keywords

References

  1. OpenMP Architecture Review Board, "OpenMP Application Programming Interface," Version 4.5, Nov. 2015.
  2. C. E. McDowell, and D. P. Helmbold, "Debugging Concurrent Programs," Computing Surveys, vol. 21, no. 4, pp. 593-622, Dec. 1989. https://doi.org/10.1145/76894.76897
  3. R. H. B. Netzer, and B. P. Miller, "What Are Race Conditions? Some Issues and Formalizations," ACM Letters on Programming Language and Systems, vol. 1, no. 1, pp. 74-88, March 1992. https://doi.org/10.1145/130616.130623
  4. Y. J. Kim, S. J. Song, and Y. K. Jun, "VORD: A Versatile On-the-fly Race Detection Tool in OpenMP Programs," International Journal of Parallel Programming, vol. 42, no. 6, pp. 900-930, Dec. 2014. https://doi.org/10.1007/s10766-013-0257-6
  5. J. Kim, and Y. K. Jun, "Scalable On-the-fly Detection of the First Races in Parallel Programs," in Proceeding of 12nd Int'l Conf. on Supercomputing, pp. 345-352, ACM, Melbourne, Australia, July 1998.
  6. K. Ha, Y. K. Jun, and K. Yoo, "Efficient on-the-fly detection of first races in nested parallel programs," in Proceeding of Workshop on State-of-the-Art in Scientific Computing, pp. 75-84, 2004.
  7. Y. K. Jun, and C. E. McDowell, "On-the-fly Detection of the First Races in Programs with Nested Parallelism," in Proceeding of 2nd Int'l Conf. on Parallel and Distributed Processing Techniques and Applications, pp. 1549-1560, CSREA, August 1996.
  8. Y. K. Jun, and C. E. McDowell, "Scalable Monitoring Technique for Detecting Races in Parallel Programs," in Proceeding of 5th Int'l Workshop on High-Level Parallel Programming Models and Supportive Environments, pp. 340-347, IEEE, Cancun, Mexico, May 2000.
  9. B. Kuhn, P. Petersen, and E. O'Toole., "OpenMP versus Threading in C/C++," Concurrency and Computation: Practice and Experience, vol. 12, no. 12, pp. 1165-1176, May 2000. https://doi.org/10.1002/1096-9128(200010)12:12<1165::AID-CPE529>3.0.CO;2-L
  10. D. Citron, D. G. Feitelson, and I. Exman, "Parallel Activity Roadmaps," in Proceeding of Int'l Conf. on Parallel Computing, pp. 593-596, Elsevier Science, 1994.
  11. D. Kim, and Y. Jun, "An Effective Tool for Debugging Races in Parallel Programs," in Proceeding of 3rd Int'l Conf. on Parallel and Distributed Processing Techniques and Applications, pp. 117-126, CSREA, Las Vegas, Nevada, July 1997.
  12. D. Zernik, M. Snir, and D. Malki, "Using Visualization Tools to Understand Concurrency," Software, vol. 9, no. 3, pp. 87-92, IEEE, May 1992. https://doi.org/10.1109/52.136185
  13. E. Kraemer, and J. T. Stasko, "The Visualization of Parallel Systems: An Overview," Journal of Parallel and Distributed Computing, vol. 18, no. 2, pp. 105-117, June 1993. https://doi.org/10.1006/jpdc.1993.1050
  14. J. Garcia, and R. Hughey, "Scalable Visualization of Parallel Systems," Technical Report, 1994.
  15. S. Utter-Honig, and C. M. Pancake, "Graphical Animation of Parallel Fortran Programs," in Proceeding of Supercomputing, pp. 491-500, ACM/IEEE, Nov. 1991.
  16. A. Dinning, and E. Schonberg, "Detecting Access Anomalies in Programs with Critical Sections," in Proceeding of 2nd Workshop on Parallel and Distributed Debugging, pp. 85-96, ACM, May 1991.
  17. A. Dinning, and E. Schonberg, "An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection," in Proceeding of 2nd Symp. on Principles and Practice of Parallel Programming, pp. 1-10, ACM, March 1990.
  18. D. P. Helmbold, C. E. McDowell, and J. Wang, TraceViewer: A Graphical Browser for Trace Analysis, TR-90-59, UCSC, 1990.
  19. IEEE, Draft Standard for Information Technology: Portable Operating System Interface (POSIX), IEEE and The Open Group, 2008.
  20. Message Passing Interface Forum, MPI: A Message-Passing Interface Standard, version 3.1, the University of Tennessee, June 2015.
  21. L. Lamport, "Time, Clocks, and the Ordering of Events in a Distributed System," Comm. of the ACM, vol. 21, no. 7, pp. 558-565, ACM, July 1978. https://doi.org/10.1145/359545.359563
  22. Y. Kim, S. Lee, M. Park, S. Kim, S. Park, and Y. Jun, "Scalable Monitoring Technique for Detecting Races in Parallel Programs with Locking," in Proceeding of Parallel Processing Systems, vol. 11, no.2, pp. 44-53, KISS, Sep. 2000.