Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-642-11970-5_16guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

The polyhedral model is more widely applicable than you think

Published: 20 March 2010 Publication History

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.

References

[1]
Allen, J., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, San Francisco (2002)
[2]
Banerjee, U.: Data dependence in ordinary programs. Master's thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign (November 1976)
[3]
Barthou, D., Cohen, A., Collard, J.-F.: Maximal static expansion. In: ACM Symp. on Principles of Programming Languages (POPL 1998), San Diego, California (1998)
[4]
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)
[5]
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)
[6]
Boulet, P., Darte, A., Silber, G.-A., Vivien, F.: Loop parallelization algorithms: From parallelism extraction to code generation. Parallel Computing (1998)
[7]
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)
[8]
Chen, C., Chame, J., Hall, M.: A framework for composing high-level loop transformations. Technical Report 08-897, USC Computer Science (June 2008)
[9]
Collard, J.-F.: Space-time transformation of while-loops using speculative execution. In: Proc. of the 1994 Scalable High Performance Computing Conf. (1994)
[10]
Collard, J.-F.: Automatic parallelization of while-loops using speculative execution. Int. J. Parallel Program. 23(2), 191-219 (1995)
[11]
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)
[12]
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)
[13]
Feautrier, P.: Dataflow analysis of scalar and array references. Intl. Journal of Parallel Programming 20(1), 23-53 (1991)
[14]
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)
[15]
Feautrier, P.: Some efficient solutions to the affine scheduling problem, part II: multidimensional time. Intl. J. of Parallel Programming 21(6), 389-420 (1992)
[16]
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)
[17]
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)
[18]
Geigl, M., Griebl, M., Lengauer, C.: Termination detection in parallel loop nests with while loops. Parallel Comput. 25(12), 1489-1510 (1999)
[19]
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)
[20]
Griebl, M.: Automatic parallelization of loop programs for distributed memory architectures. Habilitation thesis. FMI, universität Passau (2004)
[21]
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)
[22]
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)
[23]
Karp, R., Miller, R., Winograd, S.: The organization of computations for uniform recurrence equations. J. ACM 14(3), 563-590 (1967)
[24]
Knobe, K., Sarkar, V.: Array ssa form and its use in parallelization. In: ACM Symp. on Principles of Programming Languages (POPL 1998), California (1998)
[25]
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)
[26]
Lim, A.: Improving Parallelism and Data Locality with Affine Partitioning. PhD thesis, Stanford University (2001)
[27]
Palkovic, M.: Enhanced Applicability of Loop Transformations. PhD thesis, T. U. Eindhoven, The Netherlands (September 2007)
[28]
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)
[29]
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)
[30]
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)
[31]
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)
[32]
Quilleré, F., Rajopadhye, S., Wilde, D.: Generation of efficient nested loops from polyhedra. Intl. Journal of Parallel Programming 28(5), 469-498 (2000)
[33]
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)
[34]
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)
[35]
Rus, S., Pennings, M., Rauchwerger, L.: Sensitivity analysis for automatic parallelization on multi-cores. In: ACM Intl. Conf. Supercomputing, ICS 2007 (2007)
[36]
Rus, S., Rauchwerger, L.: Hybrid dependence analysis for automatic parallelization. Technical report, Parasol Laboratory, Texas A&M University (2003)
[37]
Rus, S., Rauchwerger, L., Hoeflinger, J.: Hybrid analysis: Static & dynamic memory reference analysis. Intl. J. of Parallel Programming 31(4) (2003)

Cited By

View all
  • (2024)Fusing Gathers with Integer Linear ProgrammingProceedings of the 1st ACM SIGPLAN International Workshop on Functional Programming for Productivity and Performance10.1145/3677997.3678227(10-23)Online publication date: 28-Aug-2024
  • (2023)A Survey of Design and Optimization for Systolic Array-based DNN AcceleratorsACM Computing Surveys10.1145/360480256:1(1-37)Online publication date: 17-Jun-2023
  • (2023)Cache Programming for Scientific Loops Using LeasesACM Transactions on Architecture and Code Optimization10.1145/360009020:3(1-25)Online publication date: 19-Jul-2023
  • Show More Cited By
  1. The polyhedral model is more widely applicable than you think

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    CC'10/ETAPS'10: Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
    March 2010
    323 pages
    ISBN:3642119697
    • Editor:
    • Rajiv Gupta

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 20 March 2010

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 12 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Fusing Gathers with Integer Linear ProgrammingProceedings of the 1st ACM SIGPLAN International Workshop on Functional Programming for Productivity and Performance10.1145/3677997.3678227(10-23)Online publication date: 28-Aug-2024
    • (2023)A Survey of Design and Optimization for Systolic Array-based DNN AcceleratorsACM Computing Surveys10.1145/360480256:1(1-37)Online publication date: 17-Jun-2023
    • (2023)Cache Programming for Scientific Loops Using LeasesACM Transactions on Architecture and Code Optimization10.1145/360009020:3(1-25)Online publication date: 19-Jul-2023
    • (2023)Accelerating OpenVX through Halide and MLIRJournal of Signal Processing Systems10.1007/s11265-022-01826-895:5(571-584)Online publication date: 1-Feb-2023
    • (2023)Distributing and Parallelizing Non-canonical LoopsVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_1(1-24)Online publication date: 16-Jan-2023
    • (2022)Polyhedral Specification and Code Generation of Sparse Tensor Contraction with Co-iterationACM Transactions on Architecture and Code Optimization10.1145/356605420:1(1-26)Online publication date: 16-Dec-2022
    • (2022)A Pipeline Pattern Detection Technique in PollyWorkshop Proceedings of the 51st International Conference on Parallel Processing10.1145/3547276.3548445(1-10)Online publication date: 29-Aug-2022
    • (2022)VICOProceedings of the 36th ACM International Conference on Supercomputing10.1145/3524059.3532393(1-14)Online publication date: 28-Jun-2022
    • (2022)Warping cache simulation of polyhedral programsProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523714(316-331)Online publication date: 9-Jun-2022
    • (2022)Employing Polyhedral Methods to Reduce Data Movement in FPGA Stencil CodesLanguages and Compilers for Parallel Computing10.1007/978-3-031-31445-2_4(47-63)Online publication date: 12-Oct-2022
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media