-
Optimizing memory transactions
Tim Harris, Mark Plesko, Avraham Shinnar, and David Tarditi.
- 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
overword-based transactional memory that provides scalable
multiprocessor 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:- we introduce a new `direct access' implementation that avoids searching thread-private logs.
- we develop compiler optimizations to reduce the amount of logging (e.g. when a thread accesses the same data repeatedly in an atomic block),
- we use runtime filtering to detect duplicate log entries that are missed statically, and (
- we present a series of GC-time techniques to compact the logs generated by long-running atomic blocks.
- Full Paper
- The full paper is available as a PDF.
- Citation
-
- Bibtex Citation
-
@InProceedings{harris06, author = {Tim Harris and Mark Plesko and Avraham Shinnar and David Tarditi}, title = {Optimizing Memory Transactions}, booktitle = {Conference on Programming Language Design and Implementation}, pages = {14--25}, year = 2006, series = {ACM SIGPLAN}, month = {June} } - ACM Link
- The ACM page has more information and more citation formats.