Lightweight, robust adaptivity for software transactional memory
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Cooperative reasoning for preemptive execution
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Hybrid binary rewriting for memory access instrumentation
Proceedings of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Leveraging data-structure semantics for efficient algorithmic parallelism
Proceedings of the 8th ACM International Conference on Computing Frontiers
A transactional memory with automatic performance tuning
ACM Transactions on Architecture and Code Optimization (TACO) - HIPEAC Papers
Weak atomicity for the x86 memory consistency model
Journal of Parallel and Distributed Computing
Restricted admission control in view-oriented transactional memory
The Journal of Supercomputing
FastLane: improving performance of software transactional memory for low thread counts
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the 27th international ACM conference on International conference on supercomputing
Tightfit: adaptive parallelization with foresight
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Performance evaluation of View-Oriented Transactional Memory
Parallel Computing
Hi-index | 0.00 |
Transactional memory is being advanced as an alternative to traditional lock-based synchronization for concurrent programming. Transactional memory simplifies the programming model and maximizes concurrency. At the same time, transactions can suffer from interference that causes them to often abort, from heavy overheads for memory accesses, and from expressiveness limitations (e.g., for I/O operations). In this paper we propose an adaptive locking technique that dynamically observes whether a critical section would be best executed transactionally or while holding a mutex lock. The critical new elements of our approach include the adaptivity logic and cost-benefit analysis, a low overhead implementation of statistics collection and adaptive locking in a full C compiler, and an exposition of the effects on the programming model. In experiments with both microand macro-benchmarks we found adaptive locks to consistently match or out perform the better of the two component mechanisms (mutexes or transactions). Compared to either mechanism alone, adaptive locks often provide 3-to-10x speedups. Additionally, adaptive locks simplify the programming model by reducing the need for fine-grained locking: with adaptive locks, the programmer can specify coarse-grained locking annotations and often achieve fine-grained locking performance due to the transactional memory mechanisms.