Hybrid transactional memory

被引:80
作者
Damron, Peter [1 ]
Fedorova, Alexandra [2 ]
Lev, Yossi [3 ]
Luchangco, Victor
Moir, Mark
Nussbaum, Daniel
机构
[1] Sun Microsyst, Santa Clara, CA 95054 USA
[2] Harvard Univ, Cambridge, MA 02138 USA
[3] Brown Univ, Providence, RI 02912 USA
关键词
algorithms; design; transactional memory;
D O I
10.1145/1168918.1168900
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Transactional memory (TM) promises to substantially reduce the difficulty of writing correct, efficient, and scalable concurrent programs. But "bounded" and "best-effort" hardware TM proposals impose unreasonable constraints on programmers, while more flexible software TM implementations are considered too slow. Proposals for supporting "unbounded" transactions in hardware entail significantly higher complexity and risk than best-effort designs. We introduce Hybrid Transactional Memory (HyTM), an approach to implementing TM in software so that it can use best-effort hardware TM (HTM) to boost performance but does not depend on HTM. Thus programmers can develop and test transactional programs in existing systems today, and can enjoy the performance benefits of HTM support when it becomes available. We describe our prototype HyTM system, comprising a compiler and a library. The compiler allows a transaction to be attempted using best-effort HTM, and retried using the software library if it fails. We have used our prototype to "transactify" part of the Berkeley DB system, as well as several benchmarks. By disabling the optional use of HTM, we can run all of these tests on existing systems. Furthermore, by using a simulated multiprocessor with HTM support, we demonstrate the viability of the HyTM approach: it can provide performance and scalability approaching that of an unbounded HTM implementation, without the need to support all transactions with complicated HTM support.
引用
收藏
页码:336 / 346
页数:11
相关论文
共 32 条
[1]  
Adl-Tabatabai AR, 2006, ACM SIGPLAN NOTICES, V41, P26, DOI 10.1145/1133981.1133985
[2]  
AGARWAL A, 1989, P 16 INT S COMP ARCH, P396
[3]  
[Anonymous], 1993, P S COMP ARCH ISCA
[4]  
Carlstrom B. D., 2006, PLDI 2006. Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, P1, DOI 10.1145/1133981.1133983
[5]  
DICE D, 2006, IN PRESS P INT S DIS
[6]  
Guerraoui R., 2005, PODC, P258, DOI DOI 10.1145/1073814.1073863
[7]  
Hammond Lance, 2004, P 31 ANN INT S COMP
[8]  
HARRIS T, 2003, P 18 ANN ACM SIGPLAN, P388, DOI DOI 10.1145/949305.949340
[9]  
Harris T, 2006, ACM SIGPLAN NOTICES, V41, P14, DOI 10.1145/1133981.1133984
[10]  
Herlihy M., 2003, P 22 ANN S PRINC DIS, P92, DOI DOI 10.1145/872035.872048