skip to main content
10.1145/1062261.1062310acmconferencesArticle/Chapter ViewAbstractPublication PagescfConference Proceedingsconference-collections
Article

Reducing misspeculation overhead for module-level speculative execution

Published:04 May 2005Publication History

ABSTRACT

Thread-level speculative execution is a technique that makes it possible for a wider range of single-threaded applications to make use of the processing resources in a chip multiprocessor.We consider module-level speculation, i.e., speculative threads executing the code after a module (i.e., a procedure, function, or method) call. Unfortunately, previous studies have shown that indiscriminate module-level speculation results in significant overheads, mainly due to frequent misspeculations. In addition to hurting performance, excessive overhead is harmful from a resource usage and energy efficiency standpoint. We show that the overhead when spawning speculative threads for all module continuations is on average three times as big as the time spent on useful execution on our baseline 8-way chip multiprocessorIn this paper, we present and make a detailed evaluation of a technique that aims at reducing the overhead associated with misspeculations. History-based prediction is used in an attempt to prevent speculative threads from being spawned when they are expected to cause misspeculations. We find that the overhead can be reduced with a factor of six on average compared to indiscriminate speculation. The impact on speedup is small for most applications, but in several cases speedup is slightly improved.

References

  1. L. A. Barroso, K. Gharachorloo, R. McNamara, A. Nowatzyk, S. Qadeer, B. Sano, S. Smith, R. Stets, and B. Verghese. Piranha: A scalable architecture based on single-chip multiprocessing. In Proceedings of the 27th Annual International Symposium on Computer Architecture (ISCA '00), pages 282--293. ACM Press, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. K. Chen and K. Olukotun. Exploiting method-level parallelism in single-threaded Java programs. In Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques (PACT'98), pages 176--184. IEEE Computer Society, Oct. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Y. Chen, R. Sendag, and D. J. Lilja. Using incorrect speculation to prefetch data in a concurrent multithreaded processor. In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS '03), page~76. IEEE Computer Society, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Cintra and J. Torrellas. Eliminating squashes through learning cross-thread violations in speculative parallelization for multiprocessors. In Proceedings of the Eight International Symposium on High-Performance Computer Architecture (HPCA '02), pages 43--54. IEEE Computer Society, Feb. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. Codrescu and D. S. Wills. Architecture of the atlas chip-multiprocessor: Dynamically parallelizing irregular applications. In Proceedings of the 1999 International Conference on Computer Design (ICCD '99), pages 428--435. IEEE Computer Society, Oct. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Hammond, M. Willey, and K. Olukotun. Data speculation support for a chip multiprocessor. In Proceedings of the Eighth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-VIII '98), pages 58--69. ACM Press, Oct. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. V. Krishnan and J. Torrellas. A chip-multiprocessor architecture with speculative multithreading. IEEE Transactions on Computers, 48(9):866--880, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. S. Magnusson, F. Larsson, A. Moestedt, B. Werner, F. Dahlgren, M. Karlsson, F. Lundholm, J. Nilsson, P. Stenström, and H. Grahn. SimICS/sun4m: A virtual workstation. In Proceedings of the USENIX 1998 Annual Technical Conference, pages 119--130. USENIX Association, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Marcuello and A. Gonzalez. Clustered speculative multithreaded processors. In Proceedings of the 1999 International Conference on Supercomputing (ICS '99), pages 365--372. ACM Press, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Marcuello and A. Gonzalez. A quantitative assessment of thread-level speculation techniques. In Proceedings of the 14th International Conference on Parallel and Distributed Processing Symposium (IPDPS '00), pages 595--604. IEEE Computer Society, May 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Moshovos and G. Sohi. Dynamic speculation and synchronization of data dependences. In Proceedings of the 24th Annual International Symposium on Computer Architecture (ISCA '97), pages 181--193. IEEE Computer Society, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C.-L. Ooi, S. W. Kim, I. Park, R. Eigenmann, B. Falsafi, and T. N. Vijaykumar. Multiplex: unifying conventional and speculative thread-level parallelism on a chip multiprocessor. In International Conference on Supercomputing (ICS '01), pages 368--380. ACM Press, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Oplinger and M. S. Lam. Enhancing software reliability with speculative threads. In Proceedings of the Tenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '02), pages 184--196. ACM Press, Oct. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. T. Oplinger, D. L. Heine, and M. S. Lam. In search of speculative thread-level parallelism. In Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques (PACT '99), pages 303--313. IEEE Computer Society, Oct. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. S. Sohi, S. E. Breach, and T. N. Vijaykumar. Multiscalar processors. In Proceedings of the 22nd Annual International Symposium on Computer Architecture (ISCA '95), pages 414--425. ACM Press, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. G. Steffan, C. B. Colohan, A. Zhai, and T. C. Mowry. Improving value communication for thread-level speculation. In Proceedings of the Eight International Symposium on High-Performance Computer Architecture (HPCA '02), page~65. IEEE Computer Society, Feb. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. G. Steffan and T. C. Mowry. The potential for using thread-level data speculation to facilitate automatic parallelization. In Proceedings of the Fourth International Symposium on High-Performance Computer Architecture (HPCA '98), pages 2--13. IEEE Computer Society, Feb. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J.-Y. Tsai and P.-C. Yew. The superthreaded architecture: Thread pipelining with run-time data dependence checking and control speculation. In Proceedings of the 1996 Conference on Parallel Architectures and Compilation Techniques (PACT '96), pages 35--46. IEEE Computer Society, Oct. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. F. Warg and P. Stenström. Limits on speculative module-level parallelism in imperative and object-oriented programs on CMP platforms. In International Conference on Parallel Architectures and Compilation Techniques (PACT '01), pages 221--230. IEEE Computer Society, Sept. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. F. Warg and P. Stenström. Improving speculative thread-level parallelism through module run-length prediction. In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS '03), page~12. IEEE Computer Society, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Reducing misspeculation overhead for module-level speculative execution

          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
            CF '05: Proceedings of the 2nd conference on Computing frontiers
            May 2005
            467 pages
            ISBN:1595930191
            DOI:10.1145/1062261

            Copyright © 2005 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: 4 May 2005

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate240of680submissions,35%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader