Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1065910.1065921acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

ACME: adaptive compilation made efficient

Published: 15 June 2005 Publication History

Abstract

Research over the past five years has shown significant performance improvements using a technique called adaptive compilation. An adaptive compiler uses a compile-execute-analyze feedback loop to find the combination of optimizations and parameters that minimizes some performance goal, such as code size or execution time.Despite its ability to improve performance, adaptive compilation has not seen widespread use because of two obstacles: the large amounts of time that such systems have used to perform the many compilations and executions prohibits most users from adopting these systems, and the complexity inherent in a feedback-driven adaptive system has made it difficult to build and hard to use.A significant portion of the adaptive compilation process is devoted to multiple executions of the code being compiled. We have developed a technique called virtual execution to address this problem. Virtual execution runs the program a single time and preserves information that allows us to accurately predict the performance of different optimization sequences without running the code again. Our prototype implementation of this technique significantly reduces the time required by our adaptive compiler.In conjunction with this performance boost, we have developed a graphical-user interface (GUI) that provides a controlled view of the compilation process. By providing appropriate defaults, the interface limits the amount of information that the user must provide to get started. At the same time, it lets the experienced user exert fine-grained control over the parameters that control the system.

References

[1]
L. Almagor, Keith D. Cooper, Alexander Grosul, Timothy J. Harvey, Steven W. Reeves, Devika Subramanian, Linda Torczon, and Todd Waterman. Finding effective compilation sequences. In Proceedings of LCTES 2004, pages 231--239, June 2004.
[2]
Bowen Alpern, Mark N. Wegman, and F. Kenneth Zadeck. Detecting equality of variables in programs. In Conference Record of th 15th POPL, pages 1--11, San Diego, CA, USA, January 1988.
[3]
Thomas Ball and James R. Larus. Optimally profiling and tracing programs. In Proceedings of the Nineteenth Annual ACM Symposium on Principles of Programming Languages, pages 59--70, January 1992.
[4]
Preston Briggs. The Massively Scalar Compiler Project. Appendix B of a nuweb document that forms part of the Mscp infrastructure. Available online as www.cs.rice.edu/~keith/EAC/iloc.pdf., July 1994.
[5]
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In Proceedings of ACM SIGPLAN 94 PLDI, pages 159--170, June 1994.
[6]
Gregory J. Chaitin, Marc A. Auslander, Ashok K. Chandra, John Cocke, Martin E. Hopkins, and Peter W. Markstein. Register allocation via graph coloring. Computer Languages, 6(1):47--57, January 1981.
[7]
Keith D. Cooper, Alexander Grosul, Timothy J. Harvey, Steve Reeves, Devika Subramanian, Linda Torczon, and Todd Waterman. Searching for compilation sequences. 2005. Submitted for publication.
[8]
Keith D. Cooper, Philip J. Schielke, and Devika Subramanian. Optimizing for reduced code space using genetic algorithms. In Proceedings of LCTES 1999, pages 1--9, May 1999.
[9]
Keith D. Cooper, Devika Subramanian, and Linda Torczon. Adaptive optimizing compilers for the 21st century. In Proceedings of the 2001 LACSI Symposium. Los Alamos Computer Science Institute, Santa Fe, NM, October 2001.
[10]
Keith D. Cooper and Linda Torczon. Engineering a Compiler. Morgan-Kaufmann Publishers, 2003.
[11]
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM TOPLAS, 13(4):451--490, October 1991.
[12]
Jack W. Davidson and Christopher W. Fraser. The design and application of a retargetable peephole optimizer. ACM TOPLAS, 2(2):191--202, April 1980.
[13]
Susan L. Graham, Peter B. Kessler, and Marshall K. McKusick. gprof: a call graph execution profiler. In Proceedings of the 1982 SIGPLAN Symposium on Compiler Constrion, pages 120--126, June 1982.
[14]
Elana Granston and Anne Holler. Automatic recommendation of compiler options. In Proceedings of the 4th Feedback Directed Optimization Workshop, December 2001.
[15]
Alexander Grosul. Adaptive Ordering of Code Transformations in an Optimizing Compiler. PhD thesis, Rice University, 2005.
[16]
Jin-Kao Hao, Frédéric Lardeux, and Frédéric Saubion. A hybrid genetic algorithm for the satisfiability problem. In Proceedings of the First International Workshop on Heuristics, Beijing, China, July 2002.
[17]
Toru Kisuki, Peter M.W. Knijnenburg, and Michael F.P. O'Boyle. Combined selection of tile sizes and unroll factors using iterative compilation. In Proceedings of PACT '00, pages 237--248, October 2000.
[18]
Jens Knoop, Oliver Rüthing, and Bernhard Steffen. Lazy code motion. In Proceedings of the ACM SIGPLAN 92 PLDI, pages 224--234, July 1992.
[19]
Prasad Kulkarni, Stephen Hines, Jason Hiser, David Whalley, Jack Davidson, and Douglas Jones. Searches for effective optimization phase sequences. In Proceedings of ACM SIGPLAN 2004 PLDI, pages 171--182, May 2004.
[20]
Prasad Kulkarni, Wankang Zhao, Hwashin Moon, Kyunghwan Cho, David Whaley, Jack Davidson, Mark Bailey, Yunheung Paek, and Kyle Gallivan. Finding effective optimization phase sequences. In Proceedings of the 2003 ACM SIGPLAN Conference on Languages, Tools, and Compilers for Embedded Systems, pages 12--23, June 2003.
[21]
Kathryn S. McKinley, Steve Carr, and Chau-Wen Tseng. Improving data locality with loop transformations. ACM Transactions on Programming Languages and Systems (TOPLAS), 18(4):424--453, July 1996.
[22]
Etienne Morel and Claude Renvoise. Global optimization by suppression of partial redundancies. Communications of the ACM, 22(2):96--103, February 1979.
[23]
L. Taylor Simpson. Value-Driven Redundancy Elimination. PhD thesis, Rice University, 1996.
[24]
Mark Stephenson, Saman Amarasinghe, Martin Martin, and Una-May O'Reilly. Meta optimization: improving compiler heuristics with machine learning. In Proceedings of the ACM SIGPLAN 2003 PLDI, pages 77--90, May 2003.
[25]
Spyridon Triantifyllis, Manish Vachharajani, Neil Vachharajani, and David I. August. Compiler optimization-space exploration. In Proceedings of the 1st CGO, March 2003.
[26]
Mark Wegman and F. Kenneth Zadeck. Constant propagation with conditional branches. ACM TOPLAS, 13(2):181--210, April 1991.
[27]
Deborah L. Whitfield and Mary Lou Soffa. An approach for exploring code improving transformations. ACM TOPLAS, 19(6):1053--1084, November 1997.
[28]
M. Zhao, B. Childers, and M.L. Soffa. Predicting the impact of optimizations for embedded systems. In Proceedings of LCTES 2003, pages 1--11, June 2003.

