Algorithms for Weighted Counting over Parametric Polytopes: A Survey and a Practical Comparison

The polytope model is widely used in compiler analysis for representing a certain class of programs. Many counting problems that occur in the analysis of such programs can be solved by counting the number of integer points in a parametric polytope. In other counting problems, polynomial weights are assigned to the integer points of a parametric polytope and the objective is to find the sum of these weights over all integer points. This paper briefly surveys a number of algorithms for solving such problems, extending them where needed and evaluating them on a set of realistic and constructed examples from compiler analysis and beyond. The paper also serves to document some of the algorithms implemented in the freely available barvinok library.

[1]  Vincent Loechner,et al.  Parametric Analysis of Polyhedral Iteration Spaces , 1996, Proceedings of International Conference on Application Specific Systems, Architectures and Processors: ASAP '96.

[2]  Matthias Ko¨ppe A Primal Barvinok Algorithm Based on Irrational Decompositions , 2007 .

[3]  A. Barvinok A polynomial time algorithm for counting integral points in polyhedra when the dimension is fixed , 1994 .

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

[5]  Jesús A. De Loera,et al.  Integer Polynomial Optimization in Fixed Dimension , 2006, Math. Oper. Res..

[6]  Alain Darte,et al.  The Data Parallel Programming Model , 1996 .

[7]  K. A. Gallivan,et al.  An efficient algorithm for pointer-to-array access conversion for compiling and optimizing DSP applications , 2001, 2001 Innovative Architecture for Future Generation High-Performance Processors and Systems.

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

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

[10]  Michael F. P. O'Boyle,et al.  Array recovery and high-level transformations for DSP applications , 2003, TECS.

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

[12]  M. Brion Points entiers dans les polyèdres convexes , 1988 .

[13]  M. Brion,et al.  Residue formulae, vector partition functions and lattice points in rational polytopes , 1997 .

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

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

[16]  A. I. Barvinok,et al.  Computing the Ehrhart polynomial of a convex lattice polytope , 1994, Discret. Comput. Geom..

[17]  Nicole Berline,et al.  Local Euler-Maclaurin formula for polytopes , 2005, math/0507256.

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

[19]  Björn Lisper,et al.  Fully Automatic, Parametric Worst-Case Execution Time Analysis , 2003, WCET.

[20]  Sergio Yovine,et al.  On synthesizing parametric specifications of dynamic memory utilization , 2004 .

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

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

[23]  Sven Verdoolaege,et al.  Polynomial approximations in the polytope model: Bringing the power of quasi-polynomials to the masses , 2008 .

[24]  Dominique Lepelley,et al.  On Ehrhart polynomials and probability calculations in voting theory , 2008, Soc. Choice Welf..

[25]  Matthias Köppe,et al.  Computing Parametric Rational Generating Functions with a Primal Barvinok Algorithm , 2008, Electron. J. Comb..