Home » ADHAM: Adaptive Heap Management on Many-Core Platforms
Search
ADHAM: Adaptive Heap Management on Many-Core Platforms
Wed, 03/21/2012 - 15:35 - -, -, GR
0
Your rating: None
Tool Name (abbreviation):
ADHAM
Memory management is one of the key challenges in the design of computing systems where the memory is often the main bottleneck. The problem scales disproportionally as new systems are based on many-core architectures where the cores have to struggle accessing a limited amount of resources. Moreover, the excessive variations of modern systems, both in hardware and in software, makes necessary the usage of dynamic memory management (DMM) mechanisms. Extensive research has been conducted for general-purpose DMM, which targets single processor or multi-processor domain. However, the inherent generality of existing DMM eliminates the potential for customization optimizations. In this work, we present dmmlib, a highly portable DMM library written in C. It allows developers to generate custom heap managers by choosing the desired features and policies. The framework provides custom implementations for dynamic memory allocation, re-allocation and de-allocation which could replace classic system calls, i.e. malloc(), realloc() and free(). Multi-thread DMM can be supported by using POSIX mutexes or platform-specific synchronization primitives. The memory can be organized in a multiple number of heaps, each of which may contain or not lists of fixed-sized free blocks. The designer using the dmmlib can generate an application-specific and adaptive heap manager, being able to automatically reconfigure itself at runtime taking into consideration memory fragmentation and footprint variations and the availability of memory resources. In the context of this work the dmmlib framework is integrated in ST Platform 2012. It is shown that dmmlib could save on average 62% of the total cycles spent on memory resource management compared to P2012’s current memory allocator without increasing the allocator’s overhead.