Architectural Adaptability in Parallel Programming

Abstract

To create a parallel program, programmers must decide what parallelism to exploit, and choose the associated data distribution and communication. Since a typical algorithm has much more potential parallelism than any single architecture can effectively exploit, programmers usually express only the exploitation of parallelism appropriate to a single machine. Unfortunately, parallel architectures vary widely. A program that executes efficiently on one architecture may execute badly, if at all, on another architecture. To port such a program to a new architecture, we must rewrite the program to remove any ineffective parallelism, to introduce any parallelism appropriate for the new machine, to re-distribute data and processing, and to alter the form of communication. Architectural adaptability is the ease with which programmers can tune or port a program to a different architecture. The thesis of this dissertation is that control abstraction is fundamental to architectural adaptability for parallel programs. With control abstraction, we can define and use a rich variety of control constructs to represent an algorithm's potential parallelism. Since control abstraction separates the definition of a construct from its implementation, a construct may have several different implementations, each providing different exploitations of parallelism. By selecting an implementation for each use of a control construct with annotations, we can vary the parallelism we choose to exploit without otherwise changing the source code. We present Matroshka, a programming model that supports architectural adaptability in parallel programs through object-based data abstraction and closure-based control abstraction.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1991
Accession Number
ADA247516

Entities

People

  • Lawrence A. Crowl

Organizations

  • University of Rochester

Tags

DTIC Thesaurus Topics

  • C Programming Language
  • Computational Science
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Grammars
  • High Level Languages
  • Lisp Programming Language
  • Operating Systems
  • Parallel Processors
  • Programming Languages
  • Software Development
  • System Software
  • Trees (Data Structures)
  • Virtual Machines

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computer Science.
  • Neural Network Machine Learning.
  • Software Engineering.