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 条
  • [1] Scalable lock-free dynamic memory allocation
    Michael, MM
    [J]. ACM SIGPLAN NOTICES, 2004, 39 (06) : 35 - 46
  • [2] Scalable Lock-Free Vector with Combining
    Walulya, Ivan
    Tsigas, Philippas
    [J]. 2017 31ST IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS), 2017, : 917 - 926
  • [3] A scalable lock-free stack algorithm
    Hendler, Danny
    Shavit, Nir
    Yerushalmi, Lena
    [J]. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2010, 70 (01) : 1 - 12
  • [4] Lock-free and scalable multi-version software transactional memory
    Fernandes, Sérgio Miguel
    Cachopo, Joao
    [J]. ACM SIGPLAN Notices, 2011, 46 (08): : 179 - 188
  • [5] Lock-free and Scalable Multi-Version Software Transactional Memory
    Fernandes, Sergio Miguel
    Cachopo, Joao
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (08) : 179 - 188
  • [6] Lock-free and scalable multi-version software transactional memory
    Fernandes, Sérgio Miguel
    Cachopo, João
    [J]. Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP, 2011, : 179 - 188
  • [7] Derivation of a Scalable Lock-Free Stack Algorithm
    Groves, Lindsay
    Colvin, Robert
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2007, 187 : 55 - 74
  • [8] Allocating memory in a lock-free manner
    Gidenstam, A
    Papatriantafilou, M
    Tsigas, P
    [J]. ALGORITHMS - ESA 2005, 2005, 3669 : 329 - 342
  • [9] Releasing Memory with Optimistic Access: A Hybrid Approach to Memory Reclamation and Allocation in Lock-Free Programs
    Moreno, Pedro
    Rocha, Ricardo
    [J]. PROCEEDINGS OF THE 35TH ACM SYMPOSIUM ON PARALLELISM IN ALGORITHMS AND ARCHITECTURES, SPAA 2023, 2023, : 177 - 186
  • [10] HMalloc: A Hybrid, Scalable, and Lock-free Memory Allocator for Multi-threaded Applications
    Li, Tianlin
    Yao, Yiping
    Tang, Wenjie
    Lin, Zhongwei
    [J]. 2019 IEEE 25TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS (ICPADS), 2019, : 406 - 409