Publication | Open Access
A compiler approach to scalable concurrent-program design
18
Citations
21
References
1994
Year
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisParallel ComputingCompilersCore NotationParallelizing CompilerCompiler SupportConcurrent ProgrammingComputer EngineeringComputer ScienceCompiler ApproachOptimizing CompilerSoftware DesignConcurrent ProgramsProgram AnalysisFormal MethodsParallel ProgrammingConcurrent Data StructureParallel Programming ModelSystem SoftwareCompilation System
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1