Scalable Lock-Free Dynamic Memory Allocation

被引:0
|
作者
Michael, Maged M. [1 ]
机构
[1] IBM Corp, Thomas J Watson Res Ctr, POB 218, Yorktown Hts, NY 10598 USA
关键词
Algorithms; Performance; Reliability; malloc; lock-free; async-signal-safe; availability;
D O I
10.1145/2854695.2854697
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamic memory allocators (malloc/free) rely on mutual exclusion locks for protecting the consistency of their shared data structures under multithreading. The use of locking has many disadvantages with respect to performance, availability, robustness, and programming flexibility. A lock-free memory allocator guarantees progress regardless of whether some threads are delayed or even killed and regardless of scheduling policies. This paper presents a completely lock-free memory allocator. It uses only widely-available operating system support and hardware atomic instructions. It offers guaranteed availability even under arbitrary thread termination and crash-failure, and it is immune to deadlock regardless of scheduling policies, and hence it can be used even in interrupt handlers and real-time applications without requiring special scheduler support. Also, by leveraging some high-level structures from Hoard, our allocator is highly scalable, limits space blowup to a constant factor, and is capable of avoiding false sharing. In addition, our allocator allows finer concurrency and much lower latency than Hoard. We use PowerPC shared memory multiprocessor systems to compare the performance of our allocator with the default AIX 5.1 libc malloc, and two widely-used multithread allocators, Hoard and Ptmalloc. Our allocator outperforms the other allocators in virtually all cases and often by substantial margins, under various levels of parallelism and allocation patterns. Furthermore, our allocator also offers the lowest contention-free latency among the allocators by significant margins.
引用
收藏
页码:11 / 22
页数:12
相关论文
共 50 条
  • [31] Lock-free dynamic hash tables with open addressing
    Gao, H
    Groote, JF
    Hesselink, WH
    [J]. DISTRIBUTED COMPUTING, 2005, 18 (01) : 21 - 42
  • [32] To Lock, Swap, or Elide: On the Interplay of Hardware Transactional Memory and Lock-Free Indexing
    Makreshanski, Darko
    Leyandoski, Justin
    Stutsman, Ryan
    [J]. PROCEEDINGS OF THE VLDB ENDOWMENT, 2015, 8 (11): : 1298 - 1309
  • [33] Easy Lock-Free Indexing in Non-Volatile Memory
    Wang, Tianzheng
    Levandoski, Justin
    Larson, Per-Ake
    [J]. 2018 IEEE 34TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE), 2018, : 461 - 472
  • [34] Scalable Lock-Free FIFO Queues using Efficient Elimination Techniques
    Kumar, V. V. N. Pavan
    Gopinath, K.
    [J]. COMPUTE'2012, 2012,
  • [35] Persistent Lock-Free Queue for Non-Volatile Memory
    Friedman, Michal
    Herlihy, Maurice
    Marathe, Virendra
    Petrank, Erez
    [J]. ACM SIGPLAN NOTICES, 2018, 53 (01) : 28 - 40
  • [36] Every Data Structure Deserves Lock-Free Memory Reclamation
    Cohen, Nachshon
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [37] Every Data Structure Deserves Lock-Free Memory Reclamation
    Cohen, Nachshon
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [38] Transactional memory as an approach to building a lock-free data structure
    Pyankov, S. A.
    Babichev, S. L.
    [J]. 7TH INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY AND QUANTITATIVE MANAGEMENT (ITQM 2019): INFORMATION TECHNOLOGY AND QUANTITATIVE MANAGEMENT BASED ON ARTIFICIAL INTELLIGENCE, 2019, 162 : 76 - 81
  • [39] Lock-free distributed queue in remote memory access model
    Burachenko, Alexander, V
    Paznikov, Alexei A.
    Derzhavin, Denis P.
    [J]. VESTNIK TOMSKOGO GOSUDARSTVENNOGO UNIVERSITETA-UPRAVLENIE VYCHISLITELNAJA TEHNIKA I INFORMATIKA-TOMSK STATE UNIVERSITY JOURNAL OF CONTROL AND COMPUTER SCIENCE, 2023, (62): : 13 - 24
  • [40] Hazard pointers: Safe memory reclamation for lock-free objects
    Michael, MM
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2004, 15 (06) : 491 - 504