Learn More
The transactional memory programming paradigm is gaining momentum as the approach of choice for replacing locks in concurrent programming. 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(More)
 As we learn from the literature, flexibility in choosing synchronization operations greatly simplifies the task of designing highly concurrent programs. Unfortunately, existing hardware is inflexible and is at best on the level of a Load–Linked/Store–Conditional operation on a single word. Building on the hardware based transactional synchronization(More)
This paper introduces a general formulation of<?Pub Fmt italic>atomic snapshot memory<?Pub Fmt /italic>, a sharedmemory partitioned into words written(<?Pub Fmt italic>updated<?Pub Fmt /italic>) by individual processes, orinstantaneously read (<?Pub Fmt italic>scanned<?Pub Fmt /italic>) in itsentirety. This paper presents three wait-free implementations of(More)
Traditional data structure designs, whether lock-based or lock-free, provide parallelism via fine grained synchronization among threads. We introduce a new synchronization paradigm based on coarse locking, which we call <i>flat combining</i>. The cost of synchronization in flat combining is so low, that having a single thread holding a lock perform the(More)
List-based implementations of sets are a fundamental building block of many concurrent algorithms. A skiplist based on the lock-free list-based set algorithm of Michael will be included in the Java Concurrency Package of JDK 1.6.0. However, Michael’s lock-free algorithm has several drawbacks, most notably that it requires all list traversal operations,(More)
Many fundamental multi-processor coordination problems can be expressed as <italic>counting problems</italic>: Processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and(More)
In this paper we present a complete Java STM framework, called Deuce, intended as a platform for developing scalable concurrent applications and as a research tool for designing new STM algorithms. It was not clear if one could build an e cient Java STM without compiler support. Deuce provides several bene ts over existing Java STM frameworks: it avoids any(More)