A Dynamic Instrumentation Approach to Software Transactional Memory

Marek Olszewski · TSpace (University of Toronto) · 2007

With the advent of chip-multiprocessors, we are faced with the challenge of parallelizing performance-critical software. Transactional memory has been proposed as a promising programming model, with software implementations (STMs) being especially compelling for today's use. However, in addition to high overheads, existing STMs are limited to either managed languages or intrusive APIs. Furthermore, transactions in STMs cannot normally contain calls to unobservable code such as shared libraries or system calls. In this dissertation we present JudoSTM, a novel dynamic binary-rewriting approach to implementing STM that supports C and C++ code. By using value-based conflict detection, JudoSTM additionally supports the transactional execution of both (i) irreversible system calls and (ii) code that contains locks. We lower overhead through several novel optimizations that improve invisible-reader and validate/commit performance. We show that our approach performs comparably to RSTM—demonstrating that a dynamic binary-rewriting approach to implementing STM is an interesting alternative.

Read the paper · More papers on PaperTik