Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Compositional parallel programming languages.

Journal Article · · ACM Trans. Program. Lang. Syst.

In task-parallel programs, diverse activities can take place concurrently, and communication and synchronization patterns are complex and not easily predictable. Previous work has identified compositionality as an important design principle for task-parallel programs. In this article, we discuss alternative approaches to the realization of this principle, which holds that properties of program components should be preserved when those components are composed in parallel with other program components. We review two programming languages, Strand and Program Composition Notation, that support compositionality via a small number of simple concepts, namely, monotone operations on shared objects, a uniform addressing mechanism, and parallel composition. Both languages have been used extensively for large-scale application development, allowing us to provide an informed assessment of both their strengths and their weaknesses. We observe that while compositionality simplifies development of complex applications, the use of specialized languages hinders reuse of existing code and tools and the specification of domain decomposition strategies. This suggests an alternative approach based on small extensions to existing sequential languages. We conclude the article with a discussion of two languages that realized this strategy.

Research Organization:
Argonne National Laboratory (ANL)
Sponsoring Organization:
ER
DOE Contract Number:
AC02-06CH11357
OSTI ID:
937860
Report Number(s):
ANL/MCS/JA-22260
Journal Information:
ACM Trans. Program. Lang. Syst., Journal Name: ACM Trans. Program. Lang. Syst. Journal Issue: 4 ; 1996 Vol. 18
Country of Publication:
United States
Language:
ENGLISH

Similar Records

Language constructs and runtime systems for compositional parallel programming
Conference · Tue Feb 28 23:00:00 EST 1995 · OSTI ID:32551

Bilingual parallel programming
Conference · Sun Dec 31 23:00:00 EST 1989 · OSTI ID:6223945

Language constructs for modular parallel programs
Technical Report · Thu Feb 29 23:00:00 EST 1996 · OSTI ID:204015