• Corpus ID: 14243589

Lowering the Overhead of Nonblocking Software Transactional Memory

  title={Lowering the Overhead of Nonblocking Software Transactional Memory},
  author={Virendra J. Marathe and Michael F. Spear and Christopher Heriot and Athul Acharya and David Eisenstat and William N. Scherer and Michael L. Scott},
Recent years have seen the development of several dierent systems for software transactional memory (STM). Most either employ locks in the underlying implementation or depend on thread-safe general-purpose garbage collection to collect stale data and metadata. We consider the design of low-overhead, obstruction-free software transactional memory for non-garbage-collected languages. Our design eliminates dynamic allocation of transactional metadata and co-locates data that are separate in other… 

Reducing Memory Ordering Overheads in Software Transactional Memory

This work proposes compiler optimizations that can safely eliminate many fence instructions and obtains a reduction of up to 89% in the number of fences, and 20% in per-transaction latency, for common transactional benchmarks.

Toward high performance nonblocking software transactional memory

This work describes the most important techniques and optimizations emerging from the recent work on blocking STMs into several variants of a nonblocking STM, based on the philosophy of keeping the common, contention free execution path as simple (consequently fast) as possible, while resorting to the more expensive data displacement and metadata management only in situations where transactions have problems making forward progress.

Hybrid Transactional Memory with Pessimistic Concurrency Control

Transactional Memory (TM) intends to simplify the design and implementation of the shared-memory data structures used in parallel software. Many Software TM systems are based on writer-locks to

Hybrid transactional memory to accelerate safe lock-based transactions

This approach is the first Hy-TM to combine three desirable features: execution whether or not the architectural support is present, execution of a single common code path, and immunity, for correctly synchronized programs, from the “privatization” problem.

TrC-MC: Decentralized Software Transactional Memory for Multi-multicore Computers

  • K. ChanCho-Li Wang
  • Computer Science
    2011 IEEE 17th International Conference on Parallel and Distributed Systems
  • 2011
This paper applies two design changes, namely zone partitioning and timestamp extension, to optimize an existing decentralized algorithm and finds it as much as several times faster than the state-of-the-art software transactional memory system.

An effective hybrid transactional memory system with strong isolation guarantees

For certain workloads, SigTM can match the performance of a full-featured hardware TM system, while for workloads with large read-sets it can be up to two times slower.

Anatomy of a Scalable Software Transactional Memory

SkySTM is the first STM that supports privatization and scales on modern multicore multiprocessors with hundreds of hardware threads on multiple chips, and uses a scalable nonzero indicator (SNZI), which was designed for this purpose.

RingSTM: scalable transactions with a single atomic instruction

The RingSTM system is the first STM that is inherently livelock-free and privatization-safe while at the same time permitting parallel writeback by concurrent disjoint transactions.

On Improving Transactional Memory: Optimistic Transactional Boosting, Remote Execution, and Hybrid Transactions

This dissertation designs an optimistic methodology for transactional boosting to specifically enhance the performance of the transactional data structures, and proposes a hybrid TM solution which exploits the new HTM features of the currently released Intel's Haswell processor.

Lightweight, robust adaptivity for software transactional memory

This work presents a low-overhead system for adapting between STM implementations, which enables adaptivity between different parameterizations of a given algorithm, and it allows adapting between the use of transactions and coarse-grained locks.



Design tradeoffs in modern software transactional memory systems

This paper compares and analyzes two recent object-based STM systems, the DSTM of Herlihy et al. and the FSTm of Fraser, both of which support dynamic transactions, in which the set of objects to be modified is not known in advance.

Advanced contention management for dynamic software transactional memory

This work considers both visible and invisible versions of read access, and benchmarks that vary in complexity, level of contention, tendency toward circular dependence, and mix of reads and writes, and identifies a candidate default policy.

Contention Management in Dynamic Software Transactional Memory ∗

This work considers the Java-based obstruction-free Dynamic Software Transaction Memory (DSTM) system of Herlihy et al, introduces several novel policies for contention management, and evaluates their performance on a variety of benchmarks.

Hardware Acceleration of Software Transactional Memory

RTM is presented, in which hardware is used to accelerate a TM implementation controlled fundamentally by software, and allows for a wide variety of policies for contention management, deadlock and livelock avoidance, data granularity, nesting, and virtualization.

Virtualizing transactional memory

This paper proposes virtual transactional memory (VTM), a user-transparent system that shields the programmer from various platform-specific resource limitations and maintains the performance advantage of hardware transactions, incurs low overhead in time, and has modest costs in hardware support.

Robust Contention Management in Software Transactional Memory

FTGreedy, a new contention manager that is able to cope with faulty transactions, is introduced, which has good performance in the face of failures, and provable worst case properties even if transactions can fail, as long as the system features some synchrony assumptions.

Software transactional memory for dynamic-sized data structures

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.

Transactional lock-free execution of lock-based programs

This paper proposes Transactional Lock Removal (TLR) and shows how a program that uses lock-based synchronization can be executed by the hardware in a lock-free manner, even in the presence of conflicts, without programmer support or software changes.

McRT-STM: a high performance software transactional memory system for a multi-core runtime

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.

LogTM: log-based transactional memory

This paper presents a new implementation of transactional memory, log-based transactionalMemory (LogTM), that makes commits fast by storing old values to a per-thread log in cacheable virtual memory and storing new values in place.