ACM Home Page
Please provide us with feedback. Feedback
Design and implementation of transactional constructs for C/C++
Full text PdfPdf (378 KB)
Source
Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications table of contents
Nashville, TN, USA
SESSION: Concurrency table of contents
Pages 195-212  
Year of Publication: 2008
ISBN:978-1-60558-215-3
Also published in ...
Authors
Yang Ni  Intel Corporation, Santa Clara, CA, USA
Adam Welc  Intel Corporation, Santa Clara, CA, USA
Ali-Reza Adl-Tabatabai  Intel Corporation, Santa Clara, CA, USA
Moshe Bach  Intel Corporation, Haifa, Israel
Sion Berkowits  Intel Corporation, Haifa, Israel
James Cownie  Intel Corporation, Glasgow, United Kingdom
Robert Geva  Intel Corporation, Santa Clara, CA, USA
Sergey Kozhukow  Intel Corporation, Novosibirsk, Russian Fed.
Ravi Narayanaswamy  Intel Corporation, Santa Clara, CA, USA
Jeffrey Olivier  Intel Corporation, Champaign, IL, USA
Serguei Preis  Intel Coporation, Novosibirsk, Russian Fed.
Bratin Saha  Intel Corporation, Santa Clara, CA, USA
Ady Tal  Intel Corporation, Haifa, Israel
Xinmin Tian  Intel Corporation, Santa Clara, CA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 27,   Downloads (12 Months): 280,   Citation Count: 5
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1449764.1449780
What is a DOI?

ABSTRACT

This paper presents a software transactional memory system that introduces first-class C++ language constructs for transactional programming. We describe new C++ language extensions, a production-quality optimizing C++ compiler that translates and optimizes these extensions, and a high-performance STM runtime library. The transactional language constructs support C++ language features including classes, inheritance, virtual functions, exception handling, and templates. The compiler automatically instruments the program for transactional execution and optimizes TM overheads. The runtime library implements multiple execution modes and implements a novel STM algorithm that supports both optimistic and pessimistic concurrency control. The runtime switches a transaction's execution mode dynamically to improve performance and to handle calls to precompiled functions and I/O libraries. We present experimental results on 8 cores (two quad-core CPUs) running a set of 20 non-trivial parallel programs. Our measurements show that our system scales well as the numbers of cores increases and that our compiler and runtime optimizations improve scalability.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
 
4
C. Bienia, S. Kumar, J. Singh, and K. Li. The parsec benchmark suite: Characterization and architectural implications. Technical Report 811-08, Princeton University, 2008.
 
5
 
6
C. Blundell, E. C. Lewis, and M. Martin. Unrestricted transactional memory: Supporting I/O and system calls within transactions. Technical Report CIS-06-09, University of Pennsylvania, Department of Comp. and Info. Science, 2006.
7
8
9
 
10
L. Crowl, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Integrating transactional memory into C++. In TRANSACT 2007.
 
11
L. Dalessandro, V. J. Marathe, M. F. Spear, and M. L. Scott. Capabilities and limitations of library-based software transactional memory in C++. In TRANSACT 2007.
12
 
13
D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In DISC 2006.
 
14
R. Ennals. Software transactional memory should not be obstruction-free. http://www.cambridge.intel-research.net/rennals/notlockfree.pdf, 2005.
 
15
P. Felber, C. Fetzer, U. Müller, T. Riegel, M. Süβkraut, and H. Sturzrehm. Transactifying applications using an open compiler framework. In TRANSACT 2007.
 
16
J. Gottschlich and D. A. Connors. DracoSTM: A practical C++ approach to software transactional memory. In LCSD 2007.
 
17
18
 
19
R. Guerraoui, M. Herlihy, M. Kapalka, and B. Pochon. Robust contention management in software transactional memory. In SCOOL 2005.
20
21
22
23
24
25
26
27
 
28
IBM. IBM C/C++ for Transactional Memory, for AIX, V0.9, Language Extensions and User's Guide. http://dl.alphaworks.ibm.com/technologies/xlcstm/xlcstmwhitepaper.pdf.
 
29
Y. Lev, M. Moir, and D. Nussbaum. PhTM: Phased transactional memory. In TRANSACT 2007.
30
 
31
V. J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, I. William N. Scherer, and M. L. Scott. Lowering the overhead of software transactional memory. In TRANSACT 2006.
32
33
 
34
V. Menon, S. Balensiefer, T. Shpeisman, A.-R. Adl-Tabatabai, R. L. Hudson, B. Saha, and A. Welc. Single global lock semantics in a weakly atomic STM. In TRANSACT 2008.
35
36
 
37
J. E. B. Moss and A. L. Hosking. Nested transactional memory: model and preliminary architecture sketches. In SCOOL 2005.
38
39
40
 
41
42
 
43
A. Shriraman, V. J. Marathe, S. Dwarkadas, M. L. Scott, D. Eisenstata, C. Heriot, I. William N. Scherer, and M. F. Spear. Hardware acceleration of software transactional memory. In TRANSACT 2006.
 
44
M. Spear, M. Michael, and M. Scott. Inevitability mechanisms for software transactional memory. In TRANSACT 2008.
 
45
M. F. Spear, V. J. Marathe, L. Dalessandro, and M. L. Scott. Privatization techniques for software transactional memory. Technical Report 915, University of Rochester, Computer Science Dept., 2007.
 
46
 
47
A. Welc, A. L. Hosking, and S. Jagannathan. Transparently reconciling transactions with locking for Java synchronization. In ECOOP 2006.
48
49
 
50
I. William N. Scherer and M. L. Scott. Contention management in dynamic software transactional memory. In CSJP 2004.
51

CITED BY  7
 
 

Collaborative Colleagues:
Yang Ni: colleagues
Adam Welc: colleagues
Ali-Reza Adl-Tabatabai: colleagues
Moshe Bach: colleagues
Sion Berkowits: colleagues
James Cownie: colleagues
Robert Geva: colleagues
Sergey Kozhukow: colleagues
Ravi Narayanaswamy: colleagues
Jeffrey Olivier: colleagues
Serguei Preis: colleagues
Bratin Saha: colleagues
Ady Tal: colleagues
Xinmin Tian: colleagues