Abstract
Many compiler optimization techniques depend on the ability to calculate the number of integer values that satisfy a given set of linear constraints. This count (the enumerator of a parametric polytope) is a function of the symbolic parameters that may appear in the constraints. In an extended problem (the “integer projection” of a parametric polytope), some of the variables that appear in the constraints may be existentially quantified and then the enumerated set corresponds to the projection of the integer points in a parametric polytope.
This paper shows how to reduce the enumeration of the integer projection of parametric polytopes to the enumeration of parametric polytopes. Two approaches are described and experimentally compared. Both can solve problems that were considered very difficult to solve analytically.
Download to read the full chapter text
Chapter PDF
References
Anantharaman, S., Pande, S.: Compiler optimizations for real time execution of loops on limited memory embedded systems. In: RTSS (1998)
Balasa, F., Catthoor, F., De Man, H.: Background memory area estimation for multidimensional signal processing systems. IEEE Transactions on VLSI 3(2), 157–172 (1995)
Barvinok, A., Pommersheim, J.: An algorithmic theory of lattice points in polyhedra. New Perspectives in Algebraic Combinatorics 38, 91–147 (1999)
Barvinok, A., Woods, K.: Short rational generating functions for lattice point problems. J. Amer. Math. Soc. 16, 957–979 (2003)
Bednara, M., Hannig, F., Teich, J.: Generation of distributed loop control. In: Deprettere, F., Teich, J., Vassiliadis, S. (eds.) SAMOS 2001. LNCS, vol. 2268, pp. 154–170. Springer, Heidelberg (2002)
Beyls, K.: Software Methods to Improve Data Locality and Cache Behavior. PhD thesis, Ghent University (2004)
Bik, A.J.C.: Compiler Support for Sparse Matrix Computations. PhD thesis, University of Leiden, The Netherlands (1996)
Boigelot, B., Latour, L.: Counting the solutions of Presburger equations without enumerating them. Theoretical Computer Science 313(1), 17–29 (2004)
Boulet, P., Redon, X.: Communication pre-evaluation in HPF. In: Pritchard, D., Reeve, J.S. (eds.) Euro-Par 1998. LNCS, vol. 1470, pp. 263–272. Springer, Heidelberg (1998)
Boulet, P., Redon, X.: Communication pre-evaluation in HPF. Technical report, Université des Sciences et Technologies de Lille, AS-182 (1998)
Braberman, V., Garbervetsky, D., Yovine, S.: On synthesizing parametric specifications of dynamic memory utilization. Technical Report TR-2004-03, VERIMAG (October 2003)
Chatterjee, S., Parker, E., Hanlon, P.J., Lebeck, A.R.: Exact analysis of the cache behavior of nested loops. In: PLDI, pp. 286–297 (2001)
Clauss, P.: Counting solutions to linear and nonlinear constraints through Ehrhart polynomials: Applications to analyze and transform scientific programs. In: International Conference on Supercomputing, pp. 278–285 (1996)
Clauss, P.: Handling memory cache policy with integer points counting. In: European Conference on Parallel Processing, pp. 285–293 (1997)
Clauss, P., Loechner, V.: Parametric analysis of polyhedral iteration spaces. Journal of VLSI Signal Processing 19(2), 179–194 (1998)
D’Alberto, P., Veidembaum, A., Nicolau, A., Gupta, R.: Static analysis of parameterized loop nests for energy efficient use of data caches. In: COLP (2001)
De Loera, J.A., Hemmecke, R., Tauzer, J., Yoshida, R.: Effective lattice point counting in rational convex polytopes. The Journal of Symbolic Computation 38(4), 1273–1302 (2004)
Derrien, S., Turjan, A., Zissulescu, C., Kienhuis, B., Deprettere, E.: Deriving efficient control in Kahn process network. In: SAMOS (2003)
Ehrhart, E.: Polynômes arithmétiques et méthode des polyèdres en combinatoire. International Series of Numerical Mathematics vol. 35 (1977)
Feautrier, P.: Parametric integer programming. Operationnelle/Operations Research 22(3), 243–268 (1988)
Ferrante, J., Sarkar, V., Thrash, W.: On estimating and enhancing cache effectiveness. In: Banerjee, U., Nicolau, A., Gelernter, D., Padua, D.A. (eds.) LCPC 1991. LNCS, vol. 589, pp. 328–343. Springer, Heidelberg (1992)
Fimmel, D., Merker, R.: Design of processor arrays for real-time applications. In: Pritchard, D., Reeve, J.S. (eds.) Euro-Par 1998. LNCS, vol. 1470, pp. 1018–1028. Springer, Heidelberg (1998)
Franke, B., O’Boyle, M.: Array recovery and high-level transformations for DSP applications. ACM TECS 2(2), 132–162 (2003)
Ghosh, S., Martonosi, M., Malik, S.: Cache miss equations: a compiler framework for analyzing and tuning memory behavior. ACM Transactions on Programming Languages and Systems 21(4), 703–746 (1999)
Hannig, F., Teich, J.: Design space exploration for massively parallel processor arrays. In: Malyshkin, V.E. (ed.) PaCT 2001. LNCS, vol. 2127, pp. 51–65. Springer, Heidelberg (2001)
Heine, F., Slowik, A.: Volume driven data distribution for NUMA-machines. In: Bode, A., Ludwig, T., Karl, W.C., Wismüller, R. (eds.) Euro-Par 2000. LNCS, vol. 1900, pp. 415–424. Springer, Heidelberg (2000)
Kjeldsberg, P.G., Catthoor, F., Aas, E.J.: Data dependency size estimation for use in memory optimization. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 22(7) (July 2003)
Lisper, B.: Fully automatic, parametric worst-case execution time analysis. In: Workshop on Worst-Case Execution Time (WCET) Analysis, pp. 77–80 (2003)
Loechner, V., Meister, B., Clauss, P.: Precise data locality optimization of nested loops. J. Supercomput. 21(1), 37–76 (2002)
Meister, B.: Projecting periodic polyhedra for loop nest analysis. In: CPC, pp. 13–24 (2004)
Parker, E., Chatterjee, S.: An automata-theoretic algorithm for counting solutions to presburger formulas. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol. 2985, pp. 104–119. Springer, Heidelberg (2004)
Pugh, W.: The Omega test: a fast and practical integer programming algorithm for dependence analysis. In: Conference on Supercomputing, pp. 4–13 (1991)
Pugh, W.: Counting solutions to Presburger formulas: How and why. In: PLDI, pp. 121–134 (1994)
Schrijver, A.: Theory of Linear and Integer Programming. John Wiley & Sons, Chichester (1986)
Seghir, R.: Dénombrement des point entiers de l’union et de l’image des polyédres paramétrés. Master’s thesis, ICPS, Strasbourg, France (June 2002)
Sturmfels, B.: On vector partition functions. J. Comb. Theory Ser. A 72(2), 302–309 (1995)
Su, E., Lain, A., et al.: Advanced compilation techniques in the PARADIGM compiler for distributed-memory multicomputers. In: ICS, pp. 424–433 (1995)
Turjan, A., Kienhuis, B., Deprettere, E.: A compile time based approach for solving out-of-order communication in Kahn process networks. In: ASAP (2002)
Verdoolaege, S., Beyls, K., Bruynooghe, M., Catthoor, F.: Experiences with enumeration of integer projections of parametric polytopes. In: Report CW 395, Department of Computer Science, K.U. Leuven, Leuven, Belgium (October 2004)
Verdoolaege, S., Seghir, R., Beyls, K., Loechner, V., Bruynooghe, M.: Analytical computation of Ehrhart polynomials: Enabling more compiler analyses and optimizations. In: CASES, pp. 248–258 (2004)
Verdoolaege, S., Woods, K.M., Bruynooghe, M., Cools, R.: Computation and manipulation of enumerators of integer projections of +parametric polytopes. Report CW 392, Dept. of Computer Science, K.U. Leuven, Leuven, Belgium (2005)
Zhao, Y., Malik, S.: Exact memory size estimation for array computations. IEEE Transactions on VLSI Systems 8(5), 517–521 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Verdoolaege, S., Beyls, K., Bruynooghe, M., Catthoor, F. (2005). Experiences with Enumeration of Integer Projections of Parametric Polytopes. In: Bodik, R. (eds) Compiler Construction. CC 2005. Lecture Notes in Computer Science, vol 3443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31985-6_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-31985-6_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25411-9
Online ISBN: 978-3-540-31985-6
eBook Packages: Computer ScienceComputer Science (R0)