On the Cost of Concurrency in Transactional Memory

@article{Kuznetsov2011OnTC,
  title={On the Cost of Concurrency in Transactional Memory},
  author={Petr Kuznetsov and Srivatsan Ravi},
  journal={ArXiv},
  year={2011},
  volume={abs/1103.1302}
}
Traditional techniques for synchronization are based on \emph{locking} that provides threads with exclusive access to shared data. \emph{Coarse-grained} locking typically forces threads to access large amounts of data sequentially and, thus, does not fully exploit hardware concurrency. Program-specific \emph{fine-grained} locking or \emph{non-blocking} (\emph{i.e.}, not using locks) synchronization, on the other hand, is a dark art to most programmers and trusted to the wisdom of a few… 
On improving the ease of use of the software transactional memory abstraction. (Faciliter l'utilisation des mémoires transactionnelles logicielles)
TLDR
This thesis starts with a chapter giving a brief overview of software transactional memory (STM) as well as a discussion of the problem of ease of use that is focused on in the later chapters.
Optimism for Boosting Concurrency
TLDR
This paper compares the level of concurrency one can obtain by converting a sequential program into a concurrent one using optimistic or pessimistic techniques, and proposes a list-based set algorithm that is optimal in the sense that it accepts all correct concurrent schedules.
Efficient means of Achieving Composability using Transactional Memory
TLDR
Object-based STMs or OSTMs which operate on higher level objects rather than read/write operations on memory buffers and hence denoted RWSTMs are considered, which could be an efficient means of achieving composability of higher-level operations in the software applications using the concurrent data structures.
Sharing a Sequential Data Structure : Correctness Definition and Concurrency Analysis ∗
TLDR
The very meaning of a correct transformation of a sequential program into a concurrent one is defined, which is an execution of a concurrent implementation as a sequence of invocations and responses of the high-level parts of the sequential code.
Review of Nesting in Transactional Memory
TLDR
This work describes how it may still reduce the time to execute a highly-contending write dominated workload despite the inherent conflicts that arise in it and expects to provide an adaptation of a lock-free and multi-version STM, the JVSTM, to use a parallel nesting model that allows the aforementioned flexibility.
Inherent limitations of hybrid transactional memory
TLDR
A general model for HyTM implementations, which captures the ability of hardware transactions to buffer memory accesses and captures for the first time the trade-off between the degree of hardware-software TM concurrency and the amount of instrumentation overhead.
Why Transactional Memory Should Not Be Obstruction-Free
TLDR
This paper explains the shift in the TM practice theoretically, via complexity bounds, and proves a few important lower bounds on obstruction-free TMs, and presents a lock-based TM implementation that beats all of these lower bounds.
Grasping the gap between blocking and non-blocking transactional memories
On Non-Interference and Locality in Transactional Memory
TLDR
A simple though efficient implementation is proposed that satisfies non-interference and local opacity, a novel correctness criterion that is interesting in its own right and captures the safety semantics of opacity: aborted transactions do not witness inconsistent states.
Progressive Transactional Memory in Time and Space
TLDR
It is shown that the total number of remote memory references RMRs that take place in an execution of a progressive TM in which n concurrent processes perform transactions on a single data item might reach $$\varOmega n \log n$$, which appears to be the first RMR complexity lower bound for transactional memory.
...
...

References

SHOWING 1-10 OF 173 REFERENCES
Software transactional memory
TLDR
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, and outperforms Herlihy’s translation method for sufficiently large numbers of processors.
Inherent Limitations on Disjoint-Access Parallel Implementations of Transactional Memory
TLDR
A lower bound of Ω(t) is proved on the number of writes needed in order to implement a read-only transaction of t items, which successfully terminates in a disjoint-access parallel TM implementation, which assumes strict serializability and thus hold under the assumption of opacity.
Transactional Memory, 2nd edition
TLDR
This book presents an overview of the state of the art in the design and implementation of transactional memory systems, as of early spring 2010.
Principles of Transactional Memory
TLDR
The aim of this book is to provide theoretical foundations for transactional memory, as well as answering precisely when a TM implementation is correct, what kind of properties it can ensure, what are the power and limitations of a TM, and what inherent trade-offs are involved in designing a TM algorithm.
Optimism for Boosting Concurrency
TLDR
This paper compares the level of concurrency one can obtain by converting a sequential program into a concurrent one using optimistic or pessimistic techniques, and proposes a list-based set algorithm that is optimal in the sense that it accepts all correct concurrent schedules.
Pessimistic Software Lock-Elision
TLDR
Pessimistic lock-elision (PLE), a new approach for non-speculatively replacing read-write locks with pessimistic software transactional code that allows read- write concurrency even for contended code and even if the code includes system calls, is introduced.
The Cost of Privatization in Software Transactional Memory
TLDR
It is shown that a transaction privatizing k items must have a data set of size at least k, in an STM with invisible reads, which is oblivious to different nonconflicting executions and guarantees progress in such executions.
Transactional Memory: Architectural Support For Lock-free Data Structures
  • M. Herlihy, J. Moss
  • Computer Science
    Proceedings of the 20th Annual International Symposium on Computer Architecture
  • 1993
TLDR
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.
Transactional Locking II
TLDR
This paper introduces the transactional locking II (TL2) algorithm, a software transactional memory (STM) algorithm based on a combination of commit-time locking and a novel global version-clock based validation technique, which is ten-fold faster than a single lock.
Sharing a Sequential Data Structure : Correctness Definition and Concurrency Analysis ∗
TLDR
The very meaning of a correct transformation of a sequential program into a concurrent one is defined, which is an execution of a concurrent implementation as a sequence of invocations and responses of the high-level parts of the sequential code.
...
...