Symbolic Polynomial Maximization Over Convex Sets and Its Application to Memory Requirement Estimation

Memory requirement estimation is an important issue in the development of embedded systems, since memory directly influences performance, cost and power consumption. It is therefore crucial to have tools that automatically compute accurate estimates of the memory requirements of programs to better control the development process and avoid some catastrophic execution exceptions. Many important memory issues can be expressed as the problem of maximizing a parametric polynomial defined over a parametric convex domain. Bernstein expansion is a technique that has been used to compute upper bounds on polynomials defined over intervals and parametric ldquoboxesrdquo. In this paper, we propose an extension of this theory to more general parametric convex domains and illustrate its applicability to the resolution of memory issues with several application examples.

[1]  Jon G. Rokne,et al.  Computer Methods for the Range of Functions , 1984 .

[2]  Rida T. Farouki,et al.  On the numerical condition of polynomials in Bernstein form , 1987, Comput. Aided Geom. Des..

[3]  Fujio Yamaguchi,et al.  Curves and Surfaces in Computer Aided Geometric Design , 1988, Springer Berlin Heidelberg.

[4]  Gerald Farin,et al.  Curves and surfaces for computer aided geometric design , 1990 .

[5]  Jan M. Rabaey,et al.  Memory Estimation for High Level Synthesis , 1994, 31st Design Automation Conference.

[6]  William Pugh,et al.  Simplifying Polynominal Constraints Over Integers to Make Dependence Analysis More Precise , 1994, CONPAR.

[7]  G. Ziegler Lectures on Polytopes , 1994 .

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

[9]  Rudolf Eigenmann,et al.  Symbolic range propagation , 1995, Proceedings of 9th International Parallel Processing Symposium.

[10]  Paul Feautrier,et al.  Fuzzy array dataflow analysis , 1995, PPOPP '95.

[11]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[12]  Paul Feautrier,et al.  Automatic Parallelization in the Polytope Model , 1996, The Data Parallel Programming Model.

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

[14]  Paul Feautrier The Data Parallel Programming Model , 1996, Lecture Notes in Computer Science.

[15]  Jean-Baptiste Lully,et al.  The collected works , 1996 .

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

[17]  Nikil D. Dutt,et al.  Memory size estimation for multimedia applications , 1998, Proceedings of the Sixth International Workshop on Hardware/Software Codesign. (CODES/CASHE'98).

[18]  M. Zettler,et al.  Robustness analysis of polynomials with polynomial parameter dependency using Bernstein expansion , 1998, IEEE Trans. Autom. Control..

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

[20]  Bruno Blanchet,et al.  Escape analysis for object-oriented languages: application to Java , 1999, OOPSLA '99.

[21]  J. Garloff,et al.  Solving strict polynomial inequalities by Bernstein expansion , 1999 .

[22]  John Hughes,et al.  Recursion and dynamic data-structures in bounded space: towards embedded ML programming , 1999, ICFP '99.

[23]  Vincent Loechner PolyLib: A Library for Manipulating Parameterized Polyhedra , 1999 .

[24]  Sharad Malik,et al.  Exact memory size estimation for array computations , 2000, IEEE Trans. Very Large Scale Integr. Syst..

[25]  Adrian Bowyer,et al.  Robust arithmetic for multivariate Bernstein-form polynomials , 2000, Comput. Aided Des..

[26]  Jürgen Garloff,et al.  Application of Bernstein Expansion to the Solution of Control Problems , 2000, Reliab. Comput..

[27]  Mahmut T. Kandemir,et al.  Reducing memory requirements of nested loops for embedded systems , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[28]  Martin C. Rinard,et al.  Pointer and escape analysis for multithreaded programs , 2001, PPoPP '01.

[29]  Kyle A. Gallivan,et al.  Tight Timing Estimation With the Newton-Gregory Formulae∗ , 2002 .

[30]  Ovidiu Gheorghioiu,et al.  Statistically determining memory consumption of real-time Java threads , 2002 .

[31]  Richard Kreckel,et al.  Introduction to the GiNaC Framework for Symbolic Computation within the C++ Programming Language , 2000, J. Symb. Comput..

[32]  Ralph R. Martin,et al.  Comparison of interval methods for plotting algebraic curves , 2002, Comput. Aided Geom. Des..

[33]  Martin Hofmann,et al.  Static prediction of heap space usage for first-order functional programs , 2003, POPL '03.

[34]  Gerda Janssens,et al.  Multi-dimensional incremental loop fusion for data locality , 2003, Proceedings IEEE International Conference on Application-Specific Systems, Architectures, and Processors. ASAP 2003.

[35]  Yanhong A. Liu,et al.  Optimized Live Heap Bound Analysis , 2002, VMCAI.

[36]  Alexandru Turjan,et al.  Translating affine nested-loop programs to process networks , 2004, CASES '04.

[37]  Philippe Clauss,et al.  A Symbolic Approach to Bernstein Expansion for Program Analysis and Optimization , 2004, CC.

[38]  Francky Catthoor,et al.  Storage requirement estimation for optimized design of data intensive applications , 2004, TODE.

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

[40]  Cédric Bastoul,et al.  Code generation in the polyhedral model is easier than you think , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[41]  Thomas Fahringer,et al.  Efficient Symbolic Analysis for Parallelizing Compilers and Performance Estimators , 1998, The Journal of Supercomputing.

[42]  Sigmund Cherem,et al.  Region analysis and transformation for Java programs , 2004, ISMM '04.

[43]  Sven Verdoolaege Incremental Loop Transformations and Enumeration of Parametric Sets (Incrementele lustransformaties en enumeratie van parametrische verzamelingen) , 2005 .

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

[45]  Sergio Yovine,et al.  Program Instrumentation and Run-Time Analysis of Scoped Memory in Java , 2004, RV@ETAPS.

[46]  Gilles Villard,et al.  Lattice-based memory allocation , 2003, IEEE Transactions on Computers.

[47]  Paul Feautrier,et al.  Dataflow analysis of array and scalar references , 1991, International Journal of Parallel Programming.

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

[49]  Shengchao Qin,et al.  Memory Usage Verification for OO Programs , 2005, SAS.

[50]  Sergio Yovine,et al.  A Static Analysis for Synthesizing Parametric Specifications of Dynamic Memory Consumption , 2006, J. Object Technol..

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

[52]  H. Zhu,et al.  COMPUTATION OF MEMORY REQUIREMENTS FOR MULTI-DIMENSIONAL SIGNAL PROCESSING APPLICATIONS BY HONGWEI ZHU , 2006 .

[53]  Vincent Loechner,et al.  Memory optimization by counting points in integer transformations of parametric polytopes , 2006, CASES '06.

[54]  Todor Stefanov,et al.  Improved derivation of process networks , 2006 .

[55]  Florin Balasa,et al.  Memory size computation for multimedia processing applications , 2006, Asia and South Pacific Conference on Design Automation, 2006..

[56]  Ryan Kastner,et al.  Optimizing Polynomial Expressions by Algebraic Factorization and Common Subexpression Elimination , 2006, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

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

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

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

[60]  Todor Stefanov,et al.  pn: A Tool for Improved Derivation of Process Networks , 2007, EURASIP J. Embed. Syst..

[61]  V. Stahl Interval Methods for Bounding the Range of Polynomials and Solving Systems of Nonlinear Equations , 2007 .

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

[63]  Sergio Yovine,et al.  Parametric prediction of heap memory requirements , 2008, ISMM '08.