Memory management thread for heap allocation intensive sequential applications

  • Authors:
  • Devesh Tiwari;Sanghoon Lee;James Tuck;Yan Solihin

  • Affiliations:
  • North Carolina State University, Raleigh;North Carolina State University, Raleigh;North Carolina State University, Raleigh;North Carolina State University, Raleigh

  • Venue:
  • Proceedings of the 10th workshop on MEmory performance: DEaling with Applications, systems and architecture
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic memory management is one of the most ubiquitous and expensive operations in many C/C++ applications. Some C/C++ programs might spend up to one third of their execution time in dynamic memory management routines. With multicore processors as a mainstream architecture, it is important to investigate how dynamic memory management can exploit the multi-core parallelism for speeding up sequential programs. In this paper, we propose a way for exploiting multicore parallelism in dynamic memory management for sequential applications, by spinning off memory allocation and deallocation functions to a separate thread that we refer to as memory management thread (MMT). The goal of this study is to show how an efficient design and implementation of MMT can give performance without any algorithm or implementation level knowledge of underlying memory management library being offloaded. Using heap allocation-intensive benchmarks, we evaluate MMT on an Intel Core 2 Quad platform for widely used Doug Lea's memory allocator. Without any modifications to application source-code or memory management algorithm of underlying memory allocators, our MMT approach achieves an average speedup ratio of 1.19x, and 1.60x in the best case.