Welcome to the new version of CaltechAUTHORS. Login is currently restricted to library staff. If you notice any issues, please email coda@library.caltech.edu
Published April 30, 2001 | Submitted
Report Open

A Structured Approach to Parallel Programming

Abstract

Parallel programs are more difficult to develop and reason about than sequential programs. There are two broad classes of parallel programs: (1) programs whose specifications describe ongoing behavior and interaction with an environment, and (2) programs whose specifications describe the relation between initial and final states. This thesis presents a simple, structured approach to developing parallel programs of the latter class that allows much of the work of development and reasoning to be done using the same techniques and tools used for sequential programs. In this approach, programs are initially developed in a primary programming model that combines the standard sequential model with a restricted form of parallel composition that is semantically equivalent to sequential composition. Such programs can be reasoned about using sequential techniques and executed sequentially for testing. They are then transformed for execution on typical parallel architectures via a sequence of semantics-preserving transformations, making use of two secondary programming models, both based on parallel composition with barrier synchronization and one incorporating data partitioning. The transformation process for a particular program is typically guided and assisted by a parallel programming archetype, an abstraction that captures the commonality of a class of programs with similar computational features and provides a class-specific strategy for producing efficient parallel programs. Transformations may be applied manually or via a parallelizing compiler. Correctness of transformations within the primary programming model is proved using standard sequential techniques. Correctness of transformations between the programming models and between the models and practical programming languages is proved using a state-transition-based operational model. This thesis presents: (1) the primary and secondary programming models, (2) an operational model that provides a common framework for reasoning about programs in all three models, (3) a collection of example program transformations with arguments for their correctness, and (4) two groups of experiments in which our overall approach was used to develop example applications. The specific contribution of this work is to present a unified theory/practice framework for this approach to parallel program development, tying together the underlying theory, the program transformations, and the program-development methodology.

Additional Information

© 1998 Berna Massingill, California Institute of Technology The research described in this thesis was funded in part by a Milton E Mohr graduate fellowship in part by an Air Force Laboratory graduate fellowship and in part by the AFOSR and the NSF. I thank them all for their support.

Attached Files

Submitted - CSTR97.pdf

Submitted - postscript.ps

Files

CSTR97.pdf
Files (1.8 MB)
Name Size Download all
md5:200f48b15b3eb23533e3a163b189864d
1.0 MB Download
md5:f497426ab8048097a83df8273e41ab2e
792.5 kB Preview Download

Additional details

Created:
August 19, 2023
Modified:
October 24, 2023