Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Enhanced speculative parallelization via incremental recovery

Published: 12 February 2011 Publication History

Abstract

The widespread availability of multicore systems has led to an increased interest in speculative parallelization of sequential programs using software-based thread level speculation. Many of the proposed techniques are implemented via state separation where non-speculative computation state is maintained separately from the speculative state of threads performing speculative computations. If speculation is successful, the results from speculative state are committed to non-speculative state. However, upon misspeculation, discard-all scheme is employed in which speculatively computed results of a thread are discarded and the computation is performed again. While this scheme is simple to implement, one disadvantage of discard-all is its inability to tolerate high misspeculation rates due to its high runtime overhead. Thus, it is not suitable for use in applications where misspeculation rates are input dependent and therefore may reach high levels.
In this paper we develop an approach for incremental recovery in which, instead of discarding all of the results and reexecuting the speculative computation in its entirety, the computation is restarted from the earliest point at which a misspeculation causing value is read. This approach has two advantages. First, the cost of recovery is reduced as only part of the computation is reexecuted. Second, since recovery takes less time, the likelihood of future misspeculations is reduced. We design and implement a strategy for implementing incremental recovery that allows results of partial computations to be efficiently saved and reused. For a set of programs where misspeculation rate is input dependent, our experiments show that with inputs that result in misspeculation rates of around 40% and 80%, applying incremental recovery technique results in 1.2x-3.3x and 2.0x-6.6x speedups respectively over the discard-all recovery scheme. Furthermore, misspeculations observed during discard-all scheme are reduced when incremental recovery is employed -- reductions range from 10% to 85%.

References

