Language support and compiler optimizations for STM and transactional boosting

  • Authors:
  • Guy Eddon;Maurice Herlihy

  • Affiliations:
  • Computer Science Department, Brown University, Providence, RI;Computer Science Department, Brown University, Providence, RI

  • Venue:
  • ICDCIT'07 Proceedings of the 4th international conference on Distributed computing and internet technology
  • Year:
  • 2007

Quantified Score

Hi-index 0.02

Visualization

Abstract

We describe compiler optimizations for object-based Software Transactional Memory (STM) systems designed to make STM more accessible and efficient than is possible in the context of a purely library-based approach. Current object-based STM libraries are faced with a difficult tradeoff: offer an efficient but complex programming model or, as some recent libraries have done, sacrifice efficiency for ease-of-use. In this paper, we show that this dichotomy is not necessary. Our research suggests that an STM-enabled optimizing compiler can achieve performance comparable to that of the most efficient STM algorithms coded by a programmer, while still supporting a nearly transparent programming model. We also propose novel language extensions to support transactional boosting, a powerful new technique for transforming existing linearizable objects into transactional objects, thus permitting highly concurrent objects such as those found in the java.util.concurrent package to participate in STM transactions. When applied in conjunction with compiler support, we show that transactional boosting is both a flexible and natural way to escape the standard transactional model, and thus offers a promising alternative to existing "expert" approaches, such as open nesting and early release. Based on our results, we conclude that appropriate language support and high quality compiler optimizations are necessary parts of any STM system.