CAR-STM: Scheduling-Based Collision Avoidance and Resolution for Software Transactional Memory

被引:61
作者
Dolev, Shlomi [1 ]
Hendler, Danny [1 ]
Suissa, Adi [1 ]
机构
[1] Ben Gurion Univ Negev, Dept Comp Sci, IL-84105 Beer Sheva, Israel
来源
PODC'08: PROCEEDINGS OF THE 27TH ANNUAL ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING | 2008年
关键词
transactional memory; contention management; synchronization; collision avoidance and reduction; scheduling;
D O I
10.1145/1400751.1400769
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Transactional memory (TM) is a key concurrent programming abstraction. Several soft ware-based transactional memory (STM) implementations have been developed in recent years. All STM implementations must guarantee transaction atomicity but different STM implementations may provide different progress guarantees. In order to ensure progress, an STM implementation must resolve transaction conflicts. This is done either by the implementation itself or by delegating conflict, resolution to a, separate contention manager, module that tries to resolve transaction collisions once they are detected. We present CAR-STM, a scheduling-based mechanism for STM Collision Avoidance and Resolution, that can be incorporated into existing STM implementations. CAR-STM maintains per-core transaction queues and schedules a thread while it is performing a transaction. CAR-STM employs the following two novel collision reduction techniques: (1) serializing contention managers resolve conflicts by aborting one transaction and moving it to the transactions queue of the other, effectively serializing the execution of these transactions and ensuring they will not collide again. (2) Proactive collision reduction allows applications to provide information about transactions' collision-probability. CAR-STM uses this information to pre-assign transactions that, more likely to collide to the same core. We have incorporated CAR-STM into the University of Rochester's STM (RSTM) and compared the performance of our new implementation with that of the original RSTM by using STMBench7. Our results show that the new implementation provides orders-of-magnitude reduction of execution times and improved throughput for almost all concurrency levels. Additionally, since CAR-STM greatly reduces the unpredictable influence of operating-system scheduling on STM performance, the new implementation provides a much more stable performance. In contrast, the performance of the original RSTM implementation on STMBench7 workloads exhibits extremely high variance. Though our paper focuses on software transactional memory, we believe the ideas introduced by CAR-STM may prove useful also for hybrid implementations of transactional memory.
引用
收藏
页码:125 / 134
页数:10
相关论文
共 25 条
[1]   Unbounded transactional memory [J].
Ananian, CS ;
Asanovic, K ;
Kuszmaul, BC ;
Leiserson, CE ;
Lie, S .
11TH INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE, PROCEEDINGS, 2005, :316-327
[2]  
[Anonymous], 2006, P WORKSHOP LANGUAGES
[3]  
Attiya H., 2006, PODC 2006, P308, DOI DOI 10.1145/1146381.1146428
[4]  
BAI T, 2007, IEEE INT PAR DISTR P, P1
[5]  
DAMRON P, 2006, ASPLOS 12, P336
[6]  
Fraser K, 2004, UCAM-CL-TR-579
[7]  
Guerraoui R, 2005, LECT NOTES COMPUT SC, V3724, P303, DOI 10.1007/11561927_23
[8]  
GUERRAOUI R, 2007, SIGOPS OPER SYST REV, V41, P315
[9]  
GUERRAOUI R, 2006, PODC, P316
[10]  
Hammond L, 2004, CONF PROC INT SYMP C, P102