Scheduling Support for Transactional Memory Contention Management

被引:20
作者
Maldonado, Walther [1 ]
Marlier, Patrick [1 ]
Felber, Pascal [1 ]
Suissa, Adi
Hendler, Danny
Fedorova, Alexandra
Lawall, Julia L.
Muller, Gilles
机构
[1] Univ Neuchatel, CH-2000 Neuchatel, Switzerland
来源
PPOPP 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING | 2010年
关键词
Transactional Memory; Scheduling; Contention Management;
D O I
10.1145/1693453.1693465
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Transactional Memory (TM) is considered as one of the most promising paradigms for developing concurrent applications. TM has been shown to scale well on multiple cores when the data access pattern behaves "well," i.e., when few conflicts are induced. In contrast, data patterns with frequent write sharing, with long transactions, or when many threads contend for a smaller number of cores, result in numerous conflicts. Until recently, TM implementations had little control of transactional threads, which remained under the supervision of the kernel's transaction-ignorant scheduler. Conflicts are thus traditionally resolved by consulting an STM-level contention manager. Consequently, the contention managers of these "conventional" TM implementations suffer from a lack of precision and often fail to ensure reasonable performance in high-contention workloads. Recently, scheduling-based TM contention-management has been proposed for increasing TM efficiency under high-contention [2, 5, 19]. However, only user-level schedulers have been considered. In this work, we propose, implement and evaluate several novel kernel-level scheduling support mechanisms for TM contention management. We also investigate different strategies for efficient communication between the kernel and the user-level TM library. To the best of our knowledge, our work is the first to investigate kernel-level support for TM contention management. We have introduced kernel-level TM scheduling support into both the Linux and Solaris kernels. Our experimental evaluation demonstrates that lightweight kernel-level scheduling support significantly reduces the number of aborts while improving transaction throughput on various workloads.
引用
收藏
页码:79 / 89
页数:11
相关论文
共 19 条
[1]  
Adl-Tabatabai A. -R., 2007, ACM Queue, V4, P24, DOI 10.1145/1189276.1189288
[2]  
Ansari M, 2009, LECT NOTES COMPUT SC, V5409, P4
[3]  
Dice D, 2006, LECT NOTES COMPUT SC, V4167, P194
[4]   CAR-STM: Scheduling-Based Collision Avoidance and Resolution for Software Transactional Memory [J].
Dolev, Shlomi ;
Hendler, Danny ;
Suissa, Adi .
PODC'08: PROCEEDINGS OF THE 27TH ANNUAL ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING, 2008, :125-134
[5]   Preventing versus Curing: Avoiding Conflicts in Transactional Memories [J].
Dragojevic, Aleksandar ;
Guerraoui, Rachid ;
Singh, Anmol V. ;
Singh, Vasu .
PODC'09: PROCEEDINGS OF THE 2009 ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING, 2009, :7-16
[6]  
Ennals R, 2006, Tech. Rep. IRC-TR-06-052
[7]   Dynamic Performance Tuning of Word-Based Software Transactional Memory [J].
Felber, Pascal ;
Fetzer, Christof ;
Riegel, Torvald .
PPOPP'08: PROCEEDINGS OF THE 2008 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING, 2008, :237-245
[8]  
Guerraoui R., 2007, Operating Systems Review, V41, P315, DOI 10.1145/1272998.1273029
[9]  
HERLIHY M., 1993, P 20 ANN INT S COMPU, P289, DOI DOI 10.1145/165123.165164.URL
[10]  
HERLIHY MP, 2003, P 23 INT F DIST COMP