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

Enhancing software reliability with speculative threads

Published: 01 October 2002 Publication History
  • Get Citation Alerts
  • Abstract

    This paper advocates the use of a monitor-and-recover programming paradigm to enhance the reliability of software, and proposes an architectural design that allows software and hardware to cooperate in making this paradigm more efficient and easier to program.We propose that programmers write monitoring functions assuming simple sequential execution semantics. Our architecture speeds up the computation by executing the monitoring functions speculatively in parallel with the main computation. For recovery, programmers can define fine-grain transactions whose side effects, including all register modifications and memory writes, can either be committed or aborted under program control. Transactions are implemented efficiently by treating them as speculative threads.Our experimental results suggest that monitored execution is more amenable to parallelization than regular program execution. Code monitoring is sped up by a factor of 1.5 by exploiting single-thread instruction-level parallelism, and by an additional factor of 1.6 using thread-level speculation. This results in an overall improvement of 2.5 times and a sustained 5.4 instructions-per-cycle performance. A monitored execution that used to be 2.5 times slower executes with a degradation of only 12% when compared to the performance on the baseline machine. We also show that the concept of fine-grain transactional programming is useful in catching buffer overrun errors through a number of real-life examples.

    References

    [1]
    H. Akkary and M. A. Driscoll. A dynamic multithreading processor. In Proceedings of the 31st Annual International Symposium on Microarchitecture, pages 226-236, November 1998.
    [2]
    D. Burger, T. M. Austin, and S. Bennett. Evaluating future microprocessors: The SimpleScalar tool set. Technical Report CS-TR-1996-1308, Computer Sciences Department, University of Wisconsin-Madison, 1996.
    [3]
    M. Cintra, J. F. Martínez, and J. Torrellas. Architectural support for scalable speculative parallelization in shared-memory multiprocessors. In Proceedings of the 27th International Symposium on Computer Architecture, pages 13-24, June 2000.
    [4]
    L. Codrescu and D. S. Wills. On dynamic speculative thread partitioning and the MEM-slicing algorithm. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, pages 40-46, October 1999.
    [5]
    L. Codrescu, D. S. Wills, and J. D. Meindl. Architecture of the Atlas chip-multiprocessor: Dynamically parallelizing irregular applications. IEEE Transactions on Computers, 50(1):67-82, 2001.
    [6]
    C. Cowan, C. Pu, D. Maier, J. Walpole, P. Bakke, S. Beattie, A. Grier, Q. Zhang P. Wagle, and H. Hinton. StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks. In Proceedings of the 7th USENIX Security Conference, pages 63-78, January 1998.
    [7]
    M. Dahm. Byte code engineering with the BCEL API. Technical Report B-17-98, Freie Universität Berlin, Institut für Informatik, April 2001.
    [8]
    M. Elnozahy, L. Alvisi, Y. M. Wang, and D. B. Johnson. A survey of rollback-recovery protocols in message passing systems. Technical Report CMU-CS-96-181, School of Computer Science, Carnegie Mellon University, October 1996.
    [9]
    R. J. Figueiredo and J. Fortes. Hardware support for extracting coarse-grain speculative parallelism in distributed shared-memory multiprocessors. In Proceedings of the International Conference on Parallel Processing, September 2001.
    [10]
    L. Hammond, M. Willey, and K. Olukotun. Data speculation support for a chip multiprocessor. In Proceedings of the Eighth International Conference Conference on Architectural Support for Programming Languages and Operating Systems, pages 58-69, October 1998.
    [11]
    S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In Proceedings of the International Conference on Software Engineering, pages 291-301, May 2002.
    [12]
    R. Hastings and B. Joyce. Purify: Fast detection of memory leaks and access errors. In Proceedings of the Winter USENIX Conference, December 1992.
    [13]
    M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289-300, May 1993.
    [14]
    R. W. M. Jones and P. H. J. Kelly. Backwards-compatible bounds checking for arrays and pointers in C programs. In Automated and Algorithmic Debugging, pages 13-26, 1997.
    [15]
    G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming, pages 220-242, 1997.
    [16]
    J. R. Larus and E. Schnarr. EEL: Machine-independent executable editing. In Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation, pages 291-300, June 1995.
    [17]
    D. E. Lowell and P. M. Chen. Free transactions with Rio Vista. In Proceedings of the 16th ACM Symposium on Operating Systems Principles, October 1997.
    [18]
    J. F. Martínez and J. Torrellas. Speculative locks for concurrent execution of critical sections in shared-memory multiprocessors. In Proceedings of the Workshop on Memory Performance Issues at the 28th International Symposium on Computer Architecture, June 2001.
    [19]
    J. T. Oplinger, D. L. Heine, and M. S. Lam. In search of speculative thread-level parallelism. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, pages 303-313, October 1999.
    [20]
    H. Patil and C. N. Fischer. Efficient run-time monitoring using shadow processing. In Proceedings of the 2nd International Workshop on Automated and Algorithmic Debugging (AADEBUG'95), 1995.
    [21]
    R. Rajwar and J. R. Goodman. Speculative lock elision: Enabling highly concurrent multithreaded execution. In Proceedings of the 34th Annual International Symposium on Microarchitecture, December 2001.
    [22]
    E. Rotenberg, Q. Jacobson, Y. Sazeides, and J. Smith. Trace processors. In Proceedings of the 30th Annual International Symposium on Microarchitecture, pages 138-148, November 1997.
    [23]
    Y. Saito and B. Bershad. A transactional memory service in an extensible operating system. In Proceedings of the 7th USENIX Security Conference, pages 53-64, January 1998.
    [24]
    N. Shavit and D. Touitou. Software transactional memory. In Proceeedings of the Symposium on Principles of Distributed Computing, pages 204-213, August 1995.
    [25]
    G. S. Sohi, S. E. Breach, and T. N. Vijaykumar. Multiscalar processors. In Proceedings of the 22nd International Symposium on Computer Architecture, pages 415-425, June 1995.
    [26]
    D. J. Sorin, M. M. K. Martin, M. D. Hill, and D. A. Wood. Fast checkpoint/recovery to support kilo-instruction speculation and hardware fault tolerance. Dept. of Computer Sciences Technical Report CS-TR-2000-1420, University of Wisconsin-Madison, October 2000.
    [27]
    Amitabh Srivastava and Alan Eustace. Atom: A system for building customized program analysis tools. In Proceedings of the SIGPLAN'94 Conference on Programming Language Design and Implementation, pages 196-205, June 1994.
    [28]
    J. G. Steffan, C. B. Colohan, A. Zhai, and T. C. Mowry. A scalable approach to thread-level speculation. In Proceedings of the 27th International Symposium on Computer Architecture, pages 1-24, June 2000.
    [29]
    J. G. Steffan and T. C. Mowry. The potential for using thread-level data speculation to facilitate automatic parallelization. In Proceedings of the 4th International Conference on High-Performance Computer Architecture, pages 2-13, January 1998.
    [30]
    Sun. MAJC architecture tutorial. Technical report, Sun Microsystems Inc., 1999.
    [31]
    T. Tsai and N. Singh. Libsafe 2.0: Detection of format string vulnerability exploits. White paper, Avaya Labs, February 2001.
    [32]
    J. Tubella and A. Gonzalez. Control speculation in multithreaded processors through dynamic loop detection. In Proceedings of the 4th International Conference on High-Performance Computer Architecture, pages 14-23, January 1998.
    [33]
    D. M. Tullsen, S. Eggers, and H. M. Levy. Simultaneous multithreading: Maximizing on-chip parallelism. In Proceedings of the 22nd Annual International Symposium on Computer Architecture, pages 392-403, June 1995.
    [34]
    D. M. Tullsen, S. J. Eggers, J. S. Emer, H. M. Levy, J. L. Lo, and R. L. Stamm. Exploiting choice: Instruction fetch and issue on an implementable simultaneous multithreading processor. In Proceedings of the 23rd Annual International Symposium on Computer Architecture, pages 191-202, May 1996.
    [35]
    T. N. Vijaykumar and G. S. Sohi. Task selection for a multiscalar processor. In Proceedings of the 31st Annual International Symposium on Microarchitecture, pages 81-92, November 1998.
    [36]
    C. B. Zilles, J. S. Emer, and G. S. Sohi. The use of multithreading for exception handling. In Proceedings of the 32nd Annual International Symposium on Microarchitecture, pages 219-229, November 1999.

    Cited By

    View all
    • (2019)Understanding Decision-Making in RecruitmentProceedings of the ACM on Human-Computer Interaction10.1145/33611233:GROUP(1-22)Online publication date: 5-Dec-2019
    • (2019)Altruism and Wellbeing as Care Work in a Craft-based Maker CultureProceedings of the ACM on Human-Computer Interaction10.1145/33611203:GROUP(1-12)Online publication date: 5-Dec-2019
    • (2018)FreeDAProceedings of the 15th ACM International Conference on Computing Frontiers10.1145/3203217.3203237(1-10)Online publication date: 8-May-2018
    • Show More Cited By
    1. Enhancing software reliability with speculative threads

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ASPLOS X: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
      October 2002
      318 pages
      ISBN:1581135742
      DOI:10.1145/605397
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 37, Issue 10
        October 2002
        296 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/605432
        Issue’s Table of Contents
      • cover image ACM SIGARCH Computer Architecture News
        ACM SIGARCH Computer Architecture News  Volume 30, Issue 5
        Special Issue: Proceedings of the 10th annual conference on Architectural Support for Programming Languages and Operating Systems
        December 2002
        296 pages
        ISSN:0163-5964
        DOI:10.1145/635506
        Issue’s Table of Contents
      • cover image ACM SIGOPS Operating Systems Review
        ACM SIGOPS Operating Systems Review  Volume 36, Issue 5
        December 2002
        296 pages
        ISSN:0163-5980
        DOI:10.1145/635508
        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: 01 October 2002

      Permissions

      Request permissions for this article.

      Check for updates

      Qualifiers

      • Article

      Conference

      ASPLOS02

      Acceptance Rates

      ASPLOS X Paper Acceptance Rate 24 of 175 submissions, 14%;
      Overall Acceptance Rate 535 of 2,713 submissions, 20%

      Upcoming Conference

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)23
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 27 Jul 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2019)Understanding Decision-Making in RecruitmentProceedings of the ACM on Human-Computer Interaction10.1145/33611233:GROUP(1-22)Online publication date: 5-Dec-2019
      • (2019)Altruism and Wellbeing as Care Work in a Craft-based Maker CultureProceedings of the ACM on Human-Computer Interaction10.1145/33611203:GROUP(1-12)Online publication date: 5-Dec-2019
      • (2018)FreeDAProceedings of the 15th ACM International Conference on Computing Frontiers10.1145/3203217.3203237(1-10)Online publication date: 8-May-2018
      • (2016)A Comprehensive Survey and Classification of Approaches for Community Question AnsweringACM Transactions on the Web10.1145/293468710:3(1-63)Online publication date: 16-Aug-2016
      • (2013)Automatic parallelization of fine-grained metafunctions on a chip multiprocessorACM Transactions on Architecture and Code Optimization10.1145/2541228.254123710:4(1-26)Online publication date: 1-Dec-2013
      • (2012)DoublePlayACM Transactions on Computer Systems10.1145/2110356.211035930:1(1-24)Online publication date: 1-Feb-2012
      • (2011)Automatic parallelization of fine-grained meta-functions on a chip multiprocessorProceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization10.5555/2190025.2190060(130-140)Online publication date: 2-Apr-2011
      • (2011)DoublePlayACM SIGPLAN Notices10.1145/1961296.195037046:3(15-26)Online publication date: 5-Mar-2011
      • (2011)DoublePlayACM SIGARCH Computer Architecture News10.1145/1961295.195037039:1(15-26)Online publication date: 5-Mar-2011
      • (2011)DoublePlayProceedings of the sixteenth international conference on Architectural support for programming languages and operating systems10.1145/1950365.1950370(15-26)Online publication date: 5-Mar-2011
      • 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