skip to main content
10.1145/1941553.1941577acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Communicating memory transactions

Authors Info & Claims
Published:12 February 2011Publication History

ABSTRACT

Many concurrent programming models enable both transactional memory and message passing. For such models, researchers have built increasingly efficient implementations and defined reasonable correctness criteria, while it remains an open problem to obtain the best of both worlds. We present a programming model that is the first to have opaque transactions, safe asynchronous message passing, and an efficient implementation. Our semantics uses tentative message passing and keeps track of dependencies to enable undo of message passing in case a transaction aborts. We can program communication idioms such as barrier and rendezvous that do not deadlock when used in an atomic block. Our experiments show that our model adds little overhead to pure transactions, and that it is significantly more efficient than Transactional Events. We use a novel definition of safe message passing that may be of independent interest.

References

  1. Abadi, M., Birrell, A., Harris, T., and Isard, M. 2008. Semantics of transactional memory and automatic mutual exclusion. SIGPLAN Not. 43, 1 (Jan. 2008), 63--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Agha, Gul A. ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, Massachusetts, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Aguilera, M. K., Merchant, A., Shah, M., Veitch, A., and Karamanolis, C. 2007. Sinfonia: a new paradigm for building scalable distributed systems. In Proc. of SOSP '07. 159--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dias, R. J. and Lourenco, J. M.. 2009. Unifying Memory and Database Transactions. In Proc. of Euro-Par '09 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dice, D., Shalev O., and Shavit N. Transactional locking II. In DISC'06, volume 4167 of Lecture Notes in Computer Science. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Donnelly, K. and Fluet, M. 2008. Transactional events. J. Functional Programming. 18, 5--6 (Sep. 2008), 649--706. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dudnik P. and Swift, M. M. Condition Variables and Transactional Memory: Problem or Opportunity? In Proc. of TRANSACT'09.Google ScholarGoogle Scholar
  8. Effinger-Dean, L., Kehrt, M., and Grossman, D. 2008. Transactional events for ML. In Proc. of ICFP '08. 103--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gray J. Reuter A. 1992. Transaction Processing: Concepts and Techniques (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Guerraoui, R. and Kapalka, M. 2008. On the correctness of transactional memory. In Proc. of PPoPP '08. 175--184. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Harris, T. and Fraser, K. 2003. Language support for lightweight transactions. SIGPLAN Not. 38, 11 (Nov. 2003), 388--402. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Harris, T., Marlow, S., Peyton-Jones, S., and Herlihy, M. 2005. Composable memory transactions. In Proc. of PPoPP '05. 48--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Herlihy, M., Luchangco, V., and Moir, M. 2006. A flexible framework for implementing software transactional memory. In Proc. of OOPSLA '06. 253--262. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kehrt, M., Effinger-Dean L., Schmitz M., Grossman D. Programming Idioms for Transactional Events. PLACES 2009.Google ScholarGoogle Scholar
  15. Koskinen, E., Parkinson, M., and Herlihy, M. 2010. Coarse-grained transactions. In Proc. of POPL '10. 19--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lampson, B. W. and Redell, D. D. 1980. Experience with processes and monitors in Mesa. Commun. ACM 23, 2 (Feb. 1980), 105--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lesani, M. and Palsberg J. Communicating Memory Transactions. Technical report, 2010. http://www.cs.ucla.edu/~lesani/papers/CommMemTrans.pdf Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Lipton, R. J. 1975. Reduction: a method of proving properties of parallel programs. Commun. ACM 18, 12 (Dec. 1975), 717--721. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Liskov, B. 1988. Distributed programming in Argus. Commun. ACM 31, 3 (Mar. 1988), 300--312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Luchangco, V. and Marathe, V. J. Transaction Synchronizers. In Proc. of SCOOL'05.Google ScholarGoogle Scholar
  21. Luchangco, V. and Marathe, V. J. You are not alone: breaking transaction isolation. In Proc. of IWMSE '10. 50--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Luchangco, V. and Marathe, V. J. Transaction Communicators: Enabling Cooperation Among Concurrent Transactions. In Proc. of PPoPP'11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Minh, C. C., Chung, J., Kozyrakis, C., Olukotun K. STAMP: Stanford Transactional Applications for Multi-Processing. In Proc. of IISWC '08.Google ScholarGoogle Scholar
  24. Moore, K. F. and Grossman, D. 2008. High-level small-step operational semantics for transactions. In Proc. of POPL '08. 51--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Odersky, M. The Scala Language Specification. 2010. Programming Methods Laboratory. EPFL.Google ScholarGoogle Scholar
  26. Reppy, J. H. 1999 Concurrent Programming in ML. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Scott, M. L. Sequential specification of transactional memory semantics. In Proc. of TRANSACT'06.Google ScholarGoogle Scholar
  28. Smaragdakis, Y., Kay, A., Behrends, R., and Young, M. 2007. Transactions with isolation and cooperation. In Proc. of OOPSLA '07. 191--210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Tarjan, Robert, 1971. Depth-first search and linear graph algorithms. In Proc. of the 12th Annual Symposium on Switching and Automata Theory (13--15 Oct. 1971).,114--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Ziarek, L., Schatz, P., and Jagannathan, S. 2006. Stabilizers: a modular checkpointing abstraction for concurrent functional programs. In Proc. of ICFP '06. 136--147. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Communicating memory transactions

      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
        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
        • 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

        Copyright © 2011 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: 12 February 2011

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate230of1,014submissions,23%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader