Polynomial approximations in the polytope model: Bringing the power of quasi-polynomials to the masses

This paper addresses one issue in the polyhedral model of loop nests that limits its practical applicability. We present methods for avoiding the use of quasi-polynomials when enumerating integer points in polyhedra, by computing polynomial approximations of the quasi-polynomials and also polynomial upper and lower bounds of the quasipolynomial. We propose two methods and different variants thereof. An evaluation on a set of systems of linear equalities generated by several compiler analyses shows that the accuracy of our more advanced method is similar to or better than the accuracy of existing techniques, while the computation is faster on difficult problems.

[1]  Vivek Sarkar,et al.  On Estimating and Enhancing Cache Effectiveness , 1991, LCPC.

[2]  Pierre Boulet,et al.  Communication Pre-evaluation in HPF , 1998, Euro-Par.

[3]  A. Barvinok,et al.  An Algorithmic Theory of Lattice Points in Polyhedra , 1999 .

[4]  Roy Dz-Ching Ju,et al.  Probabilistic memory disambiguation and its application to data speculation , 1999, CARN.

[5]  Benoît Meister Stating and manipulating periodicity in the polytope model : Applications to program analysis and optimization , 2004 .

[6]  Kyle A. Gallivan,et al.  Parametric timing estimation with Newton–Gregory formulae , 2006, Concurr. Comput. Pract. Exp..

[7]  Rizos Sakellariou,et al.  On the Quest for Perfect Load Balance in Loop-Based Parallel Computations , 1996 .

[8]  Vincent Loechner,et al.  Communication Optimization for Affine Recurrence Equations Using Broadcast and Locality , 2004, International Journal of Parallel Programming.

[9]  William Pugh,et al.  Counting solutions to Presburger formulas: how and why , 1994, PLDI '94.

[10]  Vincent Loechner,et al.  Counting Integer Points in Parametric Polytopes Using Barvinok's Rational Functions , 2007, Algorithmica.

[11]  Nadia Tawbi Estimation of nested loops execution time by integer arithmetic in convex polyhedra , 1994, Proceedings of 8th International Parallel Processing Symposium.

[12]  Vincent Loechner,et al.  Precise Data Locality Optimization of Nested Loops , 2004, The Journal of Supercomputing.

[13]  Felix Heine,et al.  Volume Driven Data Distribution for NUMA-Machines , 2000, Euro-Par.

[14]  Vincent Loechner,et al.  Parameterized Polyhedra and Their Vertices , 1997, International Journal of Parallel Programming.

[15]  Philippe Clauss,et al.  Symbolic Polynomial Maximization Over Convex Sets and Its Application to Memory Requirement Estimation , 2009, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[16]  Harald Devos,et al.  Loop Transformations for the Optimized Generation of Reconfigurable Hardware , 2008 .

[17]  Saman Amarasinghe,et al.  The suif compiler for scalable parallel machines , 1995 .

[18]  Maurice Bruynooghe,et al.  Algorithms for Weighted Counting over Parametric Polytopes: A Survey and a Practical Comparison , 2008, ITSL.

[19]  Kristof Beyls,et al.  Generating cache hints for improved program efficiency , 2005, J. Syst. Archit..

[20]  Vincent Loechner,et al.  Parametric Analysis of Polyhedral Iteration Spaces , 1998, J. VLSI Signal Process..

[21]  Tyrrell B. McAllister,et al.  The minimum period of the Ehrhart quasi-polynomial of a rational polytope , 2005, J. Comb. Theory, Ser. A.

[22]  Maurice Bruynooghe,et al.  Experiences with Enumeration of Integer Projections of Parametric Polytopes , 2005, CC.

[23]  Siddhartha Chatterjee,et al.  Exact analysis of the cache behavior of nested loops , 2001, PLDI '01.

[24]  Albert Cohen,et al.  GRAPHITE: Loop Optimizations Based on the Polyhedral Model for GCC , 2006 .