An interface compiler to enhance PVM for group communications

G.E. Fagg and R.J. Loader

Systems Architecture Group, Department of The University of Reading, Whiteknights, Reading RG6 6AY

e-mail {G.E.Fagg, Roger.Loader}@rdg.ac.uk;
Tel. +44 1734 318614

The first objective of the current research is the provision of a communications library that encapsulates the functionality of the principal parallel programming paradigms within a simple interface whilst solving the underlying group communications issues. In general, the user community is not familiar with the classic solutions used to construct a program from a set of cooperating sequential tasks. The PVM libraries have a large number of functions, many of which may confuse new users. By concentrating on a simple high level interface the production of tools to generate necessary code to parallelise applications is feasible. This enables the application programmer to concentrate on the partitioning the program most appropriate to the application domain, confident that the parallel paradigm primitives will automatically generate all the necessary PVM functions to resolve the communication and synchronisation issues.

An analysis of the parallel algorithms used to solve a wide range of problems can produce the underlying programming paradigms and their associated message passing requirements. The main paradigms considered lead to four basic communication structures that were termed: One to Many, Mesh, Many to Many and Ring. The methods used to construct these structures also provided the benefits of an atomic broadcast protocol. Thus guaranteed unanimity (reliable reception of all messages), order (messages received in correct order) and termination (finite number of retransmissions provided upper limit to message delivery time).

Before the advent of PVM, the most widespread mechanism for combining the distributed processors of a network has been the Remote Procedure Call (RPC). This provided only a client-server based interaction and not all applications could be easily broken down into interactions of this sort. However compilers already exist for taking a client-server interface definition and generating much of the necessary harness for developing such an application. We attempt here to demonstrate our own interface compiler that takes many feature from an RPC style system and combine them with the four higher level paradigms. Thus creating a tool that would allow easy but strict generation of PVM code. Out paper presents the current status of such a tool.