ABSTRACT
We present optimization techniques for high level equational programs that are generalizations of affine control loops (ACLs). Significant parts of the SpecFP and PerfectClub benchmarks are ACLs. They often contain reductions: associative and commutative operators applied to a collection of values. They also often exhibit reuse: intermediate values computed or used at different index points being identical. We develop various techniques to automatically exploit reuse to simplify the computational complexity of evaluating reductions. Finally, we present an algorithm for the optimal application of such simplifications resulting in an equivalent specification with minimum complexity.
- C. Bastoul. Generating loops for scanning polyhedra. Technical Report 2002/23, Versailles University, 2002.Google Scholar
- C. Bastoul, A. Cohen, A. Girbal, S. Sharma, and O. Temam. Putting polyhedral loop transformations to work. In LCPC'16 International Workshop on Languages and Compilers for Parallel Computers, LNCS 2958, 2003.Google Scholar
- R. S. Bird. The promotion and accumulation strategies in transformational programming. ACM Trans. Program. Lang. Syst., 6(4):487--504, 1984. Google Scholar
Digital Library
- John Cocke and Ken Kennedy. An algorithm for reduction of operator strength. Commun. ACM, 20(11):850--856, 1977. Google Scholar
Digital Library
- P. Clauss, V. Loechner, and D. Wilde. Deriving formulae to count solutions to parameterized linear systems using ehrhart polynomials: Applications to the analysis of nested-loop programs, 1997.Google Scholar
- F. de Dinechin and S. Robert. Hierarchical static analysis of structured systems of affine recurrence equations. In ASAP, 1996. Google Scholar
Digital Library
- E. Ehrhart. Sur une problème de géométrie diophantine linéaire. J. reine angew. Math., 227:1--29, 1967.Google Scholar
- Paul Feautrier. Dataflow analysis of array and scalar references. International Journal of Parallel Programming, 20(1):23--53, 1991.Google Scholar
Digital Library
- Paul Feautrier. Some efficient solutions to the affine scheduling problem. part II. multidimensional time. International Journal of Parallel Programming, 21(6):389--420, December 1992. Google Scholar
Digital Library
- Amelia C. Fong. Inductively computable constructs in very high level languages. In POPL '79: Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, 1979. Google Scholar
Digital Library
- Gautam and S. Rajopadhye. Simplifying reductions. Technical Report 05-102, Colorado State University, 2005.Google Scholar
- V. Kislenkov, V. Mitrofanov, and E. Zima. Multidimensional chains of recurrences. In ISSAC '98: Proceedings of the 1998 international symposium on Symbolic and algebraic computation, 1998. Google Scholar
Digital Library
- Yanhong A. Liu, Scott D. Stoller, Ning Li, and Tom Rothamel. Optimizing aggregate array computations in loops. ACM Trans. Program. Lang. Syst., 27(1):91--125, 2005. Google Scholar
Digital Library
- H. Le Verge. Un environnement de transformations de programmmes pour la synthèse d'architectures régulières. PhD thesis, L'Université de Rennes I, IRISA, Campus de Beaulieu, Rennes, France, Oct 1992.Google Scholar
- Rune B. Lyngsø, Michael Zuker, and Christian N. S. Pedersen. Fast evaluation of internal loops in rna secondary structure prediction. Bioinformatics, 15(6):440--445, 1999.Google Scholar
Cross Ref
- C. Mauras. ALPHA: un langage équationnel pour la conception et la programmation d'architectures parallèles synchrones. PhD thesis, L'Université de Rennes I, IRISA, Campus de Beaulieu, Rennes, France, December 1989.Google Scholar
- Robert Paige and Shaye Koenig. Finite differencing of computable expressions. ACM Trans. Program. Lang. Syst., 4(3):402--454, 1982. Google Scholar
Digital Library
- W. Pugh. A practical algorithm for exact array dependence analysis. Commun. ACM, 35(8):102--114, 1992. Google Scholar
Digital Library
- Fabien Quilleré and Sanjay Rajopadhye. Optimizing memory usage in the polyhedral model. ACM Trans. Program. Lang. Syst., 22(5):773--815, 2000. Google Scholar
Digital Library
- Fabien Quilleré, Sanjay Rajopadhye, and Doran Wilde. Generation of efficient nested loops from polyhedra. Int. J. Parallel Program., 28(5):469--498, 2000. Google Scholar
Digital Library
- Sanjay Rajopadhye. LACS: a language for affine communication structures. Technical Report RR-2093.Google Scholar
- Xavier Redon and Paul Feautrier. Detection of recurrences in sequential programs with loops. In Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe, 1993. Google Scholar
Digital Library
- D. Wilde. A library for doing polyhedral operations. Technical Report PI 785, IRISA, Rennes, France, Dec 1993.Google Scholar
- Daniel M. Yellin and Robert E. Strom. Inc: a language for incremental computations. ACM Trans. Program. Lang. Syst., 13(2):211--236, 1991. Google Scholar
Digital Library
Index Terms
Simplifying reductions
Recommendations
Simplifying reductions
Proceedings of the 2006 POPL ConferenceWe present optimization techniques for high level equational programs that are generalizations of affine control loops (ACLs). Significant parts of the SpecFP and PerfectClub benchmarks are ACLs. They often contain reductions: associative and ...
Optimizing aggregate array computations in loops
An aggregate array computation is a loop that computes accumulated quantities over array elements. Such computations are common in programs that use arrays, and the array elements involved in such computations often overlap, especially across iterations ...
Loop optimization for aggregate array computations
ICCL '98: Proceedings of the 1998 International Conference on Computer LanguagesAn aggregate array computation is a loop that computes accumulated quantities over array elements. Such computations are common in programs that use arrays, and the array elements involved in such computations often overlap, especially across iterations ...







Comments