skip to main content
10.1145/2228360.2228526acmconferencesArticle/Chapter ViewAbstractPublication PagesdacConference Proceedingsconference-collections
research-article

Obtaining and reasoning about good enough software

Published:03 June 2012Publication History

ABSTRACT

Software systems often exhibit a surprising flexibility in the range of execution paths they can take to produce an acceptable result. This flexibility enables new techniques that augment systems with the ability to productively tolerate a wide range of errors. We show how to exploit this flexibility to obtain transformations that improve reliability and robustness or trade off accuracy in return for increased performance or decreased power consumption. We discuss how to use empirical, probabilistic, and statistical reasoning to understand why these techniques work.

References

  1. H. Boehm and S. Adve. You don't know jack about shared variables or memory models. Commun. ACM, 55(2), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Carbin and M. C. Rinard. Automatically identifying critical input regions and code in applications. In ISSTA, pages 37--48, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Carbin, S. Misailovic, M. Kling, and M. C. Rinard. Detecting and escaping infinite loops with jolt. In ECOOP, pages 609--633, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. Demsky and M. C. Rinard. Automatic detection and repair of errors in data structures. In OOPSLA, pages 78--95, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Demsky and M. C. Rinard. Data structure repair using goal-directed reasoning. In ICSE, pages 176--185, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. Demsky and M. C. Rinard. Goal-directed reasoning for specification-based data structure repair. IEEE Trans. Software Eng., 32(12):931--951, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. L. Lions. Ariane 5 flight 501 failure report by the inquiry board, July 1996. URL http://www.di.unito.it/damiani/ariane5rep.html.Google ScholarGoogle Scholar
  8. F. Long, V. Ganesh, M. Carbin, S. Sidiroglou, and M. Rinard. Automatic input rectification. In ICSE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Misailovic, D. Kim, and M. Rinard. Parallelizing sequential programs with statistical accuracy tests. Technical Report MIT-CSAIL-TR-2010-038, MIT, 2010.Google ScholarGoogle Scholar
  10. S. Misailovic, S. Sidiroglou, H. Hoffmann, and M. C. Rinard. Quality of service profiling. In ICSE (1), pages 25--34, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Misailovic, D. Roy, and M. Rinard. Probabilistic and statistical analysis of perforated patterns. Technical Report MIT-CSAIL-TR-2011-003, MIT, 2011.Google ScholarGoogle Scholar
  12. S. Misailovic, D. M. Roy, and M. C. Rinard. Probabilistically accurate program transformations. In SAS, pages 316--333, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. H. H. Nguyen and M. C. Rinard. Detecting and eliminating memory leaks using cyclic memory allocation. In ISMM, pages 15--30, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Novark, E. Berger, and B. Zorn. Exterminator: Automatically correcting memory errors with high probability. In PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Rinard. A lossy, synchronization-free, race-full, but still acceptably accurate parallel space-subdivision tree construction algorithm. Technical Report MIT-CSAIL-TR-2012-005, MIT, 2012.Google ScholarGoogle Scholar
  16. M. C. Rinard. Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In ICS, pages 324--334, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. C. Rinard. Using early phase termination to eliminate load imbalances at barrier synchronization points. In OOPSLA, pages 369--386, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. C. Rinard. Living in the comfort zone. In OOPSLA, pages 611--622, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. C. Rinard, C. Cadar, D. Dumitran, D. M. Roy, and T. Leu. A dynamic technique for eliminating buffer overflow vulnerabilities (and other memory errors). In ACSAC, pages 82--90, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. C. Rinard, C. Cadar, D. Dumitran, D. M. Roy, T. Leu, and W. S. Beebee. Enhancing server availability and security through failure-oblivious computing. In OSDI, pages 303--316, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. C. Rinard, C. Cadar, and H. H. Nguyen. Exploring the acceptability envelope. In OOPSLA Companion, pages 21--30, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. Sidiroglou-Douskos, S. Misailovic, H. Hoffmann, and M. C. Rinard. Managing performance vs. accuracy trade-offs with loop perforation. In SIGSOFT FSE, pages 124--134, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Z. A. Zhu, S. Misailovic, J. A. Kelner, and M. C. Rinard. Randomized accuracy-aware program transformations for efficient approximate computations. In POPL, pages 441--454, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Obtaining and reasoning about good enough software

    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
      DAC '12: Proceedings of the 49th Annual Design Automation Conference
      June 2012
      1357 pages
      ISBN:9781450311991
      DOI:10.1145/2228360

      Copyright © 2012 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: 3 June 2012

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate1,770of5,499submissions,32%

      Upcoming Conference

      DAC '24
      61st ACM/IEEE Design Automation Conference
      June 23 - 27, 2024
      San Francisco , CA , USA

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader