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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference26 articles.
1. An efficient meta-lock for implementing ubiquitous synchronization
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. 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. Thin locks
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Hybridizing and Relaxing Dependence Tracking for Efficient Parallel Runtime Support;ACM Transactions on Parallel Computing;2017-10-10
2. Thread-level speculation with kernel support;Proceedings of the 25th International Conference on Compiler Construction;2016-03-17
3. Atomicity failure and the retrenchment atomicity pattern;Formal Aspects of Computing;2013-05
4. A transactional runtime system for the Cell/BE architecture;Journal of Parallel and Distributed Computing;2012-12
5. Lowering STM Overhead with Static Analysis;Languages and Compilers for Parallel Computing;2011