Visualizing the Execution of Threads-based Parallel Programs
Stasko, John T.
Zhao, Qiang Alex
MetadataShow full item record
One popular model of concurrent computing is threads-based parallel programming on a shared memory parallel computer. A variety of different 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 difficulty of controlling communication and synchronization between the different 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 specifically 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.