Perfectly Nested Loop Tiling Transformations Based on the Transitive Closure of the Program Dependence Graph

A novel approach to producing tiled code for perfectly nested loops is presented. It is based on the transitive closure of the program dependence graph. The approach is derived via a combination of the Polyhedral and Iteration Space Slicing frameworks that allows us to enlarge the effectiveness of the tiling transformation. The results of the evaluation of the effectiveness of a presented algorithm and the efficiency of tiled codes produced by means of the algorithm are discussed.

[1]  Jingling Xue,et al.  On Tiling as a Loop Transformation , 1997, Parallel Process. Lett..

[2]  William Pugh,et al.  Transitive Closure of Infinite Graphs and Its Applications , 2016, International Journal of Parallel Programming.

[3]  Cédric Bastoul,et al.  Code generation in the polyhedral model is easier than you think , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[4]  Monica S. Lam,et al.  An affine partitioning algorithm to maximize parallelism and minimize communication , 1999, ICS '99.

[5]  Albert Cohen,et al.  The Polyhedral Model Is More Widely Applicable Than You Think , 2010, CC.

[6]  Martin Griebl,et al.  Automatic Parallelization of Loop Programs for Distributed Memory Architectures , 2004 .

[7]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[8]  Albert Cohen,et al.  Transitive Closures of Affine Integer Tuple Relations and Their Overapproximations , 2011, SAS.

[9]  William Pugh,et al.  Iteration space slicing and its application to communication optimization , 1997, ICS '97.

[10]  Uday Bondhugula,et al.  A practical automatic polyhedral parallelizer and locality optimizer , 2008, PLDI '08.

[11]  Marek Palkowski,et al.  Free scheduling for statement instances of parameterized arbitrarily nested affine loops , 2012, Parallel Comput..

[12]  Steve Alten,et al.  Omega Project , 1978, Encyclopedia of Parallel Computing.

[13]  Albert Cohen,et al.  Coarse-Grained Loop Parallelization: Iteration Space Slicing vs Affine Transformations , 2009, 2009 Eighth International Symposium on Parallel and Distributed Computing.

[14]  François Irigoin,et al.  Supernode partitioning , 1988, POPL '88.