Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Enhancing software reliability with speculative threads

Published: 01 October 2002 Publication History

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
  • (2023)Research on Software Reliability Evaluation Based on Architecture2023 IEEE 2nd International Conference on Electrical Engineering, Big Data and Algorithms (EEBDA)10.1109/EEBDA56825.2023.10090760(139-143)Online publication date: 24-Feb-2023
  • (2018)Speculative Thread Framework for Transient Management and Bumpless Transfer in Reconfigurable Digital Filters2018 Annual American Control Conference (ACC)10.23919/ACC.2018.8431860(3786-3791)Online publication date: Jun-2018
  • (2019)Understanding Decision-Making in RecruitmentProceedings of the ACM on Human-Computer Interaction10.1145/33611233:GROUP(1-22)Online publication date: 5-Dec-2019
  • Show More Cited By
  1. Enhancing software reliability with speculative threads

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    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 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
    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: 01 October 2002
    Published in SIGPLAN Volume 37, Issue 10

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)25
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 10 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Research on Software Reliability Evaluation Based on Architecture2023 IEEE 2nd International Conference on Electrical Engineering, Big Data and Algorithms (EEBDA)10.1109/EEBDA56825.2023.10090760(139-143)Online publication date: 24-Feb-2023
    • (2018)Speculative Thread Framework for Transient Management and Bumpless Transfer in Reconfigurable Digital Filters2018 Annual American Control Conference (ACC)10.23919/ACC.2018.8431860(3786-3791)Online publication date: Jun-2018
    • (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
    • 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