[1]
I. Buck. Stream computing on graphics hardware. PhD thesis, Stanford, CA, USA, 2005.
[2]
M. Cintra and D. R. Llanos. Toward efficient and robust software speculative parallelization on multiprocessors. In PPoPP'03: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 13--24, 2003.
[3]
M. H. Cintra and D. R. L. Ferraris. Design space exploration of a software speculative parallelization scheme. IEEE Trans. Parallel Distrib. Syst., 16(6):562--576, 2005.
[4]
P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Hybrid transactional memory. In ASPLOS-XII,pages 336--346, 2006.
[5]
C. Ding, X. Shen, K. Kelsey, C. Tice, R. Huang, and C. Zhang. Software behavior oriented parallelization. In PLDI'07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 223--234, 2007.
[6]
M. Franklin and G. S. Sohi. Arb: A hardware mechanism for dynamic reordering of memory references. IEEE Transactions on Computers, 45(5):552--571, 1996.
[7]
M. J. Garzarán, M. Prvulovic, J. M. Llabería, V. Viñals, L. Rauchwerger, and J. Torrellas. Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessors. Transactions on Architecture and Code Optimization, 2(3):247--279, 2005.
[8]
S. Gopal, T. N. Vijaykumar, J. E. Smith, and G. S. Sohi. Speculative versioning cache. In HPCA'98: Proceedings of the 4th International Symposium on High-Performance Computer Architecture, pages 195--205, 1998.
[9]
M. Gupta and R. Nim. Techniques for speculative run-time parallelization of loops. In Supercomputing;98: Proceedings of the 1998 ACM/IEEE conference on Supercomputing (CDROM), pages 1--12, Washington, DC, USA, 1998. IEEE Computer Society.
[10]
L. Hammond, M. Willey, and K. Olukotun. Data speculation support for a chip multiprocessor. In ASPLOS-VIII: Proceedings of the eighth international conference on Architectural support for programming languages and operating systems, pages 58--69, 1998.
[11]
M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA'93: Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289--300, 1993.
[12]
U. J. Kapasi, S. Rixner, W. J. Dally, B. Khailany, J. H. Ahn, P. Mattson, and J. D. Owens. Programmable stream processors. Computer, 36(8):54--62, 2003.
[13]
K. Kelsey, T. Bai, C. Ding, and C. Zhang. Fast track: A software system for speculative program optimization. In CGO'09: Proceedings of the 2009 International Symposium on Code Generation and Optimization, pages 157--168, 2009.
[14]
V. Krishnan and J. Torrellas. The need for fast communication in hardware-based speculative chip multiprocessors. In PACT'99: Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques, pages 24--33, 1999.
[15]
M. Kulkarni, M. Burtscher, R. Inkulu, K. Pingali, and C. Casçaval. How much parallelism is there in irregular applications? In PPoPP'09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 3--14, 2009.
[16]
M. Kulkarni, P. Carribault, K. Pingali, G. Ramanarayanan, B. Walter, K. Bala, and L. P. Chew. Scheduling strategies for optimistic parallel execution of irregular programs. In SPAA, pages 217--228, 2008.
[17]
M. Kulkarni, K. Pingali, G. Ramanarayanan, B. Walter, K. Bala, and L. P. Chew. Optimistic parallelism benefits from data partitioning. In ASPLOS XIII, pages 233--243, 2008.
[18]
M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI'07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 211--222, 2007.
[19]
P. Marcuello and A. González. Clustered speculative multithreaded processors. In ICS'99: Proceedings of the 13th international conference on Supercomputing, pages 365--372, 1999.
[20]
M. Mehrara, J. Hao, P.-C. Hsu, and S. Mahlke. Parallelizing sequential applications on commodity hardware using a low-cost software transactional memory. In PLDI '09: Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, pages 166--176, 2009.
[21]
M. Méndez-Lojo, D. Nguyen, D. Prountzos, X. Sui, M. A. Hassaan, M. Kulkarni, M. Burtscher, and K. Pingali. Structure-driven optimizations for amorphous data-parallel programs. In PPoPP'10: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 3--14, 2010.
[22]
M. J. Moravan, J. Bobba, K. E. Moore, L. Yen, M. D. Hill, B. Liblit, M. M. Swift, and D. A. Wood. Supporting nested transactional memory in logtm. In ASPLOS-XII, pages 359--370, 2006.
[23]
M. Prvulovic, M. J. Garzarán, L. Rauchwerger, and J. Torrellas. Removing architectural bottlenecks to the scalability of speculative parallelization. In ISCA'01: Proceedings of the 28th annual international symposium on Computer architecture, pages 204--215, 2001.
[24]
A. Raman, H. Kim, T. R. Mason, T. B. Jablin, and D. I. August. Speculative parallelization using software multi-threaded transactions. In ASPLOS'10: Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems, pages 65--76, New York, NY, USA, 2010. ACM.
[25]
E. Raman, G. Ottoni, A. Raman, M. J. Bridges, and D. I. August. Parallel-stage decoupled software pipelining. In CGO'08: Proceedings of the 2008 International Symposium on Code Generation and Optimization, pages 114--123, 2008.
[26]
L. Rauchwerger and D. A. Padua. The lrpd test: Speculative run-time parallelization of loops with privatization and reduction parallelization. IEEE Trans. Parallel Distrib. Syst., 10(2):160--180, 1999.
[27]
P. Rundberg and P. Stenstrom. Low-cost thread-level data dependence speculation on multiprocessors. In In Fourth Workshop on Multithreaded Execution,Architecture and Compilation, 2000.
[28]
P. Rundberg and P. Stenström. An all-software thread-level data dependence speculation system for multiprocessors. J. Instruction-Level Parallelism, 3, 2001.
[29]
F. T. Schneider, V. Menon, T. Shpeisman, and A.-R. Adl-Tabatabai. Dynamic optimization for efficient strong atomicity. In OOPSLA'08: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, pages 181--194, 2008.
[30]
T. Shpeisman, V. Menon, A.-R. Adl-Tabatabai, S. Balensiefer, D. Grossman, R. L. Hudson, K. F. Moore, and B. Saha. Enforcing isolation and ordering in stm. In PLDI'07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 78--88, 2007.
[31]
G. Sohi, S. E. Breach, and T. N. Vijaykumar. Multiscalar processors. In ISCA'95: Proceedings of the 22nd annual international symposium on Computer architecture, pages 414--425, 1995.
[32]
M. F. Spear, L. Dalessandro, V. J. Marathe, and M. L. Scott. A comprehensive strategy for contention management in software transactional memory. In PPoPP'09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, 2009.
[33]
J. G. Steffan, C. B. Colohan, A. Zhai, and T. C. Mowry. A scalable approach to thread-level speculation. In ISCA'00: In Proceedings of the 27th Annual International Symposium on Computer Architecture, pages 1--12, 2000.
[34]
W. Thies, V. Chandrasekhar, and S. Amarasinghe. A practical approach to exploiting coarse-grained pipeline parallelism in c programs. In MICRO 40: Proceedings of the 40th Annual IEEE/ACM International Symposium on Microarchitecture, pages 356--369, 2007.
[35]
C. Tian, M. Feng, and R. Gupta. Speculative parallelization using state separation and multiple value prediction. In ISMM'10: Proceedings of the 2010 International Symposium on Memory Management, 2010.
[36]
C. Tian, M. Feng, and R. Gupta. Supporting speculative parallelization in the presence of dynamic data structures. In PLDI'10: Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation, pages 63--73, 2010.
[37]
C. Tian, M. Feng, V. Nagarajan, and R. Gupta. Copy or discard execution model for speculative parallelization on multicores. In MICRO'08: Proceedings of the 2008 41st IEEE/ACM International Symposium on Microarchitecture, pages 330--341, 2008.
[38]
C. Tian, M. Feng, V. Nagarajan, and R. Gupta. Speculative parallelization of sequential loops on multicores. International Journal of Parallel Programming, 37(5):508--535, 2009.
[39]
N. Vachharajani, R. Rangan, E. Raman, M. J. Bridges, G. Ottoni, and D. I. August. Speculative decoupled software pipelining. In PACT'07: Proceedings of the 2007 International Conference on Parallel Architectures and Compilation Techniques, pages 49--59, 2007.

