Language constructs for modular parallel programs Page: 1 of 15

Language Constructs for Modular Parallel Programs
Ian Foster
Mathematics and Computer Science Division 'CE I V ED
Argonne National Laboratory
Argonne, IL 60439 USA FEB 2 8 1996
Abstract .s0 ri
We describe programming language constructs that facilitate the application of
modular design techniques in parallel programming. These constructs allow us to iso-
late resource management and processor scheduling decisions from the specification
of individual modules, which can themselves encapsulate design decisions concerned
with concurrency, communication, process mapping, and data distribution. This ap-
proach permits development of libraries of reusable parallel program components and
the reuse of these components in different contexts. In particular, alternative map-
ping strategies can be explored without modifying other aspects of program logic. We
describe how these constructs are incorporated in two practical parallel programming
languages, PCN and Fortran M. Compilers have been developed for both languages,
allowing experimentation in substantial applications.
Keywords: modularity; parallel programming; programming languages; program com-
position; code reuse; virtual computer
1 Introduction
In sequential programming, modular and object-oriented design and programming tech-
niques are well understood and widely used to reduce complexity, permit separate devel-
opment of components, and encourage reuse [31, 27, 31. In parallel programming, the
situation is less advanced. Parallel programs are, for the most part, developed in an
ad-hoc fashion, as monolithic entities that cannot easily be adapted to changing circum-
stances. Code reuse is rare, outside the specialized context of single-program multiple-data
(SPMD) programming, where the same program is run on every processor and libraries
can be called to perform common global operations [13, 25].
This paper presents programming language constructs that permit the benefits of mod-
ularity to be realized in parallel programs. The central ideas are as follows. First, process
and data placement decisions within an individual module are specified with respect to
a virtual computer; the embedding of this virtual computer within a physical or another
virtual computer is specified when the module is invoked. This approach permits resource
management and locality decisions to be separated from the specifications of individual
modules and developed in a hierarchical fashion by using stepwise refinement techniques.
Second, virtual computer constructs are incorporated into compositional programming
languages, in which concurrency is specified with explicit parallel constructs and inter-
actions between concurrent processes are restricted so that neither physical location nor
by a contractor of the U. S. Government
under contract No. W31-109-ENG-38.
,, Accordingly. the U. S. Government retains a
D STR O , 31P T> Y% nonexclusive, royalty-free license to publish
or reproduce the published form of this
.! r contrnbutwon. or allow others to do mo, for
D prl0 is p a.i#i ,'> iLo at U. S. Governmn urposes

Upcoming Pages

Here’s what’s next.

upcoming item: 2 2 of 15
upcoming item: 3 3 of 15
upcoming item: 4 4 of 15
upcoming item: 5 5 of 15

Show all pages in this report.

This report can be searched. Note: Results may vary based on the legibility of text within the document.

Tools / Downloads

Get a copy of this page .

Citing and Sharing

Basic information for referencing this web page. We also provide extended guidance on usage rights, references, copying or embedding.

Reference the current page of this Report.

Foster, I. Language constructs for modular parallel programs, report, March 1, 1996; Illinois. ( accessed May 25, 2019), University of North Texas Libraries, Digital Library,; crediting UNT Libraries Government Documents Department.

International Image Interoperability Framework (This Page)