Skip to main content

Autotuning

  • Reference work entry

Synonyms

Automated empirical optimization; Automated empirical tuning; Automated performance tuning; Automated tuning; Software autotuning

Definition

Automated performance tuning, or autotuning, is an automated process, guided by experiments, of selecting one from among a set of candidate program implementations to achieve some performance goal. “Performance goal” may mean, for instance, the minimization of execution time, energy delay, storage, or approximation error. An “experiment” is the execution of a benchmark and observation of its results with respect to the performance goal. A system that implements an autotuning process is referred to as an autotuner. An autotuner may be a stand-alone code generation system or may be part of a compiler.

Discussion

Introduction: From Manual to Automated Tuning

When tuning a code by hand, a human programmer typically engages in the following iterative process. Given an implementation, the programmer develops or modifies the program...

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Bibliography

  1. (2009). Collective Tuning Wiki. http://ctuning.org

  2. (2010). International Workshop on Automatic Performance Tuning. http://iwapt.org

  3. Aarts B, Barreteau M, Bodin F, Brinkhaus P, Chamski Z, Charles H-P, Eisenbeis C, Gurd J, Hoogerbrugge J, Hu P, Jalby W, Knijnenburg PMW, O’Boyle MFP, Rohou E, Sakellariou R, Schepers H, Seznec A, Stöhr E, Verhoeven M, Wijshoff HAG (1997) OCEANS: Optimizing Compilers for Embedded Applications. In: Proc. Euro- Par, vol 1300 of LNCS, Passau, Germany. Springer, Berlin / Heidelberg

    Google Scholar 

  4. Bilmes J, Asanovic K, Chin C-W, Demmel J (1997) Optimizing matrix multiply using PHiPAC: A portable, highperformance, ANSI C coding methodology. In Proc. ACM Int’l Conf Supercomputing (ICS), Vienna, Austria, pp 340–347

    Google Scholar 

  5. Center for Scalable Application Development Software (2009) Workshop on Libraries and Autotuning for Petascale Applications. http://cscads.rice.edu/workshops/summer09/autotuning

  6. Chang PP, Mahlke SA, Mei W, Hwu W (1991) Using profile information to assist classic code optimizations. Software: Pract Exp 21(12):1301–1321

    Article  Google Scholar 

  7. Covell MM, Myers CS, Oppenheim AV (1992) Symbolic and knowledge-based signal processing, chapter 2: computer-aided algorithm design and rearrangement. Signal Processing Series. Prentice-Hall, pp 30–87

    Google Scholar 

  8. Frigo M, Johnson SG (1999) A fast Fourier transform compiler. ACM SIGPLAN Notices 34(5):169–180. Origin: Proc. ACM Conf. Programming Language Design and Implementation (PLDI)

    Google Scholar 

  9. Graham SL, Kessler PB, McKusick MK (1982) gprof: A call graph execution profiler. ACM SIGPLAN Notices 17(6):120–126. Origin: Proc. ACM Conf. Programming Language Design and Implementation (PLDI)

    Article  Google Scholar 

  10. Johnson JR, Johnson RW, Rodriguez D, Tolimieri R (1990) A methodology for designing, modifying, and implementing Fourier Transform algorithms on various architectures. Circuits, Syst Signal Process 9(4):449–500

    Article  MATH  MathSciNet  Google Scholar 

  11. Knuth DE (1971) An empirical study of FORTRAN programs. Software: Practice Exp 1(2):105–133

    Article  MATH  Google Scholar 

  12. Moura JMF, Püschel M, Dongarra J, Padua D, (eds) (2005) Proceedings of the IEEE: Special Issue on Program Generation, Optimization, and Platform Adaptation, vol 93. IEEE Comp Soc. http://ieeexplore.ieee.org/xpl/tocresult.jsp?isNumber=30187&puNumber=5

  13. Püschel M, Moura JMF, Johnson J, Padua D, Veloso M, Singer B, Xiong J, Franchetti F, Gacic A, Voronenko Y, Chen K, Johnson RW, Rizzolo N (2005) SPIRAL: Code generation for DSP transforms. Proc. IEEE: Special issue on “Program Generation, Optimization, and Platform Adaptation” 93(2):232–275

    Google Scholar 

  14. Rice JR (1969) A polyalgorithm for the automatic solution of nonlinear equations. In Proc. ACM Annual Conf./Annual Mtg. New York, pp 179–83

    Google Scholar 

  15. Rice JR (1976) The algorithm selection problem. In: Alt F, Rubinoff M, Yovits MC (eds) Adv Comp 15:65–117

    Google Scholar 

  16. Smith MD (2000) Overcoming the challenges to feedbackdirected optimization. ACM SIGPLAN Notices 35(7):1–11

    Article  Google Scholar 

  17. Vuduc R, Demmel J, Bilmes J (2004) Statistical models for empirical search-based performance tuning. Int’l J High Performance Comp Appl (IJHPCA) 18(1):65–94

    Article  Google Scholar 

  18. Whaley RC, Petitet A, Dongarra J (2001) Automated empirical optimizations of software and the ATLAS project. Parallel Comp (ParCo) 27(1–2):3–35

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Vuduc, R.W. (2011). Autotuning. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_68

Download citation

Publish with us

Policies and ethics