HomeresearchPeopleGeneral InfoSeminarsResources
Abstract

Alin Jula, Lawrence Rauchwerger, "Custom Memory Allocation for Free: Improving Data Locality with Container-Centric Memory Allocation," In Wkshp. on Lang. and Comp. for Par. Comp. (LCPC), New Orleans, Louisiana, Nov 2006.
Proceedings(pdf, abstract)

We propose a novel container-centric memory allocation scheme. In this scheme, the container's semantics guide the memory allocation, which results in data locality improvement and execution time reduction. The container-centric allocation provides the benefits of custom memory allocation, with the portability advantage. Applications need not change a single line of code, but rather change the underlying container library. Container-centric memory allocation increases data locality and reduces execution time, at no cost. At compile time, the container's semantics provide knowledge which is evaluated at run-time, and then used for more efficient memory clustering. Our approach enables an application to use different allocation policies for different types of containers, or even different instantiations of the same type of container. We have integrated our memory allocator, named Defero, with the C++ Standard Template Library (STL) containers for automatic usage. We have used Defero in applications such as compiler infrastructure, molecular dynamics, network simulation, as well as on micro-kernels.