Index of /ftp/pub/techreports/tr93-28.dir

Icon  Name                    Last modified      Size  Description
[DIR] Parent Directory - [   ] 00-FM.ps.Z 09-Dec-1993 11:18 16K [   ] 01-TOC.ps.Z 09-Dec-1993 11:18 13K [   ] 02-LOF.ps.Z 09-Dec-1993 11:18 14K [   ] 03-LOT.ps.Z 09-Dec-1993 11:18 9.0K [   ] 04-Intro.ps.Z 09-Dec-1993 11:18 24K [   ] 05-OvrVw.ps.Z 09-Dec-1993 11:18 66K [   ] 06-moddef.ps.Z 09-Dec-1993 11:18 74K [   ] 07-Sem.ps.Z 09-Dec-1993 11:18 35K [   ] 08-ExPg.ps.Z 09-Dec-1993 11:18 125K [   ] 09-Ease.ps.Z 09-Dec-1993 11:18 38K [   ] 10-Impl.ps.Z 09-Dec-1993 11:18 124K [   ] 11-Proto.ps.Z 09-Dec-1993 11:18 64K [   ] 12-RelWk.ps.Z 09-Dec-1993 11:18 48K [   ] 13-FutWk.ps.Z 09-Dec-1993 11:18 17K [   ] 14-Conc.ps.Z 09-Dec-1993 11:18 17K [   ] 15-ModDef.ps.Z 09-Dec-1993 11:18 14K [   ] 16-UCcode.ps.Z 09-Dec-1993 11:18 14K [   ] 17-Ref.ps.Z 09-Dec-1993 11:18 20K [   ] 18-Vita.ps.Z 09-Dec-1993 11:18 9.9K
This directory contains Peter Newton's dissertation

TR93-28	  A Graphical Retargetable Parallel Programming Environment and
  		Its Efficient Implementation

in Postscript form.  The files should be printed in order according
to their numbers.  04-Intro.ps.Z is chapter 1.  There is one chapter
per file.

Dept. of Computer Sciences
The University of Texas at Austin
December 1993

Supervisor: J.C. Browne.

It describes CODE 2.0 in detail.  Total length is approximately 200 pages.

Abstract:

This dissertation addresses the problem of facilitating the
development of efficiently executing programs for multiple-instruction
multi-datastream (MIMD) parallel computers. The family of MIMD
parallel computer architectures is the most flexible and most widely
applicable means of meeting requirements for very high performance
computation. It is widely accepted, however, that current methods of
preparing programs for these systems are inadequate and are the
primary bottleneck for attainment of these machines' potential.

It is difficult to write programs which are both correct and efficient
even for a single MIMD parallel architecture. A program which is
efficient in execution on one member of this architecture class is
often either not portable at all to different members of the
architecture class, or if portability is possible, the efficiency
attained is usually not satisfactory on any architecture.

The conceptual basis of the approach we have taken to providing a
solution for the problem of programming MIMD parallel architectures is
based upon raising the level of abstraction at which parallel program
structures are expressed and moving to a compositional approach to
programming. The CODE 2.0 model of parallel programming permits
parallel programs to be created by composing basic units of
computation and defining relationships among them. It expresses the
communication and synchronization relationships of units of
computation as abstract dependencies. Runtime determined
communications structures can be expressed.

Ready access to these abstractions is provided by a flexible graphical
interface in which the user can specify them in terms of extended
directed graphs. Both ease of preparation of correct programs and
compilation to efficient execution on multiple target architectures
is enabled. The compositional approach to programming focuses the
programmer's attention upon the structure of the program, rather
than development of small unit transformations. In the CODE 2.0
system, the units of computation are prepared using conventional
sequential programming languages along with declaratively specified
conditions under which the unit is enabled for execution.

The system is built upon a unique object-oriented model of compilation
in which communication and synchronization mechanisms are implemented
by parameterized class templates which are used to custom tailor the
translation of abstract specifications in communication and
synchronization to efficient local models.

The attainment of the goals of the research is measured in the
following ways. There have been several uses of the CODE 2.0 system by
casual users in parallel programming classes. The results are
uniformly positive; the programs which are developed are simple and
easy to read, and execute at least as efficiently as programs written
in conventional parallel languages. Experimental measurement of the
execution behavior of benchmark programs has shown that the executable
code generated by CODE 2.0 is efficient, often within 5% or less, and
sometimes more efficient than hand-generated parallel programs.
Portability with retention of efficiency of execution has been
demonstrated by implementations on two different execution
environments; an implementation on the synchronous message paradigm
given by Ada and in the shared-memory environment of the Sequent Dynix
operating system.