The HTG: an intermediate representation for programs based on control and data dependences

Abstract: "Thus far parallelism at the loop level (or data- parallelism) has been almost exclusively the main target of parallelizing compilers. The variety of new parallel architectures and recent progress in interprocedural dependence analysis, suggest new directions for the exploitation of p...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Milind, Girkar (VerfasserIn), Polychronopoulos, Constantine D. 1958- (VerfasserIn)
Format: Buch
Sprache:English
Veröffentlicht: Urbana, Ill. 1991
Schriftenreihe:Center for Supercomputing Research and Development <Urbana, Ill.>: CSRD report 1046
Schlagworte:
Zusammenfassung:Abstract: "Thus far parallelism at the loop level (or data- parallelism) has been almost exclusively the main target of parallelizing compilers. The variety of new parallel architectures and recent progress in interprocedural dependence analysis, suggest new directions for the exploitation of parallelism across loop and procedure boundaries (or functional-parallelism). This paper 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 code generation, and thus applicability for a variety of parallel architectures. This paper focuses on 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. We present algorithms for the formation of tasks and their execution conditions based on data and control dependence constraints. Subsequently we discuss the issue of optimization of such conditions and propose optimization algorithms
The HTG, which is being implemented in the Parafrase-2 compiler, is used as the intermediate representation of parallel Fortran and C programs for generating parallel source as well as parallel machine code.
Beschreibung:31 S.