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.