Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1806596.1806604acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Supporting speculative parallelization in the presence of dynamic data structures

Published: 05 June 2010 Publication History
  • Get Citation Alerts
  • Abstract

    The availability of multicore processors has led to significant interest in compiler techniques for speculative parallelization of sequential programs. Isolation of speculative state from non-speculative state forms the basis of such speculative techniques as this separation enables recovery from misspeculations. In our prior work on CorD [35,36] we showed that for array and scalar variable based programs copying of data between speculative and non-speculative memory can be highly optimized to support state separation that yields significant speedups on multicore machines available today. However, we observe that in context of heap-intensive programs that operate on linked dynamic data structures, state separation based speculative parallelization poses many challenges. The copying of data structures from non-speculative to speculative state (copy-in operation) can be very expensive due to the large sizes of dynamic data structures. The copying of updated data structures from speculative state to non-speculative state (copy-out operation) is made complex due to the changes in the shape and size of the dynamic data structure made by the speculative computation. In addition, we must contend with the need to translate pointers internal to dynamic data structures between their non-speculative and speculative memory addresses. In this paper we develop an augmented design for the representation of dynamic data structures such that all of the above operations can be performed efficiently. Our experiments demonstrate significant speedups on a real machine for a set of programs that make extensive use of heap based dynamic data structures.

    References

    [1]
    A.-R. Adl-Tabatabai, B. T. Lewis, V. Menon, B. R. Murphy, B. Saha,and T. Shpeisman. Compiler and runtime support for efficient software transactional memory. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pages 26--37, 2006.
    [2]
    D. Bovet and M. Cesati. Understanding the linux kernel. 2005.
    [3]
    P. Damron, A. Fedorova, Y. Lev, V. Luchangco,M. Moir, and D. Nussbaum. Hybrid transactional memory. In ASPLOS-XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pages 336--346, 2006.
    [4]
    D. Dice, O. Shalev, and N. Shavit. Transactional locking ii. In Proceedings of the 20th Intl. Symp. on Distributed Computing.
    [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]
    Z.-H. Du, C.-C. Lim, X.-F. Li, C. Yang, Q. Zhao, and T.-F. Ngai. A cost-driven compilation framework for speculative parallelization of sequential programs. In PLDI '04: Proceedings of the 2004 ACM SIGPLAN conference on Programming language design and implementation, pages 71--81, 2004.
    [7]
    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.
    [8]
    M. J. Garzarán, M. Prvulovic, J. M. Llaber‰a, V. Vi Ünals, 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.
    [9]
    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, 1998.
    [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, V. Luchangco, M. Moir, and W. N. Scherer, III. Software transactional memory for dynamic-sized data structures. In PODC '03: Proceedings of the twenty-second annual symposium on Principles of distributed computing, pages 92--101, 2003.
    [12]
    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.
    [13]
    T. A. Johnson, R. Eigenmann, and T. N. Vijaykumar. Min-cut program decomposition for thread-level speculation. In PLDI '04: Proceedings of the 2004 ACM SIGPLAN conference on Programming language design and implementation, pages 59--70, 2004.
    [14]
    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.
    [15]
    C. keung Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S.Wallace, V. Janapa, and R. K. Hazelwood. Pin: Building customized program analysis tools with dynamic instrumentation. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 190--200, 2005.
    [16]
    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.
    [17]
    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 ACMSIGPLAN symposium on Principles and practice of parallel programming, pages 3--14, 2009.
    [18]
    M. Kulkarni, K. Pingali, G. Ramanarayanan, B. Walter, K. Bala, and L. P. Chew. Optimistic parallelism benefits from data partitioning. In ASPLOS XIII: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, pages 233--243, 2008.
    [19]
    M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires bstractions. In PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 211--222, 2007.
    [20]
    C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In CGO '04: Proceedings of the 2004 International Symposium on Code Generation and Optimization, pages 75--88, 2004.
    [21]
    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.
    [22]
    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.
    [23]
    J. M. Mellor-Crummey and M. L. Scott. Algorithms for scalable synchronization on shared--memory multiprocessors. ACM Trans. Comput. Syst., 9(1):21--65, 1991.
    [24]
    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. SIGOPS Oper. Syst. Rev., 40(5):359--370, 2006.
    [25]
    M. Prvulovic, M. J. Garzarán, L. Rauchwerger, and J. Torrellas. Removing architectural bottlenecks to the scalability of speculative parallelization. SIGARCH Comput. Archit. News, 29(2):204--215, 2001.
    [26]
    C. G. Quiñones, C.Madriles, F. J. Sánchez, P. Marcuello, A. González, and D. M. Tullsen. Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 269--279, 2005.
    [27]
    B. Saha, A.-R. Adl-Tabatabai, R. L. Hudson, C. C. Minh, and B. Hertzberg. Mcrt-stm: a high performance software transactional memory system for a multi-core runtime. In PPoPP '06: Proceedings of the 11th ACM Symp. on Principles and Practice of Parallel Programming, pages 187--197, 2006.
    [28]
    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 Objectoriented programming systems languages and applications, 2008.
    [29]
    N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, 10(2):99--116, 1997.
    [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: Proceedings of the 27th annual international symposium on Computer architecture, 2000.
    [34]
    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.
    [35]
    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.
    [36]
    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.
    [37]
    J.-Y. Tsai, J. Huang, C. Amlo, D. J. Lilja, and P.-C. Yew. The superthreaded processor architecture. IEEE Transactions on Computers, 48(9):881--902, 1999.

    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
    • (2021)Loop Parallelization using Dynamic Commutativity Analysis2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO51591.2021.9370319(150-161)Online publication date: 27-Feb-2021
    • (2020)SCAF: a speculation-aware collaborative dependence analysis frameworkProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3386028(638-654)Online publication date: 11-Jun-2020
    • Show More Cited By

    Index Terms

    1. Supporting speculative parallelization in the presence of dynamic data structures

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2010
      514 pages
      ISBN:9781450300193
      DOI:10.1145/1806596
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 45, Issue 6
        PLDI '10
        June 2010
        496 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1809028
        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: 05 June 2010

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. multicore processors
      2. speculative parallelization

      Qualifiers

      • Research-article

      Conference

      PLDI '10
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 406 of 2,067 submissions, 20%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)8
      • Downloads (Last 6 weeks)2
      Reflects downloads up to 27 Jul 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
      • (2021)Loop Parallelization using Dynamic Commutativity Analysis2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO51591.2021.9370319(150-161)Online publication date: 27-Feb-2021
      • (2020)SCAF: a speculation-aware collaborative dependence analysis frameworkProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3386028(638-654)Online publication date: 11-Jun-2020
      • (2020)Challenging Sequential Bitstream Processing via Principled Bitwise SpeculationProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378461(607-621)Online publication date: 9-Mar-2020
      • (2020)PerspectiveProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378458(351-367)Online publication date: 9-Mar-2020
      • (2017)LDACM Transactions on Architecture and Code Optimization10.1145/304667814:1(1-25)Online publication date: 21-Mar-2017
      • (2017)A Generalized Framework for Automatic Scripting Language Parallelization2017 26th International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT.2017.28(356-369)Online publication date: Sep-2017
      • (2017)Using the Xeon Phi Platform to Run Speculatively-Parallelized CodesInternational Journal of Parallel Programming10.1007/s10766-016-0421-x45:2(225-241)Online publication date: 1-Apr-2017
      • (2017)Automatic Copying of Pointer-Based Data StructuresLanguages and Compilers for Parallel Computing10.1007/978-3-319-52709-3_20(265-281)Online publication date: 24-Jan-2017
      • (2017)Software‐Based Speculative ParallelizationProgramming multi‐core and many‐core computing systems10.1002/9781119332015.ch10(205-225)Online publication date: 27-Jan-2017
      • 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