Adaptive Model-Based Scheduling in Software Transactional Memory

Software Transactional Memory (STM) stands as powerful concurrent programming paradigm, enabling atomicity, and isolation while accessing shared data. On the downside, STM may suffer from performance degradation due to excessive conflicts among concurrent transactions, which cause waste of CPU-cycles and energy because of transaction aborts. An approach to cope with this issue consists of putting in place smart scheduling strategies which temporarily suspend the execution of some transaction in order to reduce the transaction conflict rate. In this article, we present an adaptive model-based transaction scheduling technique relying on a Markov Chain-based performance model of STM systems. Our scheduling technique is adaptive in a twofold sense: (i) It controls the execution of transactions depending on throughput predictions by the model as a function of the current system state. (ii) It re-tunes on-line the Markov Chain-based model to adapt it—and the outcoming transaction scheduling decisions—to dynamic variations of the workload. We have been able to achieve the latter target thanks to the fact that our performance model is extremely lightweight. In fact, to be recomputed, it requires a reduced set of input parameters, whose values can be estimated via a few on-line samples related to the current workload dynamics. We also present a scheduler that implements our adaptive technique, which we integrated within the open source TinySTM package. Further, we report the results of an experimental study based on the STAMP benchmark suite, which has been aimed at assessing both the accuracy of our performance model in predicting the actual system throughput and the advantages of the adaptive scheduling policy over literature techniques.

[1]  Guido Araujo,et al.  Transaction Scheduling Using Dynamic Conflict Avoidance , 2012, International Journal of Parallel Programming.

[2]  Yujie Liu,et al.  STAMP Need Not Be Considered Harmful , 2014 .

[3]  Pierangelo di Sanzo,et al.  Analysis, Classification and Comparison of Scheduling Techniques for Software Transactional Memories , 2017, IEEE Transactions on Parallel and Distributed Systems.

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

[5]  Bruno Ciciani,et al.  Dynamic Feature Selection for Machine-Learning Based Concurrency Regulation in STM , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[6]  Armin Heindl,et al.  An Analytic Model for Optimistic STM with Lazy Locking , 2009, ASMTA.

[7]  Danny Hendler,et al.  CAR-STM: scheduling-based collision avoidance and resolution for software transactional memory , 2008, PODC '08.

[8]  S. Wittevrongel,et al.  Queueing Systems , 2019, Introduction to Stochastic Processes and Simulation.

[9]  Santosh Pande,et al.  F2C2-STM: Flux-Based Feedback-Driven Concurrency Control for STMs , 2014, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[10]  Hugo Rito,et al.  Adaptive transaction scheduling for mixed transactional workloads , 2015, Parallel Comput..

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

[12]  Mohammad Ansari,et al.  Steal-on-abort: Dynamic Transaction Reordering to Reduce Conflicts in Transactional Memory , 2008 .

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

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

[15]  Bruno Ciciani,et al.  Machine learning-based thread-parallelism regulation in software transactional memory , 2017, J. Parallel Distributed Comput..

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

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

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

[19]  Zhengyu He,et al.  An Analytical Model on the Execution of Transactional Memory , 2010, 2010 22nd International Symposium on Computer Architecture and High Performance Computing.

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

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

[22]  M. Luján,et al.  Adaptive Concurrency Control for Transactional Memory , 2007 .

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

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

[25]  Cho-Li Wang,et al.  Adaptive Thread Scheduling Techniques for Improving Scalability of Software Transactional Memory , 2011 .

[26]  Philip S. Yu,et al.  On the analytical modeling of database concurrency control , 1993, JACM.