In Section 1.5, we talked briefly about two kinds of parallelism: horizontal and vertical, and the two types of partitions of the dependence graph that correspond to them. A vertical partition is represented by a mixed loop nest with an outer ring of doall loops, and a horizontal partition is represented by a mixed loop nest with two parts: an outer ring of do loops and an inner core of doall loops. In Chapters 2–4, we studied various loop transformations, and showed how they can be used to find equivalent programs with innermost or outermost parallel loops. Thus, we have already developed methods to display horizontal and vertical parallelism in a given loop nest. The aim of this chapter is to put these results in proper perspective. We will look at a partition separately from the loop nests that can represent it. It then becomes easier to compare different partitions of a given type, and understand how they are situated between the worst and the best partitions from the point of view of parallelization.
KeywordsDependence Graph Distance Vector Loop Nest Index Point Execution Order
Unable to display preview. Download preview PDF.