Toward High Performance Nonblocking Software Transactional Memory

被引:14
作者
Marathe, Virendra J. [1 ]
Moir, Mark [1 ]
机构
[1] Univ Rochester, Rochester, NY 14627 USA
来源
PPOPP'08: PROCEEDINGS OF THE 2008 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING | 2008年
关键词
software transactional memory; nonblocking;
D O I
10.1145/1345206.1345240
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Substantial advances in STM performance in recent years have mostly focused on blocking systems. We describe our work integrating the most important techniques and optimizations emerging from the recent work on blocking STMs into several variants of a nonblocking STM. In particular, our design is based on the philosophy of keeping the common, contention free execution path as simple (consequently fast) as possible, while resorting to the more expensive data displacement and metadata management only in situations where transactions have problems making forward progress. We employ novel ownership "stealing" and metadata management techniques in our nonblocking STM to enable several recent blocking STM optimizations such as timestamp-based validation and ownership release via store instructions, all leading to a more streamlined and efficient fast path. We present an undo log (eager versioning) variant of our STM, as well as two redo log (lazy versioning) variants, the latter of which are based on the two ownership acquisition techniques (namely eager and lazy) for writes made by transactions. Experimental results show that our efforts have improved the performance of nonblocking STMs up to the level of being competitive with the state-of-the-art blocking STMs such as TL2.
引用
收藏
页码:227 / 236
页数:10
相关论文
共 50 条
[31]   Compiler-Assisted Selection of a Software Transactional Memory System [J].
Schindewolf, Martin ;
Esselson, Alexander ;
Karl, Wolfgang .
ARCHITECTURE OF COMPUTING SYSTEMS - ARCS 2011, 2011, 6566 :147-157
[32]   Asynchronous Lease-Based Replication of Software Transactional Memory [J].
Carvalho, Nuno ;
Romano, Paolo ;
Rodrigues, Luis .
MIDDLEWARE 2010, 2010, 6452 :376-396
[33]   Remote Transaction Commit: Centralizing Software Transactional Memory Commits [J].
Hassan, Ahmed ;
Palmieri, Roberto ;
Ravindran, Binoy .
IEEE TRANSACTIONS ON COMPUTERS, 2016, 65 (07) :2228-2240
[34]   Enable Concurrent Byzantine Fault Tolerance Computing with Software Transactional Memory [J].
Zhao, Wenbing ;
Zhang, Honglei ;
Luo, Xiong ;
Zhu, Yueqin .
2015 8TH INTERNATIONAL CONFERENCE ON ADVANCED SOFTWARE ENGINEERING & ITS APPLICATIONS (ASEA), 2015, :67-72
[35]   Online Sharing-Aware Thread Mapping in Software Transactional Memory [J].
Pasqualin, Douglas Pereira ;
Diener, Matthias ;
Du Bois, Andre Rauber ;
Pilla, Mauricio Lima .
2020 IEEE 32ND INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD 2020), 2020, :35-42
[36]   Convoider: A Concurrency Bug Avoider Based on Transparent Software Transactional Memory [J].
Zhen Yu ;
Yu Zuo ;
Yong Zhao .
International Journal of Parallel Programming, 2020, 48 :32-60
[37]   Teaching Software Transactional Memory in Concurrency Courses with Clojure and Java']Java [J].
Tomeu, Antonio J. ;
Salguero, Alberto G. ;
Capel, Manuel, I .
EURO-PAR 2017: PARALLEL PROCESSING WORKSHOPS, 2018, 10659 :266-277
[38]   An Efficient Software Transactional Memory Using Commit-Time Invalidation [J].
Gottschlich, Justin E. ;
Vachharajani, Manish ;
Siek, Jeremy G. .
CGO 2010: THE EIGHTH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, PROCEEDINGS, 2010, :101-110
[39]   Analysis and Tracing of Applications Based on Software Transactional Memory on Multicore Architectures [J].
Castro, Marcio ;
Georgiev, Kiril ;
Marangozova-Martin, Vania ;
Mehaut, Jean-Francois ;
Fernandes, Luiz Gustavo ;
Santana, Miguel .
PROCEEDINGS OF THE 19TH INTERNATIONAL EUROMICRO CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING, 2011, :199-206
[40]   Convoider: A Concurrency Bug Avoider Based on Transparent Software Transactional Memory [J].
Yu, Zhen ;
Zuo, Yu ;
Zhao, Yong .
INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2020, 48 (01) :32-60