2015
DOI: 10.1145/2858965.2814294
|View full text |Cite
|
Sign up to set email alerts
|

Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures

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 v… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
18
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
4
1

Relationship

0
5

Authors

Journals

citations
Cited by 7 publications
(18 citation statements)
references
References 25 publications
0
18
0
Order By: Relevance
“…In total, the number of unsafe statements in the runtime system decreased by 87%: only 8 statements remain. Of the remaining statements, four main categories emerge: system-level allocation (2), error-handling (1), a stack-scanning FFI for C (4), and Rust vector access optimization (1).…”
Section: Resultsmentioning
confidence: 99%
See 2 more Smart Citations
“…In total, the number of unsafe statements in the runtime system decreased by 87%: only 8 statements remain. Of the remaining statements, four main categories emerge: system-level allocation (2), error-handling (1), a stack-scanning FFI for C (4), and Rust vector access optimization (1).…”
Section: Resultsmentioning
confidence: 99%
“…For brevity we do not show all 9 permutations of the ⟨layer-simple⟩ rule, i.e. Rule (1), which represents cases where:…”
Section: Compilation Rulesmentioning
confidence: 99%
See 1 more Smart Citation
“…There are memory allocators based on global memory manager for multi-core or multi-threaded systems such as scalloc [3], Hoard [5], llalloc [2], Streamflow [30], and TCMalloc [1]. They use threadlocal space for memory allocation and a global manager for memory deallocation/reuse.…”
Section: Related Workmentioning
confidence: 99%
“…For the global manager, they use concurrent data structures. However, these data structures can not completely avoid the need for synchronization [3,16,31] without compromising correctness.…”
Section: Related Workmentioning
confidence: 99%