skip to main content
10.1145/2872362.2872402acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article
Public Access

Proactive Control of Approximate Programs

Published:25 March 2016Publication History

ABSTRACT

Approximate computing trades off accuracy of results for resources such as energy or computing time. There is a large and rapidly growing literature on approximate computing that has focused mostly on showing the benefits of approximate computing. However, we know relatively little about how to control approximation in a disciplined way. In this paper, we address the problem of controlling approximation for non-streaming programs that have a set of "knobs" that can be dialed up or down to control the level of approximation of different components in the program. We formulate this control problem as a constrained optimization problem, and describe a system called Capri that uses machine learning to learn cost and error models for the program, and uses these models to determine, for a desired level of approximation, knob settings that optimize metrics such as running time or energy usage. Experimental results with complex benchmarks from different problem domains demonstrate the effectiveness of this approach.

References

  1. Cubist. https://www.rulequest.com/cubist-info.html.Google ScholarGoogle Scholar
  2. Jason Ansel, Cy Chan, Yee Lok Wong, Marek Olszewski, Qin Zhao, Alan Edelman, and Saman Amarasinghe. Petabricks: A language and compiler for algorithmic choice. In Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '09, 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Jason Ansel, Yee Lok Wong, Cy Chan, Marek Olszewski, Alan Edelman, and Saman Amarasinghe. Language and compiler support for auto-tuning variable-accuracy algorithms. Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), 2011.Google ScholarGoogle Scholar
  4. Woongki Baek and Trishul M. Chilimbi. Green: A framework for supporting energy-conscious programming using controlled approximation. In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '10, 2010.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Judit Bar-Ilan, Mazlita Mat-Hassan, and Mark Levene. Methods for comparing rankings of search engine results. Comput. Netw., 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Christian Bienia. Benchmarking Modern Multiprocessors. PhD thesis, Princeton University, January 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Léon Bottou. Large-scale machine learning with stochastic gradient descent. In Proceedings of the 19th International Conference on Computational Statistics (COMPSTAT'2010), 2010.Google ScholarGoogle ScholarCross RefCross Ref
  8. John Burkardt. 3d graphics models. http://people.sc.fsu.edu/jburkardt/data/ply/ply.html.Google ScholarGoogle Scholar
  9. Simone Campanoni, Glenn Holloway, Gu-Yeon Wei, and David Brooks. Helix-up: Relaxing program semantics to unleash parallelization. In Proceedings of the 13th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO '15, 2015.Google ScholarGoogle Scholar
  10. Michael Carbin, Sasa Misailovic, and Martin C. Rinard. Verifying quantitative reliability for programs that execute on unreliable hardware. In Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '13, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Swarat Chaudhuri, Sumit Gulwani, and Roberto Lublinerman. Continuity and robustness of programs. Commun. ACM, 55(8):107--115, August 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Swarat Chaudhuri and Armando Solar-Lezama. Smooth interpretation. In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '10, 2010.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein, editors. Introduction to Algorithms. MIT Press, 2001.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Yufei Ding, Jason Ansel, Kalyan Veeramachaneni, Xipeng Shen, Una-May O'Reilly, and Saman Amarasinghe. Autotuning algorithmic choice for input sensitivity. In ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. Architecture support for disciplined approximate programming. In Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVII, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. Neural acceleration for general-purpose approximate programs. In Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-45, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Shuangde Fang, Zidong Du, Yuntan Fang, Yuanjie Huang, Yang Chen, Lieven Eeckhout, Olivier Temam, Huawei Li, Yunji Chen, and Chengyong Wu. Performance portability across heterogeneous socs using a generalized library-based approach. ACM Trans. Archit. Code Optim., 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Davide Gadioli, Gianluca Palermo, and Cristina Silvano. Application autotuning to support runtime adaptivity in multicorearchitectures. In SAMOS XV, 2015.Google ScholarGoogle Scholar
  19. Michael Garland and Paul S. Heckbert. Surface simplification using quadric error metrics. In Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH '97, 1997.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Inigo Goiri, Ricardo Bianchini, Santosh Nagarakatte, and Thu D. Nguyen. Approxhadoop: Bringing approximations to mapreduce frameworks. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '15, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Henry Hoffmann, Anant Agarwal, and Srinivas Devadas. Selecting spatiotemporal patterns for development of parallel applications. IEEE Transactions on Parallel and Distributed Systems, 23(10):1970--1982, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Henry Hoffmann, Stelios Sidiroglou, Michael Carbin, Sasa Misailovic, Anant Agarwal, and Martin Rinard. Dynamic knobs for responsive power-aware computing. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Søren Højsgaard. Graphical independence networks with the grain package for r. Journal of Statistical Software, 46, 2012.Google ScholarGoogle Scholar
  24. Benjamin Kuo. Automatic control systems. Prentice-Hall Publishers, 1991.Google ScholarGoogle Scholar
  25. Jure Leskovec. Stanford large network dataset collection(snap). http://snap.stanford.edu/data/.Google ScholarGoogle Scholar
  26. Chih-Jen Lin. Libsvm classification dataset. http://www.csie.ntu.edu.tw/cjlin/libsvmtools/datasets/.Google ScholarGoogle Scholar
  27. Divya Mahajan, Amir Yazdanbakhsh, Jongse Park, Bradley Thwaites, and Hadi Esmaeilzadeh. Prediction-based qualitycontrol for approximate accelerators. In Second Workshop on Approximate Computing Across the System Stack, WACAS, 2015.Google ScholarGoogle Scholar
  28. Shawn Martin, W. Michael Brown, Richard Klavans, and Kevin W. Boyack. Openord: an open-source toolbox for large graph layout. volume 7868, 2011.Google ScholarGoogle Scholar
  29. Joshua San Miguel, Mario Badr, and Natalie Enright Jerger. Load value approximation. In Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-47, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Sasa Misailovic, Michael Carbin, Sara Achour, Zichao Qi, and Martin C. Rinard. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems, Languages and Applications, OOPSLA '14, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. R. E. Neapolitan. Learning Bayesian Networks. Prentice Hall, 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Miguel A. Otaduy and Ming C. Lin. Clods: Dual hierarchies for multiresolution collision detection. In Proceedings of the 2003 Eurographics/ACM SIGGRAPH Symposium on Geometry Processing, SGP '03, 2003.Google ScholarGoogle Scholar
  33. Krishna V. Palem. Energy aware computing through probabilistic switching: A study of limits. IEEE Trans. Comput., 2005.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. J. R. Quinlan. Learning with continuous classes. In Proceedings of the Australian Joint Conference on Artificial Intelligence, pages 343--348. World Scientific, 1992.Google ScholarGoogle Scholar
  35. Martin Rinard. Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In Proceedings of the 20th Annual International Conference on Supercomputing, ICS '06, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Martin C. Rinard. Using early phase termination to eliminate load imbalances at barrier synchronization points. In Proceedings of the 22Nd Annual ACM SIGPLAN Conference on Object-oriented Programming Systems and Applications, OOPSLA '07, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Michael Ringenburg, Adrian Sampson, Isaac Ackerman, Luis Ceze, and Dan Grossman. Monitoring and debugging the quality of results in approximate programs. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '15, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Cindy Rubio-González, Cuong Nguyen, Hong Diep Nguyen, James Demmel, William Kahan, Koushik Sen, David H. Bailey, Costin Iancu, and David Hough. Precimonious: Tuning assistant for floating-point precision. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, SC '13, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Mehrzad Samadi, Davoud Anoushe Jamshidi, Janghaeng Lee, and Scott Mahlke. Paraprox: Pattern-based approximation for data parallel applications. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '14, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Mehrzad Samadi, Janghaeng Lee, D. Anoushe Jamshidi, Amir Hormati, and Scott Mahlke. Sage: Self-tuning approximation for graphics engines. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-46, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Adrian Sampson, Werner Dietl, Emily Fortuna, Danushen Gnanapragasam, Luis Ceze, and Dan Grossman. Enerj: Approximate data types for safe and general low-power computation. In Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '11, 2011.Google ScholarGoogle Scholar
  42. Adrian Sampson, Jacob Nelson, Karin Strauss, and Luis Ceze. Approximate storage in solid-state memories. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-46, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Eric Schkufza, Rahul Sharma, and Alex Aiken. Stochastic optimization of floating-point programs with tunable precision. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '14, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. M. Scutari. Learning Bayesian Networks with the bnlearn R Package. Journal of Statistical Software, 35, 2010.Google ScholarGoogle Scholar
  45. M. Shoushtari, A. BanaiyanMofrad, and N. Dutt. Exploiting partially-forgetful memories for approximate computing. Embedded Systems Letters, IEEE, March 2015.Google ScholarGoogle ScholarCross RefCross Ref
  46. Stelios Sidiroglou-Douskos, Sasa Misailovic, Henry Hoffmann, and Martin Rinard. Managing performance vs. accuracy trade-offs with loop perforation. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, ESEC/FSE '11, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Jean-Jacques Slotine and Weiping Li. Applied Nonlinear control. Prenctice-Hall Publishers, 1991.Google ScholarGoogle Scholar
  48. Soeren Sonnenburg, Vojtech Franc, Elad Yom-Tov, and Michele Sebag. Pascal large scale learning challenge. http://largescale.ml.tu-berlin.de.Google ScholarGoogle Scholar
  49. Karthik Swaminathan, Chung-Ching Lin, Augusto Vega, Alper Buyuktosunoglu, Pradip Bose, and Sharathchandra Pankanti. A case for approximate computing in real-time mobile cognition. In Second Workshop on Approximate Computing Across the System Stack, WACAS, 2015.Google ScholarGoogle Scholar
  50. TF3DM. 3d graphics models. http://tf3dm.com.Google ScholarGoogle Scholar
  51. L. G. Valiant. A theory of the learnable. CACM, 27(11), 1984.Google ScholarGoogle Scholar
  52. Joyce Jiyoung Whang, Xin Sui, and Inderjit S. Dhillon. Scalable and memory-efficient clustering of large-scale social networks. In ICDM, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. R. Zafarani and H. Liu. Social computing data repository at ASU, 2009. http://socialcomputing.asu.edu.Google ScholarGoogle Scholar
  54. Andreas Zeller and Ralf Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Trans. Softw. Eng., 28(2):183--200, February 2002.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Zeyuan Allen Zhu, Sasa Misailovic, Jonathan A. Kelner, and Martin Rinard. Randomized accuracy-aware program transformations for efficient approximate computations. In Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '12, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Proactive Control of Approximate Programs

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            ASPLOS '16: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems
            March 2016
            824 pages
            ISBN:9781450340915
            DOI:10.1145/2872362
            • General Chair:
            • Tom Conte,
            • Program Chair:
            • Yuanyuan Zhou

            Copyright © 2016 ACM

            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]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 25 March 2016

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            ASPLOS '16 Paper Acceptance Rate53of232submissions,23%Overall Acceptance Rate535of2,713submissions,20%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader