A compiler approach to scalable concurrent-program design
Open Access
- 1 May 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 16 (3) , 577-604
- https://doi.org/10.1145/177492.177612
Abstract
We describe a compilation system for the concurrent programming language Program Composition Notation (PCN). This notation provides a single-assignment programming model that permits concurrent-programming concerns such as decomposition, communication, synchronization, mapping, granularity, and load balancing to be addressed separately in a design. PCN is also extensible with programmer-defined operators , allowing common abstractions to be encapsulated and reused in different contexts. The compilation system incorporates a concurrent-transformation system that allows abstractions to be defined through concurrent source-to-source transformations; these convert programmer-defined operators into a core notation. Run-time techniques allow the core notation to be compiled into a simple concurrent abstract machine which can be implemented in a portable fashion using a run-time library. The abstract machine provides a uniform treatment of single-assignment and mutable data structures, allowing data sharing between concurrent and sequential program segments and permitting integration of sequential C and Fortran code into concurrent programs. This compilation system forms part of a program development toolkit that operates on a wide variety of networked workstations, multicomputers, and shared-memory multiprocessors. The toolkit has been used both to develop substantial applications and to teach introductory concurrent-programming classes, including a freshman course at Caltech.Keywords
This publication has 16 references indexed in Scilit:
- Automatic generation of self-scheduling programsIEEE Transactions on Parallel and Distributed Systems, 1991
- Concurrency: Simple Concepts and Powerful ToolsThe Computer Journal, 1990
- The J-Machine: A Fine Grain Concurrent ComputerPublished by Defense Technical Information Center (DTIC) ,1989
- Compiling parallel programs by optimizing performanceThe Journal of Supercomputing, 1988
- ActorsPublished by MIT Press ,1986
- Program Reusability through Program TransformationIEEE Transactions on Software Engineering, 1984
- Parallel Processing with Large-Grain Data Flow TechniquesComputer, 1984
- Garbage Collection of Linked Data StructuresACM Computing Surveys, 1981
- Can programming be liberated from the von Neumann style?Communications of the ACM, 1978
- Guarded commands, nondeterminacy and formal derivation of programsCommunications of the ACM, 1975