ACM Home Page
Please provide us with feedback. Feedback
Optimizing memory transactions
Full text PdfPdf (236 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation table of contents
Ottawa, Ontario, Canada
SESSION: Transactions table of contents
Pages: 14 - 25  
Year of Publication: 2006
ISBN:1-59593-320-4
Also published in ...
Authors
Tim Harris  Microsoft Research
Mark Plesko  Microsoft Research
Avraham Shinnar  Harvard University
David Tarditi  Microsoft Research
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 195,   Citation Count: 56
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/1133981.1133984
What is a DOI?

ABSTRACT

Atomic blocks allow programmers to delimit sections of code as 'atomic', leaving the language's implementation to enforce atomicity. Existing work has shown how to implement atomic blocks over word-based transactional memory that provides scalable multi-processor performance without requiring changes to the basic structure of objects in the heap. However, these implementations perform poorly because they interpose on all accesses to shared memory in the atomic block, redirecting updates to a thread-private log which must be searched by reads in the block and later reconciled with the heap when leaving the block.This paper takes a four-pronged approach to improving performance: (1) we introduce a new 'direct access' implementation that avoids searching thread-private logs, (2) we develop compiler optimizations to reduce the amount of logging (e.g. when a thread accesses the same data repeatedly in an atomic block), (3) we use runtime filtering to detect duplicate log entries that are missed statically, and (4) we present a series of GC-time techniques to compact the logs generated by long-running atomic blocks.Our implementation supports short-running scalable concurrent benchmarks with less than 50\% overhead over a non-thread-safe baseline. We support long atomic blocks containing millions of shared memory accesses with a 2.5-4.5x slowdown.


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
Allan, E., Chase, D., Luchangco, V., Maessen, J.-W., Ryu, S., Steele Jr, G. L., and Tobin-Hochstadt, S. The Fortress language specification v0.618, Apr. 2005.
 
3
Ananian, C. S., and Rinard, M. Efficient software transactions for object-oriented languages. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Lanaguages (SCOOL) (Oct. 2005). Also available in the University of Rochester digital archive.
4
 
5
Carlstrom, B. D., Chung, J., Chafi, H., McDonald, A., Minh, C. C., Hammond, L., Kozyrakis, C., and Olukotun, K. Transactional execution of Java programs. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Lanaguages (SCOOL) (Oct. 2005). Also available in the University of Rochester digital archive
6
 
7
Cray Inc. The Chapel language specification v0.4, Feb. 2005.
 
8
Dice, D. Implementing fast Java monitors with relaxed-locks. In Proceedings of USENIX JVM 2001 (2001), pp. 79--90.
 
9
 
10
Fraser, K. Practical lock freedom. PhD thesis, University of Cambridge Computer Laboratory, 2003.
 
11
Harris, T. Exceptions and side-effects in atomic blocks. In PODC 2004 Workshop on Concurrency and Synchronization in Java programs (CSJP) (Jul. 2004), pp. 46--53. Proceedings published as Memorial University of Newfoundland CS Technical Report 2004-01.
12
13
 
14
 
15
Herlihy, M. SXM1.1: Software transactional memory package for c#. Tech. rep., Brown University & Microsoft Research, May 2005.
16
17
18
 
19
Hunt, G.C. et al. An overview of the Singularity project. Tech. Rep. MSR-TR-2005-135, Microsoft Research, Oct. 2005.
 
20
International Business Machines Corp. System/370 Principles of Operation, 1983.
21
22
23
 
24
25
26
27
28
 
29
Shinnar, A., Tarditi, D., Plesko, M., and Steensgaard, B. Integrating support for undo with exception handling. Tech. Rep. MSR-TR-2004-140, Microsoft Research, Dec. 2004.
 
30
Welc, A., Jagannathan, S., and Hosking, A. Transactional monitors for concurrent objects. In European Conference on Object-Oriented Programming (ECOOP) (Jun. 2004), pp.519--542.

CITED BY  56

Collaborative Colleagues:
Tim Harris: colleagues
Mark Plesko: colleagues
Avraham Shinnar: colleagues
David Tarditi: colleagues