Symbolic analysis for parallelizing compilers
- 1 July 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 18 (4) , 477-518
- https://doi.org/10.1145/233561.233568
Abstract
The notion of dependence captures that most important properties of a program for efficient execution on parallel computers. The dependence structure of a program defines that necessary constraints of the order of execution of the program components and provides sufficient information for the exploitation of the available parallelism. Static discovery and management of the dependence structure of programs save a tremendous amount of execution time, and dynamic utilization of dependence information results in a significant performance gain on parallel computers. However, experiments with parallel computers indicate that existing multiprocessing environments are unable to deliver the desired performance over a wide range of real applications, mainly due to lack of precision of their dependence information. This calls for an effective compilation scheme capable of understanding the dependence structure of complicated application programs. This article describes a methodology for capturing analyzing program properties that are essential in the effective detection and efficient exploitation of parallelism on parallel computers. Based on this methodology, a symbolic analysis framework is developed for the Parafrase-2 parallelizing compiler. This framework extends the scope of a variety of important program analysis problems and solves them in a unified way. The attained solution space of these problems is much larger than that handled by existing compiler technology. Such a powerful approach is required for the effective compilation of a large class of application programs.Keywords
This publication has 40 references indexed in Scilit:
- Engineering a data dependence testConcurrency: Practice and Experience, 1993
- Performance analysis pf parallelizing compilers on the Perfect Benchmarks programsIEEE Transactions on Parallel and Distributed Systems, 1992
- Automatic extraction of functional parallelism from ordinary programsIEEE Transactions on Parallel and Distributed Systems, 1992
- Proof of Recursive Unsolvability of Hilbert's Tenth ProblemThe American Mathematical Monthly, 1991
- Constant propagation with conditional branchesACM Transactions on Programming Languages and Systems, 1991
- Automatic attenuator for sonobuoysThe Journal of the Acoustical Society of America, 1988
- Automatic translation of FORTRAN programs to vector formACM Transactions on Programming Languages and Systems, 1987
- Some MACSYMA Programs for Solving Recurrence RelationsACM Transactions on Mathematical Software, 1978
- Symbolic Solution of Finite-Difference EquationsACM Transactions on Mathematical Software, 1977
- Verifying Program PerformanceJournal of the ACM, 1976