page 1  (6 pages)
2to next section

Parallel Program Visualisation for a Message-Passing System

Gaurav Marwaha Kang Zhang

Department of Computing, Macquarie University, NSW 2109, Australia

ABSTRACT Designing parallel programs for message-passing systems is not an easy task. Difficulties arise largely due to human limitations in identifying relationships between simultaneously executed program components, or processes, and between the data computed by these processes. This paper presents a parallel program visualisation tool, Visputer, that provides the ability to graphically design and edit messagepassing programs, configure parallel processes onto a multiprocessor network and visualise the execution of programs. The textual versions of programs and network configurations are automatically generated by Visputer based on program and network graphs. Animation of program execution is achieved by instrumenting the original program with event collecting code. The event collecting method maintains program behaviour and imposes little performance impact on the original program.

views. Wagner et al. developed an environment, known as TIPS [18], which integrates a performance monitoring tool, a process to processor mapping tool, a graphical interface and the capability to analyse the resource requirements of an application. The visual abstraction method proposed by Ritchie [13] attempts to capture the major characteristics of the Occam language. It is, however, more textual than graphical. Zernik et al. evaluated a visualisation methodology using causality graphs to replay interprocess communication and process creation on a network of 256 transputers [19].

This paper presents Visputer, a visualisation tool for developing Occam programs. Section 2 briefly describes an overview of Visputer. Section 3 presents the visual abstraction methods for Occam program construction and for network configuration, followed by a description of the visualisation methods for the execution behaviour in Section 4. Section 5 covers the instrumentation techniques used.
1. Introduction

2. Overview of Visputer
The rapid progress of multiprocessor systems and parallel programming languages has made parallel programming supporting environments an important research area. Developing parallel programs on a multiprocessor machine usually involves switching between design, evaluation, modification and tuning. The development cycle increases dramatically as the complexity of a parallel program increases.

Visputer was created for developing Occam processes that run on a network of transputers. Briefly, a transputer is a microcomputer with its own local memory and links (typically four) for communicating with other transputers. Occam [8] is the machine language for the transputer and is based on CSP [7]. It provides a framework with the basic primitives needed for designing message-passing concurrent systems using transputers. Two fundamental concepts used in Occam are processes (PROC) and channels (CHAN). A process is a statement or a composition of processes. Occam uses three primitive processes: assignment, input and output. One can combine primitive processes to form more complex processes using a sequential (SEQ), parallel (PAR), alternative (ALT), conditional (IF) or repetitive (WHILE) construct. A process composed by a SEQ, PAR, ALT or IF can be replicated a fixed number of times. Interprocess communication is achieved by synchronous message-passing through channels.

Much of the recent research in parallel programming has been focused on program visualisation and supporting environments [15][16]. Developing visualisation tools for concurrent programming languages is still at its early stage. Several such systems have focused on visualising various program development activities for particular message-passing libraries. Heterogeneous Network Computing Environment, HeNCE, provides a graphical interface for creating, configuring, executing and debugging parallel programs [1]. The HeNCE interface supports PVM programming for a collection of serial, parallel and vector computers in a network which behaves as a large distributed computer [4]. ParaGraph relies on the input trace files produced by a communication library, PICL [5], to provide a post-mortem replay with 25 different perspectives [6]. Supporting an iconic representation of the parallel programming library, MMK [2], VISTOP uses software, hardware and hybrid monitoring techniques to make program execution controllable by the user [3].

Visputer provides the ability to graphically design and edit Occam programs, configure Occam processes onto a transputer network and visualise the execution of programs. Figure 1 shows the main components of Visputer. The user may use a text editor or the graphical editor provided by Visputer to build Occam programs. The Visputer configurator provides a graphical user interface for configuring any network topology of transputers and for mapping Occam processes onto the transputer network. The pre-compiler then automatically inserts event collecting code into Occam programs before they are compiled by the standard Occam compiler and executed on the transputer network. Program events are collected during

Other groups of researchers have developed graphical environments for programming on multi-transputer systems. In GILT [14], parallel processes written in Occam are represented as icons in a graphical environment that incorporates an icon editor. Animation is shown on top of the existing graphical