Abstract
The polyhedral model is a powerful framework for automatic optimization and parallelization. It is based on an algebraic representation of programs, allowing to construct and search for complex sequences of optimizations. This model is now mature and reaches production compilers. The main limitation of the polyhedral model is known to be its restriction to statically predictable, loop-based program parts. This paper removes this limitation, allowing to operate on general data-dependent control-flow. We embed control and exit predicates as first-class citizens of the algebraic representation, from program analysis to code generation. Complementing previous (partial) attempts in this direction, our work concentrates on extending the code generation step and does not compromise the expressiveness of the model. We present experimental evidence that our extension is relevant for program optimization and parallelization, showing performance improvements on benchmarks that were thought to be out of reach of the polyhedral model.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Allen, J., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, San Francisco (2002)
Banerjee, U.: Data dependence in ordinary programs. Master’s thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign (November 1976)
Barthou, D., Cohen, A., Collard, J.-F.: Maximal static expansion. In: ACM Symp. on Principles of Programming Languages (POPL 1998), San Diego, California (1998)
Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: IEEE Intl. Conf. on Parallel Architectures and Compilation Techniques (PACT 2004), Juan-les-Pins, September 2004, pp. 7–16 (2004)
Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral parallelizer and locality optimizer. In: Proc. of the 2008 ACM Conf. on Programming language design and implementation (PLDI 2008), Tucson, AZ, USA (June 2008)
Boulet, P., Darte, A., Silber, G.-A., Vivien, F.: Loop parallelization algorithms: From parallelism extraction to code generation. Parallel Computing (1998)
Carribault, P., Cohen, A., Jalby, W.: Deep Jam: Conversion of coarse-grain parallelism to instruction-level and vector parallelism for irregular applications. In: Intl. Conf. on Parallel Architectures and Compilation Techniques (PACT 2005), pp. 291–300 (2005)
Chen, C., Chame, J., Hall, M.: A framework for composing high-level loop transformations. Technical Report 08-897, USC Computer Science (June 2008)
Collard, J.-F.: Space-time transformation of while-loops using speculative execution. In: Proc. of the 1994 Scalable High Performance Computing Conf. (1994)
Collard, J.-F.: Automatic parallelization of while-loops using speculative execution. Int. J. Parallel Program. 23(2), 191–219 (1995)
Collard, J.-F., Barthou, D., Feautrier, P.: Fuzzy array dataflow analysis. In: ACM Symp. on Principles and practice of parallel programming (PPOPP 1995), Santa Barbara, California, pp. 92–101 (1995)
Creusillet, B., Irigoin, F.: Exact versus approximate array region analyses. In: Sehr, D., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1996. LNCS, vol. 1239, pp. 86–100. Springer, Heidelberg (1997)
Feautrier, P.: Dataflow analysis of scalar and array references. Intl. Journal of Parallel Programming 20(1), 23–53 (1991)
Feautrier, P.: Some efficient solutions to the affine scheduling problem, part I: one dimensional time. Intl. J. of Parallel Programming 21(5), 313–348 (1992)
Feautrier, P.: Some efficient solutions to the affine scheduling problem, part II: multidimensional time. Intl. J. of Parallel Programming 21(6), 389–420 (1992)
Franke, B., O’Boyle, M.: Array recovery and high level transformations for dsp applications. In: CPC 10 Intl. Workshop on Compilers for Parallel Computers, Amsterdam, January 2003, pp. 29–38 (2003)
Geigl, M., Griebl, M., Lengauer, C.: A scheme for detecting the termination of a parallel loop nest. In: Proc. GI/ITG FG PARS 1998 (1998)
Geigl, M., Griebl, M., Lengauer, C.: Termination detection in parallel loop nests with while loops. Parallel Comput. 25(12), 1489–1510 (1999)
Girbal, S., Vasilache, N., Bastoul, C., Cohen, A., Parello, D., Sigler, M., Temam, O.: Semi-automatic composition of loop transformations for deep parallelism and memory hierarchies. Intl. J. of Parallel Programming 34(3) (2006)
Griebl, M.: Automatic parallelization of loop programs for distributed memory architectures. Habilitation thesis. FMI, universität Passau (2004)
Griebl, M., Collard, J.-F.: Generation of synchronous code for automatic parallelization of while loops. In: Haridi, S., Ali, K., Magnusson, P. (eds.) Euro-Par 1995. LNCS, vol. 966, pp. 315–326. Springer, Heidelberg (1995)
Griebl, M., Lengauer, C.: On scanning space-time mapped while loops. In: Buchberger, B., Volkert, J. (eds.) CONPAR 1994 and VAPP 1994. LNCS, vol. 854, pp. 677–688. Springer, Heidelberg (1994)
Karp, R., Miller, R., Winograd, S.: The organization of computations for uniform recurrence equations. J. ACM 14(3), 563–590 (1967)
Knobe, K., Sarkar, V.: Array ssa form and its use in parallelization. In: ACM Symp. on Principles of Programming Languages (POPL 1998), California (1998)
Kong, X., Klappholz, D., Psarris, K.: The i test: A new test for subscript data dependence. In: ICPP 1990 Intl. Conf. on Parallel Processing (August 1990)
Lim, A.: Improving Parallelism and Data Locality with Affine Partitioning. PhD thesis, Stanford University (2001)
Palkovič, M.: Enhanced Applicability of Loop Transformations. PhD thesis, T. U. Eindhoven, The Netherlands (September 2007)
Pouchet, L.-N., Bastoul, C., Cohen, A., Cavazos, S.: Iterative optimization in the polyhedral model: Part II, multidimensional time. In: ACM Conf. on Programming Language Design and Implementation (PLDI 2008), Tucson, Arizona (June 2008)
Pouchet, L.-N., Bondhugula, U., Bastoul, C., Cohen, A., Ramanujam, J., Sadayappan, P.: Hybrid iterative and model-driven optimization in the polyhedral model. Technical Report 6962, INRIA Research Report (June 2009)
Pugh, W.: The omega test: a fast and practical integer programming algorithm for dependence analysis. In: Proc. of the ACM/IEEE Conf. on Supercomputing (SC 1991), pp. 4–13 (1991)
Pugh, W., Wonnacott, D.: An exact method for analysis of value-based array data dependences. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1993. LNCS, vol. 768, pp. 546–566. Springer, Heidelberg (1994)
Quilleré, F., Rajopadhye, S., Wilde, D.: Generation of efficient nested loops from polyhedra. Intl. Journal of Parallel Programming 28(5), 469–498 (2000)
Rangan, R., Vachharajani, N., Vachharajani, M., August, D.I.: Decoupled software pipelining with the synchronization array. In: Intl. Conf. on Parallel Architectures and Compilation Techniques (PACT 2004) (September 2004)
Rauchwerger, L., Padua, D.A.: The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization. In: ACM Conf. on Programming Language Design and Implementation (PLDI 1995) (June 1995)
Rus, S., Pennings, M., Rauchwerger, L.: Sensitivity analysis for automatic parallelization on multi-cores. In: ACM Intl. Conf. Supercomputing, ICS 2007 (2007)
Rus, S., Rauchwerger, L.: Hybrid dependence analysis for automatic parallelization. Technical report, Parasol Laboratory, Texas A&M University (2003)
Rus, S., Rauchwerger, L., Hoeflinger, J.: Hybrid analysis: Static & dynamic memory reference analysis. Intl. J. of Parallel Programming 31(4) (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Benabderrahmane, MW., Pouchet, LN., Cohen, A., Bastoul, C. (2010). The Polyhedral Model Is More Widely Applicable Than You Think. In: Gupta, R. (eds) Compiler Construction. CC 2010. Lecture Notes in Computer Science, vol 6011. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11970-5_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-11970-5_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11969-9
Online ISBN: 978-3-642-11970-5
eBook Packages: Computer ScienceComputer Science (R0)