Automatic extraction of functional parallelism from ordinary programs
Authors:
- M. GirkarMGM. Girkar
- C.D. PolychronopoulosCPC.D. Polychronopoulos
- 1 March 1992
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 3 (2) , 166-178
Abstract
Presents the hierarchical task graph (HTG) as an intermediate parallel program representation which encapsulates minimal data and control dependences, and which can be used for the extraction and exploitation of functional, or task-level parallelism. The hierarchical nature of the HTG facilitates efficient task-granularity control during codegeneration, and thus applicability to a variety of parallel architectures. The construction of the HTG at a given hierarchy level, the derivation of the execution conditions of tasks which maximizes task-level parallelism, and the optimization of these conditions which results in reducing synchronization overhead imposed by data and control dependences are emphasized. Algorithms for the formation of tasks and their execution conditions based on data and control dependence constraints are presented. The issue ofoptimization of such conditions is discussed, and optimization algorithms are proposed. The HTG is used as the intermediate representation of parallel Fortran and C programs for generating parallel source as well as parallel machine code.Keywords
This publication has 11 references indexed in Scilit:
- Automatic generation of DAG parallelism1989
- PARAFRASE-2: AN ENVIRONMENT FOR PARALLELIZING, PARTITIONING, SYNCHRONIZING, AND SCHEDULING PROGRAMS ON MULTIPROCESSORSInternational Journal of High Speed Computing, 1989
- Toward auto-scheduling compilersThe Journal of Supercomputing, 1988
- An overview of the PTRAN analysis system for multiprocessingJournal of Parallel and Distributed Computing, 1988
- Dependence Analysis for Supercomputing1988
- Compiler Algorithms for SynchronizationIEEE Transactions on Computers, 1987
- 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
- Programmers use slices when debuggingCommunications of the ACM, 1982
- Dependence graphs and compiler optimizations1981