Improving locality with dynamic memory allocation

  • Authors:
  • Lawrence Rauchwerger;Alin Jula

  • Affiliations:
  • Texas A&M University;Texas A&M University

  • Venue:
  • Improving locality with dynamic memory allocation
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic memory allocators are a determining factor of an application's performance and have the opportunity to improve a major performance bottleneck on today's computer hardware: data locality. To approach this problem, a memory allocator must first offer strategies that allow the locality problem to be addressed. However, while focusing on locality, an allocator must also not ignore the existing constraints of allocation speed and fragmentation, which further complicate its design. In order for a locality improving technique to be successfully employed in today's large code applications, its integration needs to be automatic, without user intervention. The alternative, manual integration, is not a tractable solution. In this dissertation we develop three novel memory allocators that explore different allocation strategies that enhance an application's locality. We conduct the first study that shows that allocation speed, fragmentation and locality improving goals are antagonistic. We develop an automatic method that supplies allocation hints from C++ STL containers to their allocators. This method allows applications to benefit from locality improving techniques at the cost of a simple re-compilation. We conduct the first study that quantifies the effect of allocation hints on performance, and show that an allocator with high locality of reference can be as competitive as one using an application's spatial feedback. To further allow dynamic memory allocation to improve an application's performance, new and non-traditional strategies need be explored. We develop a generic software tool that allows users to examine unconventional strategies. The tool allows users not only to focus on allocation strategies rather than their implementation, but also to compare and contrast various approaches.