McRT-Malloc: a scalable transactional memory allocator

McRT-Malloc: a scalable transactional memory allocator
复制标题

McRT-Malloc:可扩展的事务内存分配器

DOI:
--
复制
发表时间:
2006
期刊:
International Symposium on Mathematical Morphology and Its Application to Signal and Image Processing
影响因子:
--
通讯作者:
Ben Hertzberg
Ben Hertzberg
中科院分区:
--
文献类型:
--
作者:
Richard L. Hudson;Bratin Saha;Ali;Ben Hertzberg

文献摘要

被引文献

相似文献

新兴的多核处理器承诺每一代都能提供成倍增长的硬件线程数量。应用程序需要高度并发才能充分利用这些处理器的能力。为了实现最大的并发性,库(如无Malloc的包)因此需要使用非阻塞算法。但众所周知,无锁算法很难推理,而且不适合普通程序员。事务性内存有望极大地简化普通程序员的并发编程。本文描述了一种高效的非阻塞Malloc/Free算法,它支持事务代码块内的内存分配和释放。因此,本文描述了一种适用于新兴的多核应用,同时支持现代并发结构的内存分配器。它是第一个将软件事务内存系统与基于Malloc/Free的内存分配器集成在一起的产品。我们提出了第一个算法,它确保在中止的事务中分配的空间得到适当的释放,并且不会导致空间爆炸。与以前的无锁Malloc包不同,我们的算法避免了对典型代码路径的原子操作,使我们的算法大大提高了效率。
Emerging multi-core processors promise to provide an exponentially increasing number of hardware threads with every generation. Applications will need to be highly concurrent to fullyuse the power of these processors. To enable maximum concurrency, libraries (such as malloc-free packages) would therefore need to use non-blocking algorithms. But lock-free algorithms are notoriously difficult to reason about and inappropriate for average programmers. Transactional memory promises to significantly ease concurrent programming for the average programmer. This paper describes a highly efficient non-blocking malloc/free algorithm that supports memory allocation and deallocation inside transactional code blocks. Thus this paper describes a memory allocator that is suitable for emerging multi-core applications, while supporting modern concurrency constructs.This paper makes several novel contributions. It is the first to integrate a software transactional memory system with a malloc/free based memory allocator. We present the first algorithm which ensures that space allocated in an aborted transaction is properly freed and does not lead to a space blowup. Unlike previous lock-free malloc packages, our algorithm avoids atomic operations on typical code paths, making our algorithm substantially more efficient.