• Corpus ID: 15994038

Optimism for Boosting Concurrency

@article{Gramoli2012OptimismFB,
  title={Optimism for Boosting Concurrency},
  author={Vincent Gramoli and Petr Kuznetsov and Srivatsan Ravi},
  journal={arXiv: Distributed, Parallel, and Cluster Computing},
  year={2012}
}
Modern concurrent programming benefits from a large variety of synchronization techniques. These include conventional pessimistic locking, as well as optimistic techniques based on conditional synchronization primitives or transactional memory. Yet, it is unclear which of these approaches better leverage the concurrency inherent to multi-cores. In this paper, we compare the level of concurrency one can obtain by converting a sequential program into a concurrent one using optimistic or… 

Figures from this paper

On the Cost of Concurrency in Transactional Memory
TLDR
The Transactional Memory abstraction is proposed as a synchronization mechanism that relieves the programmer of the overhead of reasoning about data conflicts that may arise from concurrent operations without severely limiting the program's performance.
Think about Performance but Do Not Forget about Concurrency
TLDR
This position paper argues in favor of studying concurrency rather than performance, arguing that predicting performance requires to be an expert in concurrent algorithms, programming languages and micro-architectures.

References

SHOWING 1-10 OF 55 REFERENCES
McRT-STM: a high performance software transactional memory system for a multi-core runtime
TLDR
A software transactional memory (STM) system that is part of McRT, an experimental Multi-Core RunTime, and a detailed performance analysis of various STM design tradeoffs such as pessimistic versus optimistic concurrency, undo logging versus write buffering, and cache line based versus object based conflict detection are presented.
Apologizing versus asking permission: optimistic concurrency control for abstract data types
TLDR
Several new optimistic concurrency control techniques for objects in decentralized distributed systems are described here, their correctness and optimality properties are proved, and the circumstances under which each is likely to be useful are characterized.
On the Cost of Concurrency in Transactional Memory
TLDR
The Transactional Memory abstraction is proposed as a synchronization mechanism that relieves the programmer of the overhead of reasoning about data conflicts that may arise from concurrent operations without severely limiting the program's performance.
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.
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.
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.
The semantics of progress in lock-based transactional memory
TLDR
This paper is the first to formally define the progress semantics of lockbased TMs, which are considered the most effective in practice, and uses this semantics to reduce the problems of reasoning about the correctness and computability power of lock- based TMs to those of simple try-lock objects.
Brief announcement: transaction polymorphism
In this work, we present transaction polymorphism, a synchronization technique that consists of providing more control to the programmer than traditional (i.e., monomorphic) transactions to achieve
Lowering the Overhead of Nonblocking Software Transactional Memory
TLDR
This work considers the design of low-overhead, obstruction-free software transactional memory for non-garbage-collected languages and eliminates dynamic allocation of transactional metadata and co-locates data that are separate in other systems, thereby reducing the expected number of cache misses on the common-case code path.
NOrec: streamlining STM by abolishing ownership records
TLDR
An ownership-record-free software transactional memory (STM) system that combines extremely low overhead with unusually clean semantics is presented, and the experience suggests that NOrec may be an ideal candidate for such a software system.
...
...