Transparent Support for Partial Rollback in Software Transactional Memories

The Software Transactional Memory (STM) paradigm has gained momentum thanks to its ability to provide synchronization transparency in concurrent applications. With this paradigm, accesses to data structures that are shared among multiple threads are carried out within transactions, which are properly handled by the STM layer with no intervention by the application code. In this article we propose an enhancement of typical STM architectures which allows supporting partial rollback of active transactions, as opposed to the typical case where a rollback of a transaction entails squashing all the already-performed work. Our partial rollback scheme is still transparent to the application programmer and has been implemented for x86-64 architectures and for the ELF format, thus being largely usable on POSIX-compliant systems hosted on top of off-the-shelf architectures. We integrated it within the TinySTM open-source library and we present experimental results for the STAMP STM benchmark run on top of a 32-core HP ProLiant server.

[1]  Emilio Luque,et al.  Euro-Par 2008 - Parallel Processing, 14th International Euro-Par Conference, Las Palmas de Gran Canaria, Spain, August 26-29, 2008, Proceedings , 2008, Euro-Par.

[2]  Kunle Olukotun,et al.  STAMP: Stanford Transactional Applications for Multi-Processing , 2008, 2008 IEEE International Symposium on Workload Characterization.

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

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

[5]  Daniel Lupei A Study of Conflict Detection in Software Transactional Memory , 2010 .

[6]  Kamaldeep Kaur,et al.  Soft Computing Approaches for Prediction of Software Maintenance Effort , 2010 .

[7]  Mikel Luján,et al.  Advanced Concurrency Control for Transactional Memory Using Transaction Commit Rate , 2008, Euro-Par.

[8]  Viktor K. Prasanna,et al.  High Performance Computing - HiPC 2005, 12th International Conference, Goa, India, December 18-21, 2005, Proceedings , 2005, HiPC.

[9]  Monika Gupta,et al.  Clustered Checkpointing and Partial Rollbacks for Reducing Conflict Costs in STMs , 2010 .

[10]  Michael F. Spear,et al.  A comprehensive strategy for contention management in software transactional memory , 2009, PPoPP '09.

[11]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[12]  James C. Bezdek,et al.  Pattern Recognition with Fuzzy Objective Function Algorithms , 1981, Advanced Applications in Pattern Recognition.

[13]  Hsien-Hsin S. Lee,et al.  Adaptive transaction scheduling for transactional memory systems , 2008, SPAA '08.

[14]  Alessandro Pellegrini,et al.  Hijacker: Efficient static software instrumentation with applications in high performance computing: Poster paper , 2013, 2013 International Conference on High Performance Computing & Simulation (HPCS).

[15]  Victor Luchangco,et al.  Anatomy of a Scalable Software Transactional Memory , 2009 .

[16]  Bruno Ciciani,et al.  Machine Learning-Based Self-Adjusting Concurrency in Software Transactional Memory Systems , 2012, 2012 IEEE 20th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

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

[18]  Roberto Vitali,et al.  Di-DyMeLoR: Logging only Dirty Chunks for Efficient Management of Dynamic Memory Based Optimistic Simulation Objects , 2009, 2009 ACM/IEEE/SCS 23rd Workshop on Principles of Advanced and Distributed Simulation.

[19]  David A. Bader,et al.  Design and Implementation of the HPCS Graph Analysis Benchmark on Symmetric Multiprocessors , 2005, HiPC.

[20]  Francesco Quaglia,et al.  Transparent State Management for Optimistic Synchronization in the High Level Architecture , 2006, Simul..