Cited By

View all
  • (2021)ForerunnerProceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles10.1145/3477132.3483564(570-587)Online publication date: 26-Oct-2021
  • (2018)Exploring Parallelism in MiBench with Loop and Procedure Level Speculation2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom)10.1109/BDCloud.2018.00033(141-146)Online publication date: Dec-2018
  • (2020)T4Proceedings of the ACM/IEEE 47th Annual International Symposium on Computer Architecture10.1109/ISCA45697.2020.00024(159-172)Online publication date: 30-May-2020
  • Show More Cited By

Index Terms

  1. Enhanced speculative parallelization via incremental recovery

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 8
    PPoPP '11
    August 2011
    300 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2038037
    Issue’s Table of Contents
    • cover image ACM Conferences
      PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
      February 2011
      326 pages
      ISBN:9781450301190
      DOI:10.1145/1941553
      • General Chair:
      • Calin Cascaval,
      • Program Chair:
      • Pen-Chung Yew
    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: 12 February 2011
    Published in SIGPLAN Volume 46, Issue 8

    Check for updates

    Author Tags

    1. incremental recovery
    2. multicore processors
    3. speculative parallelization

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 27 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)ForerunnerProceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles10.1145/3477132.3483564(570-587)Online publication date: 26-Oct-2021
    • (2018)Exploring Parallelism in MiBench with Loop and Procedure Level Speculation2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom)10.1109/BDCloud.2018.00033(141-146)Online publication date: Dec-2018
    • (2020)T4Proceedings of the ACM/IEEE 47th Annual International Symposium on Computer Architecture10.1109/ISCA45697.2020.00024(159-172)Online publication date: 30-May-2020
    • (2018)Revealing parallel scans and reductions in recurrences through function reconstructionProceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques10.1145/3243176.3243204(1-13)Online publication date: 1-Nov-2018
    • (2017)Beautiful…but at What Cost?Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/30900801:2(1-21)Online publication date: 30-Jun-2017
    • (2017)Property Testing on Product DistributionsACM Transactions on Algorithms10.1145/303924113:2(1-30)Online publication date: 10-Mar-2017
    • (2017)Upward Max-Min FairnessJournal of the ACM10.1145/301128264:1(1-24)Online publication date: 24-Mar-2017
    • (2017)A Temporal Logic Approach to Binding-Time AnalysisJournal of the ACM10.1145/301106964:1(1-45)Online publication date: 24-Mar-2017
    • (2017)On Uniform Capacitated k-Median Beyond the Natural LP RelaxationACM Transactions on Algorithms10.1145/298363313:2(1-18)Online publication date: 14-Jan-2017
    • (2017)Dynamic Facility Location via Exponential ClocksACM Transactions on Algorithms10.1145/292827213:2(1-20)Online publication date: 7-Feb-2017
    • Show More Cited By

    View Options

    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