Graphical Assistance in Parallel Program Development
Kang Zhang* Wanli Ma**
*Department of Computing, Macquarie University, NSW 2109, Australia
**Computer Sciences Laboratory, Australian National University, ACT 0200, Australia
Abstract Researchers have proposed many visualisation tools that assist the development of parallel programs. A number of graph formalisms or notations ? which we will call graph models ? have been used to visualise various aspects of parallel programs and their executions. This paper attempts to classify and compare these graph models which provide different information at different stages of parallel program development.
There have been several interesting taxonomies and surveys of the systems using computer graphics to assist program development . Yet limited work has been done on classifying or summarising the role of computer graphics in parallel program development, although an increasing number of parallel programming environments that support graphical visualisation have been developed. The aim of this review is to systematically examine the role of computer graphics in different stages of parallel program development. We restrict ourselves to the use of graphics to aid the understanding of parallel programs and their executions. As Miller puts it: ``visualistion should guide, not rationalise. `Guide' means that the visualisation leads you to discover things that you did not already know. `Rationalise' means that it lets you illustrate things that you already know'' . We focus on the graph models that meaningfully interpret parallel computations, rather than on explanatory presentations that improve visual aesthetics. Therefore, we
are not interested in a presentation that incorporates visual
events or aspects that have no direct counterparts in the
computation being depicted.
We propose a model that classifies parallel program visualisation systems according to the purpose of using graphics at different stages of parallel program development. This classification method relates to the definition of ``scope'' in Myer's taxonomy , and ``aspect'' in that of Stasko and Patterson , but tailored for the parallel program development cycle. We find that there are three main stages where computer graphics plays a guiding role: program construction, debugging, and performance tuning. As illustrated in Figure 1, at different stages, graphics plays different roles and may have different notations. Any of the three stages may be entered more than once during the development life cycle. The purpose of using graphics in different iterations of a cycle of the same stage may vary depending on the progress with the program development.
At the first stage, the user may use a graphical editor to build a graphical program which is directly executable with its operational semantics; or to draw a diagram and then generate an intermediate textual program of an existing language syntax for execution. The program may be optimised during this design stage with the aid of graphics. This type of system is called a visual programming system . Another type of system, a program visualisation system, allows program graphs to be generated from textual
Figure 1: A classification model for using graphics to aid parallel program development