skip to main content
research-article

Exploiting the commutativity lattice

Published:04 June 2011Publication History
Skip Abstract Section

Abstract

Speculative execution is a promising approach for exploiting parallelism in many programs, but it requires efficient schemes for detecting conflicts between concurrently executing threads. Prior work has argued that checking semantic commutativity of method invocations is the right way to detect conflicts for complex data structures such as kd-trees. Several ad hoc ways of checking commutativity have been proposed in the literature, but there is no systematic approach for producing implementations.

In this paper, we describe a novel framework for reasoning about commutativity conditions: the commutativity lattice. We show how commutativity specifications from this lattice can be systematically implemented in one of three different schemes: abstract locking, forward gatekeeping and general gatekeeping. We also discuss a disciplined approach to exploiting the lattice to find different implementations that trade off precision in conflict detection for performance. Finally, we show that our novel conflict detection schemes are practical and can deliver speedup on three real-world applications.

References

  1. Synthetic maximum flow families. http://www.avglab.com/andrew/CATS/maxflow_synthetic.htm.Google ScholarGoogle Scholar
  2. A. Bondavalli, N. De Francesco, D. Latella, and G. Vaglini. Shared abstract data type: an algebraic methodology for their specification. In MFDBS 89, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Burnim, G. Necula, and K. Sen. Specifying and checking semantic atomicity for multithreaded programs. In ASPLOS'11: Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. D. Carlstrom, A. McDonald, C. Kozyrakis, and K. Olukotun. Transactional collection classes. In PPoPP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Demsky and P. Lam. Views: object-inspired concurrency control. In ICSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. The notions of consistency and predicate locks in a database system. Commun. ACM, 19(11):624--633, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. V. Goldberg and R. E. Tarjan. A new approach to the maximum-flow problem. J. ACM, 35(4):921--940, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Harris and K. Fraser. Language support for lightweight transactions. In OOPSLA. Oct 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Herlihy and E. Koskinen. Transactional boosting: a methodology for highly-concurrent transactional objects. In PPoPP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Herlihy, V. Luchangco, and M. Moir. A flexible framework for implementing software transactional memory. In OOPSLA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In ISCA, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12(3):463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Kim and M. Rinard. Verification of semantic commutativity conditions and inverse operations on linked data structures. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. E. Koskinen, M. Parkinson, and M. Herlihy. Coarse-grained transactions. In POPL, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Kulkarni, M. Burtscher, R. Inkulu, K. Pingali, and C. Casçaval. How much parallelism is there in irregular applications? In PPoPP, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Kulkarni, K. Pingali, G. Ramanarayanan, B. Walter, K. Bala, and L. P. Chew. Optimistic parallelism benefits from data partitioning. In ASPLOS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Larus and R. Rajwar. Transactional Memory (Synthesis Lectures on Computer Architecture). Morgan & Claypool Publishers, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Y. Ni, V. Menon, A.-R. Adl-Tabatabai, A. L. Hosking, R. Hudson, J. E. B. Moss, B. Saha, and T. Shpeisman. Open nesting in software transactional memory. In PPoPP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. H. Papadimitriou. The serializability of concurrent database updates. J. ACM, 26(4):631--653, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Rauchwerger and D. Padua. The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization. In PLDI, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. P. M. Schwarz and A. Z. Spector. Synchronizing shared abstract types. ACM Trans. Comput. Syst., 2(3):223--250, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. Walter, K. Bala, M. Kulkarni, and K. Pingali. Fast agglomerative clustering for rendering. In Interactive Ray Tracing, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  25. W. Weihl. Commutativity-based concurrency control for abstract data types. IEEE Transactions on Computers, 37(12), 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Exploiting the commutativity lattice

        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

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 46, Issue 6
          PLDI '11
          June 2011
          652 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1993316
          Issue’s Table of Contents
          • cover image ACM Conferences
            PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
            June 2011
            668 pages
            ISBN:9781450306638
            DOI:10.1145/1993498
            • General Chair:
            • Mary Hall,
            • Program Chair:
            • David Padua

          Copyright © 2011 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 4 June 2011

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!