Blocking and non-blocking concurrent hash tables in multi-core systems

被引:0
|
作者
机构
[1] Dudás, Ákos
[2] Juhász, Sándor
来源
| 1600年 / World Scientific and Engineering Academy and Society, Ag. Ioannou Theologou 17-23, Zographou, Athens, 15773, Greece卷 / 12期
关键词
Concurrency control - Locks (fasteners) - Data structures;
D O I
暂无
中图分类号
学科分类号
摘要
Widespread use of multi-core systems demand highly parallel applications and algorithms in everyday computing. Parallel data structures, which are basic building blocks of concurrent algorithms, are hard to design in a way that they remain both fast and simple. By using mutual exclusion they can be implemented with little effort, but blocking synchronization has many unfavorable properties, such as delays, performance bottleneck and being prone to programming errors. Non-blocking synchronization, on the other hand, promises solutions to the aforementioned drawbacks, but often requires complete redesign of the algorithm and the underlying data structure to accommodate the needs of atomic instructions. Implementations of parallel data structures satisfy different progress conditions: lock based algorithms can be deadlock-free or starvation free, while non-blocking solutions can be lock-free or wait-free. These properties guarantee different levels of progress, either system-wise or for all threads. We present several parallel hash table implementations, satisfying different types of progress conditions and having various levels of implementation complexity, and discuss their behavior. The performance of different blocking and non-blocking implementations will be evaluated on a multi-core machine.
引用
收藏
相关论文
共 50 条
  • [1] NBBS: A Non-Blocking Buddy System for Multi-Core Machines
    Marotta, Romolo
    Ianni, Mauro
    Pellegrini, Alessandro
    Quaglia, Francesco
    IEEE TRANSACTIONS ON COMPUTERS, 2022, 71 (03) : 599 - 612
  • [2] NBBS: A Non-blocking Buddy System for Multi-core Machines
    Marotta, Romolo
    Ianni, Mauro
    Scarselli, Andrea
    Pellegrini, Alessandro
    Quaglia, Francesco
    2019 19TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING (CCGRID), 2019, : 11 - 20
  • [3] DHash: Dynamic Hash Tables With Non-Blocking Regular Operations
    Wang, Junchang
    Liu, Dunwei
    Fu, Xiong
    Xiao, Fu
    Tian, Chen
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2022, 33 (12) : 3274 - 3290
  • [4] The Anchor Verifier for Blocking and Non-blocking Concurrent Software
    Flanagan, Cormac
    Freund, Stephen N.
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (04):
  • [5] Concurrent Tries with Efficient Non-Blocking Snapshots
    Prokopec, Aleksandar
    Bronson, Nathan G.
    Bagwell, Phil
    Odersky, Martin
    ACM SIGPLAN NOTICES, 2012, 47 (08) : 151 - 160
  • [6] A Non-blocking Buddy System for Scalable Memory Allocation on Multi-core Machines Poster extended abstract
    Marotta, Romolo
    Ianni, Mauro
    Scarselli, Andrea
    Pellegrini, Alessandro
    Quaglia, Francesco
    2018 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING (CLUSTER), 2018, : 164 - 165
  • [7] A Pragmatic Non-blocking Concurrent Directed Acyclic Graph
    Peri, Sathya
    Sa, Muktikanta
    Singhal, Nandini
    NETWORKED SYSTEMS, NETYS 2019, 2019, 11704 : 327 - 344
  • [8] Non-Blocking Concurrent Imperative Programming with Session Types
    Silva, Miguel
    Florido, Mario
    Pfenning, Frank
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2017, (238): : 64 - 72
  • [9] Multi-agent product systems: Controllability and non-blocking properties
    Romanovski, I.
    Caines, P. E.
    WODES 2006: EIGHTH INTERNATIONAL WORKSHOP ON DISCRETE EVENT SYSTEMS, PROCEEDINGS, 2006, : 269 - +
  • [10] Matrix switches: Blocking versus non-blocking
    Chermansky, Brett
    MICROWAVE JOURNAL, 2006, 49 (07) : 116 - +