Capabilities and Limitations of Library-Based Software Transactional Memory in C++

作者: Michael Spear , Michael Scott , Luke Dalessandro , Virendra Marathe

DOI:

关键词:

摘要: Like many past extensions to user programming models, transactions can be added the language or implemented in a library using existing features. We describe library-based transactional memory API for C++. Designed address limitations of an earlier with similar functionality, new interface leverages macros, exceptions, multiple inheritance, generics (templates), and overloading operators (including pointer dereference) attempt minimize syntactic clutter, admit wide variety back-end implementations, avoid arbitrary restrictions on otherwise valid constructs, enable privatization, catch as programmer errors possible, provide semantics that “seem natural” C++ programmers. Having used our construct several small one large application, we conclude while is significant improvement efforts, makes it practical systems researchers build nontrivial applications, fails realize simplicity was supposed motivation first place. Several groups have proposed compiler support way improve performance transactions. conjecture compiler—and language—support will even more important model.

参考文章(27)
Anurag Acharya, Christopher Heriot, Michael F. Spear, William N. Scherer, Michael L Scott, David D. Eisenstat, Virendra Jayant Marathe, Lowering the Overhead of Software Transactional Memory ,(2006)
Keshav Pingali, L. Paul Chew, Milind Kulkarni, Using Transactions in Delaunay Mesh Generation ,(2006)
Dave Dice, Ori Shalev, Nir Shavit, Transactional Locking II Lecture Notes in Computer Science. pp. 194- 208 ,(2006) , 10.1007/11864219_14
Michael F. Spear, Virendra J. Marathe, William N. Scherer, Michael L. Scott, Conflict Detection and Validation Strategies for Software Transactional Memory Lecture Notes in Computer Science. pp. 179- 193 ,(2006) , 10.1007/11864219_13
Virendra J. Marathe, William N. Scherer, Michael L. Scott, Adaptive Software Transactional Memory Lecture Notes in Computer Science. pp. 354- 368 ,(2005) , 10.1007/11561927_26
William N. Scherer, Michael L. Scott, Advanced contention management for dynamic software transactional memory principles of distributed computing. pp. 240- 248 ,(2005) , 10.1145/1073814.1073861
Maurice Herlihy, Victor Luchangco, Mark Moir, A flexible framework for implementing software transactional memory Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications - OOPSLA '06. ,vol. 41, pp. 253- 262 ,(2006) , 10.1145/1167473.1167495
Richard L. Hudson, Bratin Saha, Ali-Reza Adl-Tabatabai, Benjamin C. Hertzberg, McRT-Malloc Proceedings of the 2006 international symposium on Memory management - ISMM '06. pp. 74- 83 ,(2006) , 10.1145/1133956.1133967
Leonidas Guibas, Jorge Stolfi, Primitives for the manipulation of general subdivisions and the computation of Voronoi ACM Transactions on Graphics. ,vol. 4, pp. 74- 123 ,(1985) , 10.1145/282918.282923