page 1  (3 pages)
2to next section

Towards Visual Development of Message-Passing Programs

Nenad Stankovic Kang Zhang

Department of Computing, Macquarie University

Sydney, NSW 2109, Australia

{nstankov, kang}@mpce.mq.edu.au

Abstract

Writing and managing programs for parallel systems is a difficult task. It is a great challenge for designers of visual programming languages to provide tools that will help in the process. This paper describes a new graph based tool called Visper that provides a multi-dimensional environment for program composition. Our approach combines different levels of abstraction at which parallel programs are expressed into a single Process Communication Graph (PCG). PCG visualizes program construction, debugging and performance tuning throughout the development cycle and thus maintains a single mental image for the developer. The paper addresses the issues of visual construction for parallel message-passing programs using a working tool Visper.

Keywords: visual programming, space-time diagram, concurrency map, MPI, message-passing

1. Introduction

Computers are seen as tools to represent and solve large and complex computational problems. In that respect, multiprocessors and networks of computers have been drawing attention of hardware and software engineers as a means to increase performance of their systems at a reasonable cost. However, the rapid progress made in hardware has not been matched in the software domain. Over the time, a number of visual programming tools has been developed to help in the process. They are based on graphical objects that are connected together into a graph structure, because a multidimensional directed graph

closely resembles the structure and execution of parallel programs. Older systems like Schedule [15] and Poker [16] dealt with low level issues like message routing and were usually tied to a particular environment or architecture. The more recent systems like Paralex [1], HeNCE [2], Phred [3], CODE [4], and Visual Programming Environment [5] have adopted a higher level of abstraction providing programmers with tools that are tailored more towards computation rather than hardware specific issues.

Activities in parallel programs are distributed across space and time. A computer program in its raw textual form is a one-dimensional representation of the domain. Visual formalisms take advantage of our ability to perceive spatial relations and to infer structure and meaning from those relationships [13]. Issues on how to represent the semantics of the problem domain become even more important. On the other hand, graphical representations share a problem with textual ones that they emphasize some type of information, usually at the expense of other types. While diagrams are often more intuitive than text, they tend to be less precise than their textual counterparts and require mechanisms for navigation and organization. Only a restricted amount of graphical elements should be provided and placed onto a screen to allow ease of use and comprehension. The socalled Deutsch Limit of 50 [11] makes comfortable and manageable abstraction mechanisms a crucial condition.

When developing a parallel program, four main stages can be identified: problem partitioning, program composition, debugging and performance tuning [12]. Depending on the stage, the purpose of using graphics may change, because the level of abstraction at one stage may not be appropriate at another. It is, however, desirable to provide an environment that can handle program description and realization in the same paradigm. Since