Visualizing the Execution of Threads-based Parallel Programs

One popular model of concurrent computing is threads-based parallel programming on a shared memory parallel computer. A variety of di erent vendors and machines provide such capabilities, and support for threads programming has begun to appear in desktop multiprocessor systems such as the Sun SPARCstation 20. Unfortunately, building parallel programs that use threads is still quite challenging, even for veteran serial programmers. This stems from the di culty of controlling communication and synchronization between the di erent processes. We believe that the use of program visualization tools that graphically depict the state of a program's execution can help programmers develop, debug, and understand their code faster and more easily. Most program visualization systems for parallel computation have focused on performance views and views of message passing systems. Here, we introduce a presentation methodology and a set of views particularly appropriate for depicting the execution of threads-based parallel programs. These views were created speci cally for the pthreads programming library on a KSR machine, but they could easily be adapted to other threads-based systems. We also describe our techniques for gathering program execution data to drive the views, and we discuss what an ideal program tracing environment should provide to support the views we developed.

[1]  Eileen Kraemer,et al.  Toward flexible control of the temporal mapping from concurrent program events to animations , 1994, Proceedings of 8th International Parallel Processing Symposium.

[2]  James Arthur Kohl,et al.  A Tool to Aid in the Design, Implementation, and Understanding of Matrix Algorithms for Parallel Processors , 1990, J. Parallel Distributed Comput..

[3]  Wentong Cai,et al.  The “logical clocks” approach to the visualization of parallel programs , 1993 .

[4]  John T. Stasko,et al.  Integrating visualization support into distributed computing systems , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[5]  Alva L. Couch Graphical representations of program performance on hypercube message-passing multiprocessors , 1988 .

[6]  Erik Seligman,et al.  Causality-Preserving Timestamps in Distributed Programs , 1993 .

[7]  Jack Dongarra,et al.  SCHEDULE: Tools for developing and analyzing parallel Fortran programs , 1986 .

[8]  John Stasko,et al.  The PARADE Environment for Visualizing Parallel Program Executions: A Progress Report , 1995 .

[9]  Allen D. Malony,et al.  Visualizing parallel computer system performance , 1989 .

[10]  Jack J. Dongarra,et al.  Visualization and debugging in a heterogeneous environment , 1993, Computer.

[11]  Janice E. Cuny,et al.  Logical time in visualizations produced by parallel programs , 1992, Proceedings Visualization '92.

[12]  Eileen Kraemer,et al.  The Visualization of Parallel Systems: An Overview , 1993, J. Parallel Distributed Comput..

[13]  James E. Mankovich,et al.  Extensible parallel program performance visualization , 1995, MASCOTS '95. Proceedings of the Third International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

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

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