Program optimization and parallelization using idioms
- 1 May 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 16 (3) , 305-327
- https://doi.org/10.1145/177492.177494
Abstract
Programs in languages such as Fortran, Pascal, and C were designed and written for a sequential machine model. During the last decade, several methods to vectorize such programs and recover other forms of parallelism that apply to more advanced machine architectures have been developed (particularly for Fortran, due to its pointer-free semantics). We propose and demonstrate a more powerful translation technique for making such programs run efficiently on parallel machines which support facilities such as parallel prefix operations as well as parallel and vector capabilities. This technique, which is global in nature and involves a modification of the traditional definition of the program dependence graph (PDG), is based on the extraction of parallelizable program structures (“idioms”) from the given (sequential) program. The benefits of our technique extend beyond the above-mentioned architectures and can be viewed as a general program optimization method, applicable in many other situations. We show a few examples in which our method indeed outperforms existing analysis techniques.Keywords
This publication has 16 references indexed in Scilit:
- Cedar Fortran and other vector and parallel Fortran dialectsThe Journal of Supercomputing, 1990
- Scans as primitive parallel operationsIEEE Transactions on Computers, 1989
- An overview of the PTRAN analysis system for multiprocessingJournal of Parallel and Distributed Computing, 1988
- An extended set of FORTRAN basic linear algebra subprogramsACM Transactions on Mathematical Software, 1988
- Automatic translation of FORTRAN programs to vector formACM Transactions on Programming Languages and Systems, 1987
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- Parallel Prefix ComputationJournal of the ACM, 1980
- Basic Linear Algebra Subprograms for Fortran UsageACM Transactions on Mathematical Software, 1979
- The parallel execution of DO loopsCommunications of the ACM, 1974
- The Organization of Computations for Uniform Recurrence EquationsJournal of the ACM, 1967