A Study of Conflict Detection in Software Transactional Memory

A Study of Conflict Detection in Software Transactional Memory Daniel Lupei Master of Applied Science Graduate Department of Electrical and Computer Engineering University of Toronto 2009 Transactional Memory (TM) has been proposed as a simpler parallel programming model compared to the traditional locking model. However, uptake from the programming community has been slow, primarily because performance issues of software-based TM strategies are not well understood. In this thesis we conduct a systematic analysis of conflict scenarios that may emerge when enforcing correctness between conflicting transactions. We find that some combinations of conflict detection and resolution strategies perform better than others depending on the conflict patterns in the application. We validate our findings by implementing several concurrency control strategies, and by measuring their relative performance. Based on these observations, we introduce partial rollbacks as a mechanism for effectively compensating the variability in the TM algorithm performance. We show that using this mechanism we can obtain close to the overall best performance for a range of conflict patterns in a synthetically generated workload and a realistic game application.

[1]  Keir Fraser,et al.  Concurrent programming without locks , 2007, TOCS.

[2]  Bratin Saha,et al.  McRT-STM: a high performance software transactional memory system for a multi-core runtime , 2006, PPoPP '06.

[3]  Michael F. Spear,et al.  Conflict Detection and Validation Strategies for Software Transactional Memory , 2006, DISC.

[4]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[5]  Nir Shavit,et al.  Understanding Tradeoffs in Software Transactional Memory , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[6]  Torvald Riegel,et al.  Time-based transactional memory with scalable time bases , 2007, SPAA '07.

[7]  Darko Stefanovic,et al.  A comparative performance evaluation of write barrier implementation , 1992, OOPSLA.

[8]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[9]  Rachid Guerraoui,et al.  Polymorphic Contention Management , 2005, DISC.

[10]  William N. Scherer,et al.  Advanced contention management for dynamic software transactional memory , 2005, PODC '05.

[11]  Robert Ennals Software Transactional Memory Should Not Be Obstruction-Free , 2005 .

[12]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[13]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[14]  Torvald Riegel,et al.  Dynamic performance tuning of word-based software transactional memory , 2008, PPoPP.

[15]  Rachid Guerraoui,et al.  Toward a theory of transactional contention managers , 2005, PODC '05.

[16]  Rachid Guerraoui,et al.  Stretching transactional memory , 2009, PLDI '09.

[17]  Michael L. Scott Sequential Specification of Transactional Memory Semantics , 2006 .

[18]  David Eisenstat,et al.  Lowering the Overhead of Nonblocking Software Transactional Memory , 2006 .

[19]  Per Stenström,et al.  Intermediate checkpointing with conflicting access prediction in transactional memory systems , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[20]  Torvald Riegel,et al.  A Lazy Snapshot Algorithm with Eager Validation , 2006, DISC.

[21]  Marek Olszewski,et al.  JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[22]  Maurice Herlihy,et al.  Checkpoints and continuations instead of nested transactions , 2008, SPAA '08.

[23]  U. Aydonat Serializability of Transactions in Software Transactional Memory , 2008 .

[24]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[25]  Brian T. Lewis,et al.  Compiler and runtime support for efficient software transactional memory , 2006, PLDI '06.

[26]  Rachid Guerraoui,et al.  On the correctness of transactional memory , 2008, PPoPP.

[27]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.