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

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

  • Received : 2016.01.18
  • Accepted : 2016.02.11
  • Published : 2016.03.31


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;Parallel Programs;Race condition;Visualization;Abstraction


  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.
  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.
  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.
  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.<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.
  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.
  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.
  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.


Grant : The research and development of the self-adaptive software framework for various IoT devices

Supported by : IITP