skip to main content
research-article

Monitoring and Debugging the Quality of Results in Approximate Programs

Published:14 March 2015Publication History
Skip Abstract Section

Abstract

Energy efficiency is a key concern in the design of modern computer systems. One promising approach to energy-efficient computation, approximate computing, trades off output accuracy for significant gains in energy efficiency. However, debugging the actual cause of output quality problems in approximate programs is challenging. This paper presents dynamic techniques to debug and monitor the quality of approximate computations. We propose both offline debugging tools that instrument code to determine the key sources of output degradation and online approaches that monitor the quality of deployed applications.

We present two offline debugging techniques and three online monitoring mechanisms. The first offline tool identifies correlations between output quality and the execution of individual approximate operations. The second tracks approximate operations that flow into a particular value. Our online monitoring mechanisms are complementary approaches designed for detecting quality problems in deployed applications, while still maintaining the energy savings from approximation.

We present implementations of our techniques and describe their usage with seven applications. Our online monitors control output quality while still maintaining significant energy efficiency gains, and our offline tools provide new insights into the effects of approximation on output quality.

References

  1. Carlos Alvarez, Jesus Corbal, and Mateo Valero. Fuzzy memoization for floating-point multimedia applications. IEEE Transactions on Computers, 54(7):922 -- 927, July 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Woongki Baek and Trishul M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Michael Carbin, Deokhwan Kim, Sasa Misailovic, and Martin C. Rinard. Reasoning about relaxed programs. In PLDI, June 2012.Google ScholarGoogle Scholar
  4. Michael Carbin, Sasa Misailovic, and Martin C. Rinard. Verifying quantitative reliability for programs that execute on unreliable hardware. In OOPSLA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Lakshmi N. Chakrapani, Bilge E. S. Akgul, Suresh Cheemalavagu, Pinar Korkmaz, Krishna V. Palem, and Balasubramanian Seshasayee. Ultra-efficient (embedded) SOC architectures based on probabilistic CMOS (PCMOS) technology. In DATE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Swarat Chaudhuri, Sumit Gulwani, Roberto Lublinerman, and Sara Navidpour. Proving programs robust. In FSE, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. www.coverity.com.Google ScholarGoogle Scholar
  8. Marc de Kruijf, Shuou Nomura, and Karthikeyan Sankaralingam. Relax: an architectural framework for software recovery of hardware faults. In ISCA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Hadi Esmaeilzadeh, Emily Blem, Renee St. Amant, Karthikeyan Sankaralingam, and Doug Burger. Dark silicon and the end of multicore scaling. In ISCA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. Architecture support for disciplined approximate programming. In ASPLOS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. Neural acceleration for general-purpose approximate programs. In MICRO, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Malay Ganai, Dongyoon Lee, and Aarti Gupta. Dtam: dynamic taint analysis of multi-threaded programs for relevancy. In ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (FSE), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Beayna Grigorian and Glenn Reinman. Dynamically adaptive and reliable approximate computing using light-weight error analysis. In NASA/ESA Conference on Adaptive Hardware and Systems (AHS), 2014.Google ScholarGoogle ScholarCross RefCross Ref
  14. Beayna Grigorian and Glenn Reinman. Improving coverage and reliability in approximate computing using application-specific, light-weight checks. In First Workshop on Approximate Computing Across the System Stack (WACAS), 2014.Google ScholarGoogle Scholar
  15. Henry Hoffmann, Stelios Sidiroglou, Michael Carbin, Sasa Misailovic, Anant Agarwal, and Martin Rinard. Dynamic knobs for responsive power-aware computing. In ASPLOS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Steve C. Johnson. Lint, a C Program Checker. Unix Programmer's Supplementary Documents, vol. 1, 1986.Google ScholarGoogle Scholar
  17. Matthias Kalisch. Asteroid field. http://jcolorexpansion.sourceforge.net/asteroid_field.html.Google ScholarGoogle Scholar
  18. Michael O. Lam, Jeffrey K. Hollingsworth, Bronis R. de Supinski, and Matthew P. Legendre. Automatically adapting programs for mixed-precision floating-point computation. In 27th ACM International Conference on Supercomputing, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Larkhoon Leem, Hyungmin Cho, Jason Bau, Quinn A. Jacobson, and Subhasish Mitra. ERSA: Error resilient system architecture for probabilistic applications. In DATE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Song Liu, Karthik Pattabiraman, Thomas Moscibroda, and Benjamin G. Zorn. Flikker: Saving refresh-power in mobile devices through critical data partitioning. In ASPLOS, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Sasa Misailovic, Daniel M. Roy, and Martin C. Rinard. Probabilistically accurate program transformations. In SAS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sasa Misailovic, Stelios Sidiroglou, Hank Hoffman, and Martin Rinard. Quality of service profiling. In ICSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Sriram Narayanan, John Sartori, Rakesh Kumar, and Douglas L. Jones. Scalable stochastic processors. In DATE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Nicholas Nethercote and Julian Seward. Valgrind: a framework for heavyweight dynamic binary instrumentation. In PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Michael F. Ringenburg. Dynamic Analyses of Result Quality in Energy-Aware Approximate Programs. PhD thesis, Department of Computer Science and Engineering, University of Washington, Feb 2014.Google ScholarGoogle Scholar
  26. Philip Roth and Jeremy Meredith. Value influence analysis for message passing applications. In 28th ACM International Conference on Supercomputing, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Stelios Sidiroglou, Sasa Misailovic, Henry Hoffman, and Martin Rinard. Managing performance vs. accuracy trade-offs with loop perforation. In FSE, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan, Mark D. Corner, and Emery D. Berger. Eon: a language and runtime system for perpetual systems. In Proceedings of the 5th international conference on Embedded networked sensor systems, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Zeyuan Allen Zhu, Sasa Misailovic, Jonathan A. Kelner, and Martin Rinard. Randomized accuracy-aware program transformations for efficient approximate computations. In POPL, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Monitoring and Debugging the Quality of Results in 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

      Full Access

      • Published in

        cover image ACM SIGARCH Computer Architecture News
        ACM SIGARCH Computer Architecture News  Volume 43, Issue 1
        ASPLOS'15
        March 2015
        676 pages
        ISSN:0163-5964
        DOI:10.1145/2786763
        Issue’s Table of Contents
        • cover image ACM Conferences
          ASPLOS '15: Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems
          March 2015
          720 pages
          ISBN:9781450328357
          DOI:10.1145/2694344

        Copyright © 2015 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 the author(s) 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: 14 March 2015

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader