| ![]() |
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.
1: Introduction
There have been several interesting taxonomies and surveys of the systems using computer graphics to assist program development [1]. 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'' [2]. 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 [3], and
``aspect'' in that of Stasko and Patterson [1], 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
[3]. Another type of system, a program visualisation system,
allows program graphs to be generated from textual
program
execution
dynamics graphical
representation
multiprocessor
configuratiom
trace
information
visual
programming
program
visualisation
data
visualisation
program construction
software debugging
hardware debugging
performance tuning
Figure 1: A classification model for using graphics to aid parallel program development