Localizing non-affine array references

N. Mitchell, L. Carter, J. Ferrante
1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425)  
Existing techniques can enhance the locality of arrays indexed by affine functions of induction variables. This paper presents a technique to localize non-affine array references, such as the indirect memory references common in sparse-matrix computations. Our optimization combines elements of tiling, data-centric tiling, data remapping and inspector-executor parallelization. We describe our technique, bucket tiling, which includes the tasks of permutation generation, data remapping, and loop
more » ... generation. We show that profitability cannot generally be determined at compile-time, but requires an extension to run-time. We demonstrate our technique on three codes: integer sort, conjugate gradient, and a kernel used in simulating a beating heart. We observe speedups of 1.91 on integer sort, 1.57 on conjugate gradient, and 2.69 on the heart kernel. R S T
doi:10.1109/pact.1999.807526 dblp:conf/IEEEpact/MitchellCF99 fatcat:wct2q72tvnhwjonhcfqqgbntxm