Proceedings ArticleDOI
STM in the small: trading generality for performance in software transactional memory
Aleksandar Dragojevic,Tim Harris +1 more
- pp 1-14
TLDR
A specialized STM system that allows the program to express additional knowledge about the particular operations being performed by transactions e.g., using a separate API to write transactions that access small, fixed, numbers of memory locations is presented.Abstract:
Data structures implemented using software transactional memory (STM) have a reputation for being much slower than data structures implemented directly from low-level primitives such as atomic compare-and-swap (CAS). In this paper we present a specialized STM system (SpecTM) that allows the program to express additional knowledge about the particular operations being performed by transactions e.g., using a separate API to write transactions that access small, fixed, numbers of memory locations. We show that data structures implemented using SpecTM offer essentially the same performance and scalability as implementations built directly from CAS. We present results using hash tables and skip lists on machines with up to 8 sockets and up to 128 hardware threads. Specialized transactions can be mixed with normal transactions, allowing fast-path operations to be specialized for greater performance, while allowing less common cases to be expressed using normal transactions for simplicity. We believe that SpecTM provides a "sweet spot" for expert programmers developing scalable data structures.read more
Citations
More filters
Proceedings ArticleDOI
Type-aware transactions for faster concurrent code
Nathaniel Herman,Jeevana Priya Inala,Yihe Huang,Lillian Tsai,Eddie Kohler,Barbara Liskov,Liuba Shrira +6 more
TL;DR: A new software transactional memory (STM) is built that tracks abstract operations on transactional datatypes' implementations, which can use datatype semantics, and new commit protocol features, to reduce bookkeeping, limit false conflicts, and implement efficient concurrency control.
Proceedings ArticleDOI
The SkipTrie: low-depth concurrent search without rebalancing
Rotem Oshman,Nir Shavit +1 more
TL;DR: This paper introduces the SkipTrie, a new concurrent search structure supporting predecessor queries in amortized expected O(log log u + c) steps, insertions and deletions in O(c log log u), and using O(m) space, where u is the size of the key space and c is the contention during the recent past.
Proceedings ArticleDOI
Optimistic concurrency with OPTIK
TL;DR: The OPTIK pattern is introduced, a new practical design pattern for designing and implementing fast and scalable concurrent data structures and its implementation is illustrated by introducing four new algorithms and by optimizing four state-of-the-art algorithms for linked lists, skip lists, hash tables, and queues.
Proceedings ArticleDOI
Multi-resource Real-Time Reader/Writer Locks for Multiprocessors
Bryan C. Ward,James H. Anderson +1 more
TL;DR: These evaluations demonstrate that the RNLP (both the mutex and the proposed reader/writer variant) provides improved schedulability over existing coarse-grained locking protocols, and is practically implementable.
Journal ArticleDOI
A skip list for multicore
TL;DR: The Rotating skip list is introduced, the fastest concurrent skip list to date, which combines the rotation of a tree to maintain logarithmic complexity deterministically, a skip list structure to avoid the tree root bottleneck, and no locks to limit cache line bouncing.
References
More filters
Journal ArticleDOI
Linearizability: a correctness condition for concurrent objects
TL;DR: This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.
Proceedings ArticleDOI
Transactional memory: architectural support for lock-free data structures
Maurice Herlihy,J. Eliot B. Moss +1 more
TL;DR: Simulation results show that transactional memory matches or outperforms the best known locking techniques for simple benchmarks, even in the absence of priority inversion, convoying, and deadlock.
Proceedings ArticleDOI
Software transactional memory
Nir N. Shavit,Dan Touitou +1 more
TL;DR: STM is used to provide a general highly concurrent method for translating sequential object implementations to non-blocking ones based on implementing a k-word compare&swap STM-transaction, a novel software method for supporting flexible transactional programming of synchronization operations.
Book
The Art of Multiprocessor Programming
TL;DR: Transactional memory as discussed by the authors is a computational model in which threads synchronize by optimistic, lock-free transactions, and there is a growing community of researchers working on both software and hardware support for this approach.
Proceedings ArticleDOI
Software transactional memory for dynamic-sized data structures
TL;DR: A new form of software transactional memory designed to support dynamic-sized data structures, and a novel non-blocking implementation of this STM that uses modular contention managers to ensure progress in practice.