GRAPNEL: A Graphical Programming Language for Parallel Programs

1 Abstract We propose a new visual structured programming language, GRAPNEL (GRAphical Process's NEt Language) for designing distributed parallel programs. This language is a part of a complex software environment for parallel programming which includes tools for design, mapping, visualization, optimization, monitoring and debugging of parallel systems. For design we use a hybrid language where the main internal structure of the processes and the communication between processes are described using graphical representaion, meanwhile the sequential parts and code fragments without communication are described using textual representation. 2 Introduction Parallel processing is emerging as a promising way of computation as powerful new multipro-cessor computers are becoming available at reduced cost. Also, there is a need to exploit a collection of machines joined by a fast interconnection network. However, if we use a distributed system instead of a single{processing one, it raises new diiculties due to communication and syncronisation of the processes. Additionaly, parallel programs have the problem of the potential complexity of the interactions among a number of distributed processes. This naturally gives the need of a graphical design tool to involve into the programming process. As a controversy of the old textual programming way there are new tools like ProGraph 2] which entirely uses graphics to build a program. This can be unnecessary tedious when the user writes the low level routines of the program, he is forced to draw web of icons where some simple text lines would do. In our approach a hybrid language (visual and textual) is used: the main internal structure of the processes and the communication between processes are described using graphical language symbols, but the declarations, the code of the sequential routines and code fragments without communication are described using text lines. The schematic of the program design is shown on Fig. 1. The editor consists of a collection of windows, (graphical or textual) where the user can draw graphical elements or can write program lines. The editor is equipped with several intelligent tools for automatic generation of communication code fragments, automatic checking of consistency considering the communications, several graph layout algorithms for demonstaring the process communication graph and so on.