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.
- 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 ScholarDigital Library
- Agha, Gul A. ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, Massachusetts, 1986. Google ScholarDigital Library
- 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 ScholarDigital Library
- Dias, R. J. and Lourenco, J. M.. 2009. Unifying Memory and Database Transactions. In Proc. of Euro-Par '09 Google ScholarDigital Library
- Dice, D., Shalev O., and Shavit N. Transactional locking II. In DISC'06, volume 4167 of Lecture Notes in Computer Science. Springer, 2006. Google ScholarDigital Library
- Donnelly, K. and Fluet, M. 2008. Transactional events. J. Functional Programming. 18, 5--6 (Sep. 2008), 649--706. Google ScholarDigital Library
- Dudnik P. and Swift, M. M. Condition Variables and Transactional Memory: Problem or Opportunity? In Proc. of TRANSACT'09.Google Scholar
- Effinger-Dean, L., Kehrt, M., and Grossman, D. 2008. Transactional events for ML. In Proc. of ICFP '08. 103--114. Google ScholarDigital Library
- Gray J. Reuter A. 1992. Transaction Processing: Concepts and Techniques (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. Google ScholarDigital Library
- Guerraoui, R. and Kapalka, M. 2008. On the correctness of transactional memory. In Proc. of PPoPP '08. 175--184. Google ScholarDigital Library
- Harris, T. and Fraser, K. 2003. Language support for lightweight transactions. SIGPLAN Not. 38, 11 (Nov. 2003), 388--402. Google ScholarDigital Library
- Harris, T., Marlow, S., Peyton-Jones, S., and Herlihy, M. 2005. Composable memory transactions. In Proc. of PPoPP '05. 48--60. Google ScholarDigital Library
- Herlihy, M., Luchangco, V., and Moir, M. 2006. A flexible framework for implementing software transactional memory. In Proc. of OOPSLA '06. 253--262. Google ScholarDigital Library
- Kehrt, M., Effinger-Dean L., Schmitz M., Grossman D. Programming Idioms for Transactional Events. PLACES 2009.Google Scholar
- Koskinen, E., Parkinson, M., and Herlihy, M. 2010. Coarse-grained transactions. In Proc. of POPL '10. 19--30. Google ScholarDigital Library
- Lampson, B. W. and Redell, D. D. 1980. Experience with processes and monitors in Mesa. Commun. ACM 23, 2 (Feb. 1980), 105--117. Google ScholarDigital Library
- Lesani, M. and Palsberg J. Communicating Memory Transactions. Technical report, 2010. http://www.cs.ucla.edu/~lesani/papers/CommMemTrans.pdf Google ScholarDigital Library
- Lipton, R. J. 1975. Reduction: a method of proving properties of parallel programs. Commun. ACM 18, 12 (Dec. 1975), 717--721. Google ScholarDigital Library
- Liskov, B. 1988. Distributed programming in Argus. Commun. ACM 31, 3 (Mar. 1988), 300--312. Google ScholarDigital Library
- Luchangco, V. and Marathe, V. J. Transaction Synchronizers. In Proc. of SCOOL'05.Google Scholar
- Luchangco, V. and Marathe, V. J. You are not alone: breaking transaction isolation. In Proc. of IWMSE '10. 50--53. Google ScholarDigital Library
- Luchangco, V. and Marathe, V. J. Transaction Communicators: Enabling Cooperation Among Concurrent Transactions. In Proc. of PPoPP'11. Google ScholarDigital Library
- Minh, C. C., Chung, J., Kozyrakis, C., Olukotun K. STAMP: Stanford Transactional Applications for Multi-Processing. In Proc. of IISWC '08.Google Scholar
- Moore, K. F. and Grossman, D. 2008. High-level small-step operational semantics for transactions. In Proc. of POPL '08. 51--62. Google ScholarDigital Library
- Odersky, M. The Scala Language Specification. 2010. Programming Methods Laboratory. EPFL.Google Scholar
- Reppy, J. H. 1999 Concurrent Programming in ML. Cambridge University Press. Google ScholarDigital Library
- Scott, M. L. Sequential specification of transactional memory semantics. In Proc. of TRANSACT'06.Google Scholar
- Smaragdakis, Y., Kay, A., Behrends, R., and Young, M. 2007. Transactions with isolation and cooperation. In Proc. of OOPSLA '07. 191--210. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Communicating memory transactions
Recommendations
Communicating memory transactions
PPoPP '11Many 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 ...
Safe open-nested transactions through ownership
PPoPP '09Researchers in transactional memory (TM) have proposed open nesting as a methodology for increasing the concurrency of transactional programs. The idea is to ignore ``low-level'' memory operations of an open-nested transaction when detecting conflicts ...
Safe open-nested transactions through ownership
PPoPP '09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programmingResearchers in transactional memory (TM) have proposed open nesting as a methodology for increasing the concurrency of transactional programs. The idea is to ignore ``low-level'' memory operations of an open-nested transaction when detecting conflicts ...
Comments