Fast, Multicore-Scalable, Low-Fragmentation Memory Allocation through Large Virtual Memory and Global Data Structures
Martin Aigner, Christoph M. Kirsch, Michael Lippautz, Ana Sokolova

TL;DR
The paper introduces scalloc, a scalable, low-fragmentation memory allocator that efficiently manages memory in multicore environments using virtual spans and global data structures.
Contribution
It presents a novel concurrent allocator, scalloc, which outperforms existing allocators in scalability, memory usage, and performance through innovative design strategies.
Findings
scalloc outperforms other allocators in scalability and performance
scalloc uses less memory than comparable allocators
scalloc maintains competitive performance across various workloads
Abstract
We demonstrate that general-purpose memory allocation involving many threads on many cores can be done with high performance, multicore scalability, and low memory consumption. For this purpose, we have designed and implemented scalloc, a concurrent allocator that generally performs and scales in our experiments better than other allocators while using less memory, and is still competitive otherwise. The main ideas behind the design of scalloc are: uniform treatment of small and big objects through so-called virtual spans, efficiently and effectively reclaiming free memory through fast and scalable global data structures, and constant-time (modulo synchronization) allocation and deallocation operations that trade off memory reuse and spatial locality without being subject to false sharing.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
