Functional parallelism: theoretical foundations and implementations

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...

Full description

Saved in:
Bibliographic Details
Main Author: Girkar, Milind B. (Author)
Format: Book
Language:English
Published: Urbana, Ill. 1991
Series:Center for Supercomputing Research and Development <Urbana, Ill.>: CSRD report 1182
Subjects:
Summary: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 thesis studies the problem of extracting functional parallelism from sequential programs. It presents the Hierarchical Task Graph (HTG) as an intermediate parallel program representation which encapsulates data and control dependences, and which can be used for the extraction and exploitation of functional parallelism
Control and data dependencies require synchronization between tasks, and hence the problem of eliminating redundant control and data dependences is important. We show that determining precedence relationship is crucial in finding the essential data dependences for synchronization purposes, that there exists a unique minimum set of essential data dependences, and that finding this minimum set is NP-hard and NP-easy. We present heuristic algorithms, which appear to work well in practice, to find the minimum set of data dependences. The control and data dependences are used to derive execution conditions for tasks which maximize functional parallelism
We discuss the issue of optimization of such conditions and propose optimization algorithms. The hierarchical nature of the HTG facilitates efficient task-granularity control during code generation, and thus applicability for a variety of parallel architectures. The HTG has been implemented in the Parafrase-2 compiler and is used as the intermediate representation for generating parallel source code.
Item Description:Zugl.: Urbana, Ill., Diss., 1992
Physical Description:95 S.

There is no print copy available.

Interlibrary loan Place Request Caution: Not in THWS collection!