ACM SIGPLAN Notices · 2001 · 25 citations · 14 references
ComputingComputer EngineeringComputer ScienceAlgorithmsParallel AlgorithmsParallel ComputingData Locality OptimizationData ParallelismMemory Hierarchy OptimizationParallel ArchitecturesParallel Performance AnalysisCommunication MinimizationLoop ParallelizationMemory Footprint ReductionMemory Hierarchy AlgorithmsMemory LocalityMemory Locality OptimizationProgram TransformationTransformations
Applicable to arbitrary sequences and nests of loops, affine partitioning is a program transformation framework that unifies many previously proposed loop transformations, including unimodular transforms, fusion, fission, reindexing, scaling and statement reordering. Algorithms based on affine partitioning have been shown to be effective for parallelization and communication minimization. This paper presents algorithms that improve data locality using affine partitioning. Blocking and array contraction are two important optimizations that have been shown to be useful for data locality. Blocking creates a set of inner loops so that data brought into the faster levels of the memory hierarchy can be reused. Array contraction reduces an array to a scalar variable and thereby reduces the number of memory operations executed and the memory footprint. Loop transforms are often necessary to make blocking and array contraction possible. By bringing the full generality of affine partitioning to bear on the problem, our locality algorithm can find more contractable arrays than previously possible. This paper also generalizes the concept of blocking and shows that affine partitioning allows the benefits of blocking be realized in arbitrarily nested loops. Experimental results on a number of benchmarks and a complete multigrid application in aeronautics indicates that affine partitioning is effective in practice.
14
A data locality optimizing algorithm
Michael E. Wolf, Monica S. Lam · 1991 · 1.3K citations · Full text
Compiler optimizations for improving data locality
Steve Carr, Kathryn S. McKinley, Chau‐Wen Tseng · 1994 · 294 citations · Full text