@gron

Low-overhead Software Transactional Memory with Progress Guarantees and Strong Semantics

, , , and . Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, page 97--108. ACM, (2015)
DOI: 10.1145/2688500.2688510

Abstract

Software transactional memory offers an appealing alternative to locks by improving programmability, reliability, and scalability. However, existing STMs are impractical because they add high instrumentation costs and often provide weak progress guarantees and/or semantics. This paper introduces a novel STM called LarkTM that provides three significant features. (1) Its instrumentation adds low overhead except when accesses actually conflict, enabling low single-thread overhead and scaling well on low-contention workloads. (2) It uses eager concurrency control mechanisms, yet naturally supports flexible conflict resolution, enabling strong progress guarantees. (3) It naturally provides strong atomicity semantics at low cost. LarkTM's design works well for low-contention workloads, but adds significant overhead under higher contention, so we design an adaptive version of LarkTM that uses alternative concurrency control for high-contention objects. An implementation and evaluation in a Java virtual machine show that the basic and adaptive versions of LarkTM not only provide low single-thread overhead, but their multithreaded performance compares favorably with existing high-performance STMs.

Description

Low-overhead software transactional memory with progress guarantees and strong semantics

Links and resources

Tags

community

  • @sunjae0802
  • @gron
  • @dblp
@gron's tags highlighted