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 条
  • [21] A general lock-free algorithm using compare-and-swap
    Gao, H.
    Hesselink, W. H.
    INFORMATION AND COMPUTATION, 2007, 205 (02) : 225 - 241
  • [22] Lock-Free Incremental Coordinate Descent
    Mai, Vien V.
    Johansson, Mikael
    2017 IEEE 56TH ANNUAL CONFERENCE ON DECISION AND CONTROL (CDC), 2017,
  • [23] Lock-Free Bucketized Cuckoo Hashing
    Li, Wenhai
    Cheng, Zhiling
    Chen, Yuan
    Li, Ao
    Deng, Lingfeng
    EURO-PAR 2023: PARALLEL PROCESSING, 2023, 14100 : 275 - 288
  • [24] Versioned Programming: A Simple Technique for Implementing Efficient, Lock-Free, and Composable Data Structures
    Zhan, Yang
    Porter, Donald E.
    PROCEEDINGS OF THE 9TH ACM INTERNATIONAL SYSTEMS AND STORAGE CONFERENCE (SYSTOR'16), 2016,
  • [25] Lock-Free Transactional Adjacency List
    Painter, Zachary
    Peterson, Christina
    Dechev, Damian
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2017, 2019, 11403 : 203 - 219
  • [26] LOCK-FREE GARBAGE COLLECTION FOR MULTIPROCESSORS
    HERLIHY, MP
    MOSS, JEB
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 1992, 3 (03) : 304 - 311
  • [27] Formal Verification of Lock-Free Algorithms
    Schellhorn, Gerhard
    Baeumler, Simon
    NINTH INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN, PROCEEDINGS, 2009, : 13 - 18
  • [28] Fast and lock-free concurrent priority queues for multi-thread systems
    Sundell, H
    Tsigas, P
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2005, 65 (05) : 609 - 627
  • [29] Lock-free AntNets and their adaptability evaluations
    Oida, Kazumasa
    Kataoka, Akira
    Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi), 2001, 84 (02): : 51 - 61
  • [30] LFTHREADS A lock-free thread library
    Gidenstam, Anders
    Papatriantafilou, Marina
    PRINCIPLES OF DISTRIBUTED SYSTEMS, PROCEEDINGS, 2007, 4878 : 217 - +