Estimating parallel execution time of loops with loop-carried dependences
T. Nakanishi, Kazuki Joe, Constantine D. Polychronopoulos, Ken Araki, Kensuke Fukuda · 2002
We propose a scheme to estimate exact minimum parallel execution time of the single loop with loop-carried dependences in medium and fine grain parallel execution. The minimum parallel execution time of a loop is given by the critical path length of the dependence graph which represents the code obtained from the fully unrolled loop. However, unrolling loops with a large number of iterations requires too much computation time and large storage space to be practical. The scheme proposed provides the minimum parallel execution time without unrolling the loop at all by reducing the problem into an integer linear programming problem and employing the simplex method and a branch-and-bound algorithm to solve it. We also show an experimental implementation of the proposed scheme with Livermore Benchmark Kernels to demonstrate that the computational complexity of our scheme is independent of the number of iterations of the given loop.