A Template for Implementing Fast Lock-free Trees Using HTM

被引:8
|
作者
Brown, Trevor [1 ]
机构
[1] Technion, Haifa, Israel
基金
加拿大自然科学与工程研究理事会;
关键词
HARDWARE TRANSACTIONAL MEMORY; SWAP;
D O I
10.1145/3087801.3087834
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Algorithms that use hardware transactional memory (HTM) must provide a software-only fallback path to guarantee progress. The design of the fallback path can have a profound impact on performance. If the fallback path is allowed to run concurrently with hardware transactions, then hardware transactions must be instrumented, adding significant overhead. Otherwise, hardware transactions must wait for any processes on the fallback path, causing concurrency bottlenecks, or move to the fallback path. We introduce an approach that combines the best of both worlds. The key idea is to use three execution paths: an HTM fast path, an HTM middle path, and a software fallback path, such that the middle path can run concurrently with each of the other two. The fast path and fallback path do not run concurrently, so the fast path incurs no instrumentation overhead. Furthermore, fast path transactions can move to the middle path instead of waiting or moving to the software path. We demonstrate our approach by producing an accelerated version of the tree update template of Brown et al., which can be used to implement fast lock-free data structures based on down-trees. We used the accelerated template to implement two lock-free trees: a binary search tree (BST), and an (a, b)-tree (a generalization of a B-tree). Experiments show that, with 72 concurrent processes, our accelerated (a, b)-tree performs between 4.0x and 4.2x as many operations per second as an implementation obtained using the original tree update template.
引用
收藏
页码:293 / 302
页数:10
相关论文
共 50 条
  • [41] A scalable lock-free stack algorithm
    Hendler, Danny
    Shavit, Nir
    Yerushalmi, Lena
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2010, 70 (01) : 1 - 12
  • [42] Allocating memory in a lock-free manner
    Gidenstam, A
    Papatriantafilou, M
    Tsigas, P
    ALGORITHMS - ESA 2005, 2005, 3669 : 329 - 342
  • [43] lfbench: a lock-free microbenchmark suite
    Nagabhiru, Mahita
    Byrd, Greg
    2023 IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE, ISPASS, 2023, : 322 - 324
  • [44] A type system for lock-free processes
    Kobayashi, N
    INFORMATION AND COMPUTATION, 2002, 177 (02) : 122 - 159
  • [45] BQ: A Lock-Free Queue with Batching
    Milman, Gal
    Kogan, Alex
    Lev, Yossi
    Luchangco, Victor
    Petrank, Erez
    SPAA'18: PROCEEDINGS OF THE 30TH ACM SYMPOSIUM ON PARALLELISM IN ALGORITHMS AND ARCHITECTURES, 2018, : 99 - 109
  • [46] A Portable Lock-Free Bounded Queue
    Pirkelbauer, Peter
    Milewicz, Reed
    Felipe Gonzalez, Juan
    ALGORITHMS AND ARCHITECTURES FOR PARALLEL PROCESSING, ICA3PP 2016, 2016, 10048 : 55 - 73
  • [47] Lock-free parallel dynamic programming
    Stivala, Alex
    Stuckey, Peter J.
    Garcia de la Banda, Maria
    Hermenegildo, Manuel
    Wirth, Anthony
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2010, 70 (08) : 839 - 848
  • [48] Transactional lock-free execution of lock-based programs
    Rajwar, R
    Goodman, JR
    ACM SIGPLAN NOTICES, 2002, 37 (10) : 5 - 17
  • [49] A fast, lock-free approach for efficient parallel counting of occurrences of k-mers
    Marcais, Guillaume
    Kingsford, Carl
    BIOINFORMATICS, 2011, 27 (06) : 764 - 770
  • [50] Intelligent memory: An architecture for lock-free synchronization
    Seong, N
    Jung, N
    Kim, B
    Yoon, H
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 1997, E80D (04) : 441 - 447