MMT: Exploiting fine-grained parallelism in dynamic memory management

MMT: Exploiting fine-grained parallelism in dynamic memory management
复制标题

MMT:在动态内存管理中利用细粒度并行性

DOI:
10.1109/ipdps.2010.5470428
复制
发表时间:
2010
期刊:
2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)
影响因子:
--
通讯作者:
Yan Solihin
Yan Solihin
中科院分区:
--
文献类型:
--
作者:
Devesh Tiwari;Sanghoon Lee;James Tuck;Yan Solihin

文献摘要

被引文献

相似文献

在许多C/C++应用程序的许多操作中,动态内存管理是最昂贵但又普遍存在的操作之一。诸如安全检查之类的附加功能虽然是可取的,但会进一步恶化内存管理开销。随着多核体系结构的出现,研究如何减少顺序应用程序的动态内存管理开销是非常重要的。在本文中,我们提出了一种新的方法来加速多核架构上的动态内存管理,通过卸载动态管理功能到一个单独的线程,我们称之为内存管理线程(MMT)。我们表明,一个有效的MMT设计可以通过提取并行性,同时不可知的底层内存管理库算法和数据结构,提供显着的性能改善。我们还展示了MMT提供的并行性如何有利于高开销的内存管理任务,例如,与内存管理相关的安全检查。我们评估MMT堆分配密集型基准上运行的英特尔酷睿2四平台上的两个广泛使用的内存分配器:道格莱亚的和PHKmalloc分配器。平均而言,MMT在两个分配器上都实现了1.19倍的加速比,而应用程序和内存管理库都没有修改,并且不受并行化方案的影响。对于打开安全检查的PHKmalloc,MMT将安全检查开销从21%平均降低到仅1%。
Dynamic memory management is one of the most expensive but ubiquitous operations in many operations in many C/C++ applications. Additional features such as security checks, while desirable, further worsen memory management overheads. With advent of multicore architecture, it is important to investigate how dynamic memory management overheads for sequential applications can be reduced. In this paper, we propose a new approach for accelerating dynamic memory management on multicore architecture, by offloading dynamic management functions to a separate thread that we refer to as memory management thread (MMT). We show that an efficient MMT design can give significant performance improvement by extracting parallelism while being agnostic to the underlying memory management library algorithms and data structures. We also show how parallelism provided by MMT can be beneficial for high overhead memory management tasks, for example, security checks related to memory management. We evaluate MMT on heap allocation-intensive benchmarks running on an Intel core 2 quad platform for two widely-used memory allocators: Doug Lea's and PHKmalloc allocators. On average, MMT achieves a speedup ratio of 1.19× for both allocators, while both the application and memory management libraries are unmodified and are oblivious to the parallelization scheme. For PHKmalloc with security checks turned on, MMT reduces the security check overheads from 21% to only 1% on average.