AbstractsComputer Science

Preserving the appeal of transactional programming

by Luke K. Dalessandro




Institution: University of Rochester
Department:
Degree: PhD
Year: 2014
Keywords: Concurrent programming; Parallel programming; Programming languages; Transactional memory
Record ID: 2045405
Full text PDF: http://hdl.handle.net/1802/28283


Abstract

Transactional Memory (TM) promises a unique combination of safety, convenience, and scalability for synchronization in parallel programs. Programs are annotated with transactions designating regions of code that must execute atomically, and the TM implementation is responsible for guaranteeing this property. Scalable TM implementations will be speculative, executing transactions concurrently where possible and transparently suppressing those that conflict, while guaranteeing that the history of committed transactions is serializable. Recently, practical language integration issues, e.g., publication and privatization, explicit speculation, and interoperability with traditional synchronization, have threatened to erode much of the simplicity that originally made transactional programming appealing. </br> In this thesis we preserve the appeal of transactional programming in practical language settings through wholesale replacement of the traditional memory consistency model with strict serializability (SS)—a transactional memory consistency model derived from the database semantics of the same name. We develop NOrec, a low overhead and moderately scalable software TM that supports SS. We develop and test a novel hybrid TM strategy that pairs NOrec with “best-effort” hardware TM in order to scalably support SS on limited hardware. Finally, we implement a novel sandboxing system that simplifies existing software TMs and enables TM implementations that were not previously viable. We conclude that it is possible to address the practical concerns with language integration without sacrificing the elegant simplicity of transactional programming.