Complexity of Multi-dimensional Loop Alignment
Alain Darte6
and Guillaume Huard6 
| (6) |
LIP, ENS-Lyon, F-69364 LYON Cedex 07, France |
Abstract
Loop alignment is a classical program transformation that can enable the fusion of parallel loops, thereby increasing locality
and reducing the number of synchronizations. Although the problem is quite old in the one-dimensional case (i.e., no nested
loops), it came back recently — with a multi-dimensional form — when trying to refine parallelization algorithms based on
multi-dimensional schedules. The main result of this paper is that, unlike the problem in 1D, finding a multi-dimensional
shift of statements that makes an innermost loop parallel is strongly NP-complete. Nevertheless, we identify some polynomially-solvable
cases that can occur in practice and we show that the general problem can be stated as a system of integer linear constraints.
Keywords Program Transformation - Loop Optimization - Automatic - Parallelization - Retiming - Complexity
Shifting is sometimes called alignment. But we prefer to make a distinction between shifting, a technique that consists in shifting some statements with respect to the loop iterations, and alignment, which is one particular goal achieved by this technique.
References secured to subscribers.