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

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

通过大型虚拟内存和全局数据结构进行快速、多核可扩展、低碎片内存分配

DOI:
10.1145/2814270.2814294
复制
发表时间:
2015
期刊:
Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
影响因子:
--
通讯作者:
A. Sokolova
A. Sokolova
中科院分区:
--
文献类型:
--
作者:
M. Aigner;C. Kirsch;Michael Lippautz;A. Sokolova

文献摘要

被引文献

相似文献

我们证明,可以通过高性能,多项可扩展性和低内存消耗来完成许多核心上许多线程的通用内存分配。为此,我们设计和实施了Scalloc,这是一种并发分配器,在我们的实验中通常比其他分配器更好地执行和尺度,同时使用较少的内存,否则仍然具有竞争力。扇贝设计背后的主要思想是:通过所谓的虚拟跨度统一对小对象的统一处理,通过快速可扩展的全球数据结构以及恒定的时间(MODULO同步)分配和交易工作操作有效地有效地回收自由记忆这种权衡记忆重复使用和空间位置,而无需进行虚假共享。
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.