Automatic generation of self-scheduling programs
Open Access
- 1 January 1991
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 2 (1) , 68-78
- https://doi.org/10.1109/71.80190
Abstract
Techniques are described for the automatic generation of self-scheduling parallelprograms. Both scheduling algorithms and the concurrent components of applications areexpressed in a high-level concurrent language. Partitioning and data dependencyinformation are expressed by simple control statements, which may be generated eitherautomatically or manually. A self-scheduling compiler, implemented as a source-to-source transformation, takes application code, control statements, and scheduling routines and generates a new program that can schedule its own execution on a parallel computer. The approach has several advantages compared to previous proposals. It generatesprograms that are portable over a wide range of parallel computers. There is no need toembed special control structures in application programs. The use of a high-levellanguage to express applications and scheduling algorithms facilitates the development,modification, and reuse of parallel programs.Keywords
This publication has 10 references indexed in Scilit:
- The Aurora or-parallel Prolog systemNew Generation Computing, 1990
- Examples in Program CompositionPublished by Springer Nature ,1990
- Fully abstract denotational semantics for flat Concurrent PrologPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1988
- The Balance multiprocessor systemIEEE Micro, 1988
- Parallel Programming and CompilersPublished by Springer Nature ,1988
- A portable environment for developing parallel FORTRAN programsParallel Computing, 1987
- Simulated Performance of a Reduction-Based MultiprocessorComputer, 1984
- Parallel Processing with Large-Grain Data Flow TechniquesComputer, 1984
- Divide-and-Conquer for Parallel ProcessingIEEE Transactions on Computers, 1983
- A relational language for parallel programmingPublished by Association for Computing Machinery (ACM) ,1981