Systematic Detection of Parallelism in Ordinary Programs

Abstract

Thesis (Ph. D.--University of Rochester. Dept. of Computer Science, 1991. Simultaneously published in the Technical Report series.This dissertation discusses a general model for compilers that take imperative code written for sequential machines (ordinary code) and detect in that code the parallelism that is compatible with the semantics of the underlying programming language. This model is based on the idea of separating the concerns of parallelism detection and parallelism exploitation. This separation is made possible by having the detection component provide an explicit representation of the parallelism available in the original code. This explicitly parallel representation is based on a mathematical formalization of the notion of permissible execution sequences for a given mass of code. Having made that separation, one can discuss an organization for the parallelism detection component. This organization depends on (1) recognizing a hierarchical structure on a graph representation of the program; and (2) separately encoding parallelization conditions and effects. Opportunities for parallelization can then be discovered by traversing the hierarchical structure from the bottom up. During this traversal, progressively larger parts of the program are compared against the independently encoded conditions, and transformed when the conditions for a parallelizing transformation are satisfied

    Similar works

    Full text

    thumbnail-image

    Available Versions