Automatic Tuning of the Parallelism Degree in Hardware Transactional Memory

Transactional Memory (TM) is an emerging paradigm that promises to ease the development of parallel applications. Due to its inherently speculative nature, however, TM can suffer of performance degradations in presence of conflict intensive workloads.A key technique to tackle this issue consists in dynamically regulating the number of concurrent threads, which allows for selecting the concurrency level that best fits the intrinsic parallelism of specific applications. In this area, several self-tuning approaches have been proposed for Software-based implementations of TM (STM). In this paper we investigate the effectiveness of these techniques when applied to Hardware TM (HTM), a theme that is particularly relevant and timely given the recent integration of hardware supports for TM in next generation of mainstream Intel processors. Our study, conducted on Intel’s implementation of HTM, identifies several issues associated with the employment of techniques originally conceived for STM. Motivated by these findings, we propose an innovative machine learning based technique explicitly designed to take into account peculiarities of HTM systems, and demonstrate its advantages, in terms of higher accuracy and shorter learning times, using the STAMP benchmark suite.

[1]  Bruno Ciciani,et al.  Analytical/ML Mixed Approach for Concurrency Regulation in Software Transactional Memory , 2014, 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

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

[3]  Zhengyu He,et al.  Modeling the Run-time Behavior of Transactional Memory , 2010, 2010 IEEE International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[4]  Pascal Felber,et al.  Identifying the optimal level of parallelism in transactional memory applications , 2013, Computing.

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

[6]  Ronald G. Dreslinski,et al.  Proactive transaction scheduling for contention management , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[7]  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.

[8]  Rachid Guerraoui,et al.  Predicting the Scalability of an STM: A Pragmatic Approach , 2010 .

[9]  Luís E. T. Rodrigues,et al.  Virtues and limitations of commodity hardware transactional memory , 2014, 2014 23rd International Conference on Parallel Architecture and Compilation (PACT).

[10]  Rachid Guerraoui,et al.  Preventing versus curing: avoiding conflicts in transactional memories , 2009, PODC '09.

[11]  Nuno Diegues,et al.  Self-Tuning Intel Transactional Synchronization Extensions , 2014, ICAC.

[12]  Jean-François Méhaut,et al.  A machine learning-based approach for thread mapping on transactional memory applications , 2011, 2011 18th International Conference on High Performance Computing.

[13]  Adam Wierman,et al.  How to Determine a Good Multi-Programming Level for External Scheduling , 2006, 22nd International Conference on Data Engineering (ICDE'06).

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

[15]  Matthew Gaudet,et al.  Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q , 2015, IEEE Transactions on Computers.

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

[17]  Sameer Kulkarni,et al.  Towards Applying Machine Learning to Adaptive Transactional Memory , 2011 .

[18]  Roberto Palmieri,et al.  On the analytical modeling of concurrency control algorithms for Software Transactional Memories: The case of Commit-Time-Locking , 2012, Perform. Evaluation.

[19]  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.

[20]  Roberto Palmieri,et al.  Analytical modeling of lock-based concurrency control with arbitrary transaction data access patterns , 2010, WOSP/SIPEW '10.

[21]  Paolo Romano,et al.  Transactional auto scaler: elastic scaling of in-memory transactional data grids , 2012, ICAC '12.

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

[23]  Sally A. McKee,et al.  Performance and Energy Analysis of the Restricted Transactional Memory Implementation on Haswell , 2014, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[24]  Bruno Ciciani,et al.  Regulating Concurrency in Software Transactional Memory: An Effective Model-based Approach , 2013, 2013 IEEE 7th International Conference on Self-Adaptive and Self-Organizing Systems.