Techniques for Visualizing Software Execution

of the RPE Techniques for Visualizing Software Execution by Justin Seyster Stony Brook University March 2008 Instrumenting or profiling a program’s execution yields eno rm us amounts of data that the programmer can use to diagnose bugs and performance problems or even exp lore how a program works. However, the raw data is often too vast for any programmer to analyze unaid ed. The goal of execution visualization is to present that data visually in a way that allows the viewe r to better understand a program’s behavior and to draw conclusions about that behavior. This paper surv eys tools that visualize program executions by graphing data from execution traces, showing the steps of the program’s execution, or displaying the contents of runtime data structures. We evaluate the techni ques these tools use based on how much data they show with static displays, animations, and interactiv e queries and how clearly that data communicates information the user is looking for. We also examine the avai l bility of these techniques in production software visualization packages. As part of our survey, we p resent our own system that visualizes output from the Memcov memory profiler to aid in identifying sources of leaky or wasteful memory allocations. Finally, we explore the types of data generated by program ex ecutions and discuss displays that are effective for each. This work was partially made possible thanks to a Computer Sy stems Research NSF award (CNS-0509230) and an NSF CAREER award in the Next Generation Software program (EIA-

[1]  Sougata Mukherjea,et al.  Applying algorithm animation techniques for program tracing, debugging, and understanding , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[2]  Jesús Labarta,et al.  DiP: A Parallel Program Development Environment , 1996, Euro-Par, Vol. II.

[3]  John Stasko,et al.  Understanding and Characterizing Program Visualization Systems , 1991 .

[4]  Pat Hanrahan,et al.  Visualizing application behavior on superscalar processors , 1999, Proceedings 1999 IEEE Symposium on Information Visualization (InfoVis'99).

[5]  A. Geist Visualization, Debugging, and Performance in Pvm , 1994 .

[6]  Oscar Naim,et al.  Do-loop-surface: an abstract representation of parallel program performance , 1996, Concurr. Pract. Exp..

[7]  Gordon Stoll,et al.  Performance analysis and visualization of parallel systems using SimOS and Rivet: a case study , 2000, Proceedings Sixth International Symposium on High-Performance Computer Architecture. HPCA-6 (Cat. No.PR00550).

[8]  Michael T. Heath,et al.  Visualizing the performance of parallel programs , 1991, IEEE Software.

[9]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[10]  Interner Bericht VAMPIR: Visualization and Analysis of MPI Resources , 1996 .

[11]  Takao Shimomura,et al.  VIPS: A Visual Debugger , 1987, IEEE Software.

[12]  Shelley V. Goldman Sorting out sorting , 1982 .

[13]  Robert Peter Using visualization to understand the behavior of computer systems , 2001 .

[14]  Mark N. Wegman,et al.  Execution Patterns in Object-Oriented Visualization , 1998, COOTS.

[15]  Stéphane Ducasse,et al.  Run-Time Information Visualization for Understanding Object-Oriented Systems , 2003 .

[16]  John Stasko Animating algorithms with XTANGO , 1992, SIGA.

[17]  Barton P. Miller,et al.  The Paradyn Parallel Performance Measurement Tool , 1995, Computer.

[18]  Oscar Naim,et al.  Do‐loop‐surface: an abstract representation of parallel program performance , 1996 .

[19]  John Stasko,et al.  The Information Mural: Increasing Information Bandwidth in Visualizations , 1996 .

[20]  David B. Baskerville Graphic Presentation of Data Structures in the DBX Debugger , 1985 .

[21]  Wolfgang E. Nagel,et al.  High performance event trace visualization , 2005, 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing.

[22]  M.,et al.  An Overview of the Pablo Performance Analysis , 1992 .

[23]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[24]  Amer Diwan,et al.  SUIF Explorer: an interactive and interprocedural parallelizer , 1999, PPoPP '99.

[25]  Oscar Naim D'Paola Performance visualization of parallel programs , 1995 .

[26]  Pieter Deelen,et al.  Visualization of Dynamic Program Aspects , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[27]  Buntarou Shizuki,et al.  Execution visualization and debugging in three-dimensional visual programming , 2004 .

[28]  Andreas Zeller,et al.  DDD—a free graphical front-end for UNIX debuggers , 1996, SIGP.

[29]  Jesús Labarta,et al.  A trace-scaling agent for parallel application tracing , 2002, 14th IEEE International Conference on Tools with Artificial Intelligence, 2002. (ICTAI 2002). Proceedings..

[30]  Wolfgang E. Nagel,et al.  Performance Visualization of Parallel Programs - The PARvis Environment , 1994 .

[31]  Brad A. Myers INCENSE: A system for displaying data structures , 1983, SIGGRAPH.

[32]  James Roberts TraceVis: An Execution Trace Visualization Tool , 2004 .

[33]  Ying Zhang,et al.  SvPablo: A Multi-language Performance Analysis System , 1998, Computer Performance Evaluation.

[34]  Pat Hanrahan,et al.  Rivet: a flexible environment for computer systems visualization , 2000, SIGGRAPH 2000.

[35]  Todd M. Austin,et al.  Performance analysis using pipeline visualization , 2001, 2001 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS..

[36]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.

[37]  Danny B. Lange,et al.  Program Explorer: A Program Visualizer for C++ , 1995, COOTS.

[38]  Gary Sevitsky,et al.  Visualizing reference patterns for solving memory leaks in Java , 1999, Concurr. Pract. Exp..

[39]  Ben Shneiderman,et al.  The eyes have it: a task by data type taxonomy for information visualizations , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[40]  Steven P. Reiss Visualizing Java in action , 2003, SoftVis '03.

[41]  Eileen Kraemer,et al.  A Methodology for Building Application-Specific Visualizations of Parallel Programs , 1993, J. Parallel Distributed Comput..

[42]  Tamara Munzner,et al.  Exploring Large Graphs in 3D Hyperbolic Space , 1998, IEEE Computer Graphics and Applications.

[43]  Homan Igehy,et al.  The design of a parallel graphics interface , 1998, SIGGRAPH.

[44]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[45]  Solaris Dynamic Tracing Guide , 2003 .

[46]  Ashok Malhotra,et al.  HotWire - A Visual Debugger for C++ , 1994, C++ Conference.

[47]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[48]  FurcyDavid,et al.  Sorting out sorting , 2008 .

[49]  Radu Grosu,et al.  Model Predictive Control for Memory Profiling , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.