ABSTRACT
Traditional transactional memory systems suffer from overly conservative conflict detection, yielding so-called false conflicts, because they are based on fine-grained, low-level read/write conflicts. In response, the recent trend has been toward integrating various abstract data-type libraries using ad-hoc methods of high-level conflict detection. These proposals have led to improved performance but a lack of a unified theory has led to confusion in the literature.
We clarify these recent proposals by defining a generalization of transactional memory in which a transaction consists of coarse-grained (abstract data-type) operations rather than simple memory read/write operations. We provide semantics for both pessimistic (e.g. transactional boosting) and optimistic (e.g. traditional TMs and recent alternatives) execution. We show that both are included in the standard atomic semantics, yet find that the choice imposes different requirements on the coarse-grained operations: pessimistic requires operations be left-movers, optimistic requires right-movers. Finally, we discuss how the semantics applies to numerous TM implementation details discussed widely in the literature.
- Abadi, M., Birrell, A., Harris, T., and Isard, M. Semantics of transactional memory and automatic mutual exclusion. In The 35th ACM SIGPLAN SIGACT Symposium on Principles of Programming Languages (POPL'08) (2008), G. C. Necula and P. Wadler, Eds., ACM, pp. 63--74. Google ScholarDigital Library
- Aleen, F., and Clark, N. Commutativity analysis for software parallelization: letting program transformations see the big picture. In Proceedings of the 14th international conference on Architectural support for programming languages and operating systems (ASPLOS-XII) (2009), M. L. Soffa and M. J. Irwin, Eds., ACM, pp. 241--252. Google ScholarDigital Library
- Baldassin, A., and Burckhardt, S. Lightweight software transactions for games. In Proceedings of the First USENIX Workshop on Hot Topics in Parallelism (HotPar'09) (2009). Google ScholarDigital Library
- Beeri, C., Bernstein, P., Goodman, N., Lai, M.-Y., and Shasha, D. A concurrency control theory for nested transactions (preliminary report). In Proceedings of the 2nd annual ACM symposium on Principles of distributed computing (PODC'83) (New York, NY, USA, 1983), ACM Press, pp. 45--62. Google ScholarDigital Library
- Bernstein, A. Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers 15, 5 (1966), 757--763.Google Scholar
- Damron, P., Fedorova, A., Lev, Y., Luchangco, V., Moir, M., and Nussbaum, D. Hybrid transactional memory. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems (ASPLOS-XII) (New York, NY, USA, 2006), ACM Press, pp. 336--346. Google ScholarDigital Library
- Dice, D., Shalev, O., and Shavit, N. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC'06) (September 2006). Google ScholarDigital Library
- Flanagan, C., Freund, S. N., and Yi, J. Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs. In PLDI'08: Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation (New York, NY, USA, 2008), ACM, pp. 293--303. Google ScholarDigital Library
- Guerraoui, R., and Kapalka, M. On the correctness of transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming (PPoPP'08) (New York, NY, USA, 2008), ACM, pp. 175--184. Google ScholarDigital Library
- Harris, T., Marlow, S., Jones, S. L. P., and Herlihy, M. Composable memory transactions. Commun. ACM 51, 8 (2008), 91--100. Google ScholarDigital Library
- Herlihy, M., and Koskinen, E. Transactional boosting: A methodology for highly concurrent transactional objects. In Proceedings of the 13th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'08) (2008). Google ScholarDigital Library
- Herlihy, M., Luchangco, V., Moir, M., and Scherer, III, W. N. Software transactional memory for dynamic-sized data structures. In Proceedings of the 22nd annual symposium on Principles of distributed computing (PODC'03) (2003), ACM Press, pp. 92--101. Google ScholarDigital Library
- Herlihy, M., and Moss, J. E. B. Transactional memory: architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture (ISCA'93) (1993), ACM Press, pp. 289--300. Google ScholarDigital Library
- Herlihy, M. P., and Wing, J. M. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS) 12, 3 (1990), 463--492. Google ScholarDigital Library
- Jagannathan, S. Vitek, J., Welc, A., Hosking, A. A Transactional object calculus. Science of Computer Programming. 57, 2 (August 2005), 164--186. Google ScholarDigital Library
- Korth, H. F. Locking primitives in a database system. J. ACM 30, 1 (1983), 55--79. Google ScholarDigital Library
- Koskinen, E., and Herlihy, M. Checkpoints and continuations instead of nested transactions. In Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures (SPAA'08) (New York, NY, USA, 2008), ACM, pp. 160--168. Google ScholarDigital Library
- Koskinen, E., and Herlihy, M. Dreadlocks: efficient deadlock detection. In Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures (SPAA'08) (New York, NY, USA, 2008), ACM, pp. 297--303. Google ScholarDigital Library
- Koskinen, E., Parkinson, M., and Herlihy, M. Coarse-grained transactions. Tech. Rep. 759, Computer Laboratory, University of Cambridge, 2009.Google Scholar
- Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Bala, K., and Chew, L. P. Optimistic parallelism requires abstractions. In Proceedings of the ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI'07) (2007), J. Ferrante and K. S. McKinley, Eds., ACM, pp. 211--222. Google ScholarDigital Library
- Lam, M., and Rinard, M. Coarse-grain parallel programming in Jade. In Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'91) (1991), ACM New York, NY, USA, pp. 94--105. Google ScholarDigital Library
- Lipton, R. J. Reduction: a method of proving properties of parallel programs. Commun. ACM 18, 12 (1975), 717--721. Google ScholarDigital Library
- Moore, K. F., and Grossman, D. High-level small-step operational semantics for transactions. In Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL'08) (New York, NY, USA, 2008), ACM, pp. 51--62. Google ScholarDigital Library
- Moravan, M. J., Bobba, J., Moore, K. E., Yen, L., Hill, M. D., Liblit, B., Swift, M. M., and Wood, D. A. Supporting nested transactional memory in logtm. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems (ASPLOS-XII) (New York, NY, USA, 2006), ACM Press, pp. 359--370. Google ScholarDigital Library
- Moravan, M. J., Bobba, J., Moore, K. E., Yen, L., Hill, M. D., Liblit, B., Swift, M. M., and Wood, D. A. Supporting nested transactional memory in logtm. SIGOPS Oper. Syst. Rev. 40, 5 (2006), 359--370. Google ScholarDigital Library
- Rinard, M., and Lam, M. The design, implementation, and evaluation of Jade. ACM Transactions on Programming Languages and Systems (TOPLAS) 20, 3 (1998), 483--545. Google ScholarDigital Library
- Rinard, M. C., and Diniz, P. C. Commutativity analysis: A new analysis technique for parallelizing compilers. ACM Transactions on Programming Languages and Systems (TOPLAS) 19, 6 (November 1997), 942--991. Google ScholarDigital Library
- Saha, B., Adl-Tabatabai, A.-R., Hudson, R. L., Minh, C. C., and Hertzberg, B. McRT-STM: a high performance software transactional memory system for a multi-core runtime. In Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'06) (New York, NY, USA, 2006), ACM, pp. 187--197. Google ScholarDigital Library
- Schwarz, P. M., and Spector, A. Z. Synchronizing shared abstract types. ACM Trans. on Comp. Sys. 2, 3 (1984), 223--250. Google ScholarDigital Library
- Spear, M. F., Marathe, V. J., Dalessandro, L., and Scott, M. L. Privatization techniques for software transactional memory. In Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing (PODC'07) (New York, NY, USA, 2007), ACM, pp. 338--339. Google ScholarDigital Library
- Steele, Jr, G. L. Making asynchronous parallelism safe for the world. In Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL'90) (New York, NY, USA, 1990), ACM Press, pp. 218--231. Google ScholarDigital Library
- Weihl, W. E. Data-dependent concurrency control and recovery (extended abstract). In Proceedings of the second annual ACM symposium on Principles of distributed computing (PODC'83) (New York, NY, USA, 1983), ACM Press, pp. 63--75. Google ScholarDigital Library
- William N. Scherer, I., and Scott, M. L. Advanced contention management for dynamic software transactional memory. In Proceedings of the 24th annual ACM symposium on Principles of distributed computing (PODC'05) (New York, NY, USA, 2005), ACM, pp. 240--248. Google ScholarDigital Library
Index Terms
- Coarse-grained transactions
Recommendations
Transactional boosting: a methodology for highly-concurrent transactional objects
PPoPP '08: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programmingWe describe a methodology for transforming a large class of highly-concurrent linearizable objects into highly-concurrent transactional objects. As long as the linearizable implementation satisfies certain regularity properties (informally, that every ...
Coarse-grained transactions
POPL '10Traditional transactional memory systems suffer from overly conservative conflict detection, yielding so-called false conflicts, because they are based on fine-grained, low-level read/write conflicts. In response, the recent trend has been toward ...
The Push/Pull model of transactions
PLDI '15We present a general theory of serializability, unifying a wide range of transactional algorithms, including some that are yet to come. To this end, we provide a compact semantics in which concurrent transactions PUSH their effects into the shared view ...
Comments