Non-uniform dependences partitioned by recurrence chains
Non-uniform distance dependences in loop nests are a known obstacle to find
parallel iterations. To find the outermost loop parallelism in these
``irregular" loops, a novel methods is presented based on
recurrence chains. The scheme organizes non-uniformly dependent
iterations into lexicographically ordered monotonic chains. While the
initial and final iteration of monotonic chains form two parallel
sets, the remaining iterations form an intermediate set that can be
partitioned further. When there is only one pair of coupled array
references, the non-uniform dependences are represented by a single
recurrence equation. In that case, the chains in the intermediate set
do not bifurcate and each can be executed as a WHILE loop. The
independent iterations and the initial iterations of monotonic
dependence chains constitute the outermost parallelism. The proposed
approach compares favorably with other treatments of non-uniform
dependences in the literature. When there are multiple recurrence
equations, a dataflow parallel execution can be scheduled using the
technique extensively to find maximum loop parallelism.
The paper accepted by the
ICPP 2004 conference can be downloaded, Here is the presentation.
Related tools are our ISV loop parallelism visualization tool, the XML extension to the FPT compiler and the Omega Calculator for integer programming (University of Maryland).