Cited By

View all
  • (2020)A Collaborative Filtering Approach for the Automatic Tuning of Compiler OptimisationsThe 21st ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3372799.3394361(15-25)Online publication date: 16-Jun-2020
  • (2019)“It looks like you’re writing a parallel loop”: a machine learning based parallelization assistantProceedings of the 6th ACM SIGPLAN International Workshop on AI-Inspired and Empirical Methods for Software Engineering on Parallel Computing Systems10.1145/3358500.3361567(1-10)Online publication date: 22-Oct-2019
  • (2019)A Design Flow Engine for the Support of Customized Dynamic High Level Synthesis FlowsACM Transactions on Reconfigurable Technology and Systems10.1145/335647512:4(1-26)Online publication date: 31-Oct-2019
  • Show More Cited By

Index Terms

  1. ACME: adaptive compilation made efficient

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    LCTES '05: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
    June 2005
    248 pages
    ISBN:1595930183
    DOI:10.1145/1065910
    • General Chair:
    • Yunheung Paek,
    • Program Chair:
    • Rajiv Gupta
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 40, Issue 7
      Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
      July 2005
      238 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1070891
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 15 June 2005

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tag

    1. adaptive compilation

    Qualifiers

    • Article

    Conference

    LCTES05

    Acceptance Rates

    Overall Acceptance Rate 116 of 438 submissions, 26%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)19
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 09 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)A Collaborative Filtering Approach for the Automatic Tuning of Compiler OptimisationsThe 21st ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3372799.3394361(15-25)Online publication date: 16-Jun-2020
    • (2019)“It looks like you’re writing a parallel loop”: a machine learning based parallelization assistantProceedings of the 6th ACM SIGPLAN International Workshop on AI-Inspired and Empirical Methods for Software Engineering on Parallel Computing Systems10.1145/3358500.3361567(1-10)Online publication date: 22-Oct-2019
    • (2019)A Design Flow Engine for the Support of Customized Dynamic High Level Synthesis FlowsACM Transactions on Reconfigurable Technology and Systems10.1145/335647512:4(1-26)Online publication date: 31-Oct-2019
    • (2019)Reconciling Compiler Optimizations and WCET Estimation Using Iterative Compilation2019 IEEE Real-Time Systems Symposium (RTSS)10.1109/RTSS46320.2019.00022(133-145)Online publication date: Dec-2019
    • (2019)Using meta-heuristics and machine learning for software optimization of parallel computing systemsComputing10.1007/s00607-018-0614-9101:8(893-936)Online publication date: 1-Aug-2019
    • (2018)Speeding up Iterative Polyhedral Schedule Optimization with Surrogate Performance ModelsACM Transactions on Architecture and Code Optimization10.1145/329177315:4(1-27)Online publication date: 19-Dec-2018
    • (2018)A Review of Machine Learning and Meta-heuristic Methods for Scheduling Parallel Computing SystemsProceedings of the International Conference on Learning and Optimization Algorithms: Theory and Applications10.1145/3230905.3230906(1-6)Online publication date: 2-May-2018
    • (2018)Machine Learning in Compiler OptimizationProceedings of the IEEE10.1109/JPROC.2018.2817118106:11(1879-1901)Online publication date: Nov-2018
    • (2017)BackgroundAutomatic Tuning of Compilers Using Machine Learning10.1007/978-3-319-71489-9_1(1-22)Online publication date: 23-Dec-2017
    • (2017)Piecewise holistic autotuning of parallel programs with CEREConcurrency and Computation: Practice and Experience10.1002/cpe.419029:15Online publication date: 20-Jun-2017
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media