Language Support and Compiler Optimizations for STM and Transactional Boosting [chapter]

Guy Eddon, Maurice Herlihy
Distributed Computing and Internet Technology  
Modern multicore processors, such as Intel's Core 2 Duo, bring urgency to parallel programming research, which, despite several decades of work, has not changed much since the advent of mutual exclusion in the 1960s. Software Transactional Memory (STM) is a promising alternative that borrows heavily from the database community to propose a transactional approach to program state. By optimistically assuming that most computations executed in parallel do not conflict and then detecting and
more » ... ting those few computations that do, STM provides the basis for new programming language abstractions that permit programmers to think linearly while the code they write is safely executed in parallel. The difficulty with today's STM libraries, however, is their generally poor performance and convoluted programming model. In order to make STMs more popular, accessible, and functional, this thesis argues that three things must happen: first, a streamlined programming model can hide all complex details of the STM library from the programmer; second, static analysis can optimize the client code's interaction with the underlying STM; third, the STM library itself should be decomposed and optimized for use by an optimizing compiler. Together, we show that these optimizations achieve an order of magnitude performance improvement. As part of this work, we develop four nonblocking transaction synchronization and validation algorithms designed for use in STM systems, all of which support a nonblocking progress condition called obstruction-freedom, provide always consistent reads, and integrate orthogonal contention management. Finally, we propose the first language extensions and compiler support for transactional boosting, a methodology for transforming highly concurrent linearizable objects into highly concurrent transactional objects. Based on these results, we conclude that appropriate language support and high quality compiler optimizations are necessary for the success of any STM system. v
doi:10.1007/978-3-540-77115-9_22 dblp:conf/icdcit/EddonH07 fatcat:3gcd6qosbvfcrfme7g5rmfkmge