McRT-Malloc: a scalable transactional memory allocator
McRT-Malloc: a scalable transactional memory allocator
复制标题
McRT-Malloc:可扩展的事务内存分配器
DOI:
--
复制
发表时间:
2006
期刊:
影响因子:
--
通讯作者:
Ben Hertzberg
中科院分区:
文献类型:
--
作者:
Richard L. Hudson;Bratin Saha;Ali;Ben Hertzberg
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.