CaltechAUTHORS
  A Caltech Library Service

A Structured Approach to Parallel Programming

Massingill, Berna (1997) A Structured Approach to Parallel Programming. California Institute of Technology . (Unpublished) http://resolver.caltech.edu/CaltechCSTR:1997.cs-tr-98-04

[img]
Preview
Postscript
See Usage Policy.

997Kb
[img]
Preview
Other (Adobe PDF (1.10MB))
See Usage Policy.

1072Kb

Use this Persistent URL to link to this item: http://resolver.caltech.edu/CaltechCSTR:1997.cs-tr-98-04

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.


Item Type:Report or Paper (Technical Report)
Group:Computer Science Technical Reports
Record Number:CaltechCSTR:1997.cs-tr-98-04
Persistent URL:http://resolver.caltech.edu/CaltechCSTR:1997.cs-tr-98-04
Usage Policy:You are granted permission for individual, educational, research and non-commercial reproduction, distribution, display and performance of this work in any format.
ID Code:26832
Collection:CaltechCSTR
Deposited By: Imported from CaltechCSTR
Deposited On:30 Apr 2001
Last Modified:26 Dec 2012 14:06

Repository Staff Only: item control page