scispace - formally typeset
Proceedings ArticleDOI

Enforcing isolation and ordering in STM

Reads0
Chats0
TLDR
The results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system and introduces a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely.
Abstract
Transactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can result in unexpected, implementation-dependent behavior. To guarantee isolation and consistent ordering in such a system, programmers are expected to enclose all shared-memory accesses inside transactions.A system that provides strong atomicity guarantees isolation even in the presence of threads that access shared data outside transactions. A strongly-atomic system also orders transactions with conflicting non-transactional memory operations in a consistent manner.In this paper, we discuss some surprising pitfalls of weak atomicity, and we present an STM system that avoids these problems via strong atomicity. We demonstrate how to implement non-transactional data accesses via efficient read and write barriers, and we present compiler optimizations that further reduce the overheads of these barriers. We introduce a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely. Our results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system.

read more

Content maybe subject to copyright    Report

Citations
More filters

Towards consistency oblivious programming

TL;DR: The 15th International Conference on OPODIS 2011, Toulouse, France, December 13-16, 2011 as mentioned in this paper, was the first one to address the problem of OPODIs 2011.

Towards Transactional Memory Support for GCC

TL;DR: The design of a transactional memory extension for GCC is described, and research challenges and perspectives enabled by this design are highlighted.
Book ChapterDOI

Lowering STM overhead with static analysis

TL;DR: It is described how static analysis and code motion algorithms can detect sources of sub-optimal instrumentation, and enable compile-time optimizations that significantly reduce the instrumentation overhead in many common cases.
Proceedings ArticleDOI

Enhanced speculative parallelization via incremental recovery

TL;DR: An approach for incremental recovery in which, instead of discarding all of the results and reexecuting the speculative computation in its entirety, the computation is restarted from the earliest point at which a misspeculation causing value is read.
Book ChapterDOI

A Model of Dynamic Separation for Transactional Memory

TL;DR: This work provides a precise formulation of dynamic separation and compares it with other programming disciplines and investigates some possible implementations of the calculus and establishes their correctness.
References
More filters
Book

Transaction Processing: Concepts and Techniques

Jim Gray, +1 more
TL;DR: Using transactions as a unifying conceptual framework, the authors show how to build high-performance distributed systems and high-availability applications with finite budgets and risk.
Proceedings ArticleDOI

Transactional memory: architectural support for lock-free data structures

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.
Journal ArticleDOI

On optimistic methods for concurrency control

TL;DR: In this paper, two families of non-locking concurrency controls are presented, which are optimistic in the sense that they rely mainly on transaction backup as a control mechanism, "hoping" that conflicts between transactions will not occur.
Proceedings ArticleDOI

X10: an object-oriented approach to non-uniform cluster computing

TL;DR: A modern object-oriented programming language, X10, is designed for high performance, high productivity programming of NUCC systems and an overview of the X10 programming model and language, experience with the reference implementation, and results from some initial productivity comparisons between the X 10 and Java™ languages are presented.
Proceedings ArticleDOI

Software transactional memory

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.