A methodology to automatically optimize dynamic memory managers applying grammatical evolution

Modern consumer devices must execute multimedia applications that exhibit high resource utilization. In order to efficiently execute these applications, the dynamic memory subsystem needs to be optimized. This complex task can be tackled in two complementary ways: optimizing the application source code or designing custom dynamic memory management mechanisms. Currently, the first approach has been well established, and several automatic methodologies have been proposed. Regarding the second approach, software engineers often write custom dynamic memory managers from scratch, which is a difficult and error-prone work. This paper presents a novel way to automatically generate custom dynamic memory managers optimizing both performance and memory usage of the target application. The design space is pruned using grammatical evolution converging to the best dynamic memory manager implementation for the target application. Our methodology achieves important improvements (62.55% and 30.62% better on average in performance and memory usage, respectively) when its results are compared to five different general-purpose dynamic memory managers.

[1]  Kathryn S. McKinley,et al.  Composing high-performance memory allocators , 2001, PLDI '01.

[2]  Paul R. Wilson,et al.  The memory fragmentation problem: solved? , 1998, ISMM '98.

[3]  José Ignacio Hidalgo,et al.  Optimization of dynamic memory managers for embedded systems using grammatical evolution , 2009, GECCO '09.

[4]  M. O'Neill,et al.  Grammatical evolution , 2001, GECCO '09.

[5]  Dirk Grunwald,et al.  Quantifying Behavioral Differences Between C and C++ Programs , 1994 .

[6]  Scott Meyers,et al.  More Effective C++: 35 New Ways to Improve Your Programs and Designs , 1995 .

[7]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.

[8]  Riccardo Poli,et al.  A Field Guide to Genetic Programming , 2008 .

[9]  Francky Catthoor,et al.  Systematic dynamic memory management design methodology for reduced memory footprint , 2006, TODE.

[10]  J. Morris Chang,et al.  The design and analysis of a quantitative simulator for dynamic memory management , 2004, J. Syst. Softw..

[11]  Josefa Díaz,et al.  Quantifying the impact of dynamic memory managers into memory-intensive applications , 2011, SCSC 2011.

[12]  Michael O'Neill,et al.  Grammatical evolution - evolutionary automatic programming in an arbitrary language , 2003, Genetic programming.

[13]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[14]  Michael Sipser,et al.  Introduction to the Theory of Computation , 1996, SIGA.

[15]  Anthony Brabazon,et al.  Biologically inspired algorithms for financial modelling , 2006, Natural computing series.

[16]  Dirk Grunwald,et al.  Customalloc: Efficient synthesized memory allocators , 1993, Softw. Pract. Exp..

[17]  Wei Dong,et al.  SDMA: A Simulation-Driven Dynamic Memory Allocator for Wireless Sensor Networks , 2008, 2008 Second International Conference on Sensor Technologies and Applications (sensorcomm 2008).

[18]  Mahmut T. Kandemir,et al.  Evaluating Integrated Hardware-Software Optimizations Using a Unified Energy Estimation Framework , 2003, IEEE Trans. Computers.

[19]  Benjamin G. Zorn,et al.  Using lifetime predictors to improve memory allocation performance , 1993, PLDI '93.

[20]  A. Brabazon,et al.  An Introduction to Evolutionary Computation in Finance , 2008, IEEE Computational Intelligence Magazine.

[21]  David Atienza,et al.  A parallel evolutionary algorithm to optimize dynamic memory managers in embedded systems , 2010, Parallel Comput..

[22]  José Ignacio Hidalgo,et al.  Simulation of high-performance memory allocators , 2011, Microprocess. Microsystems.

[23]  Kathryn S. McKinley,et al.  Reconsidering custom memory allocation , 2002, OOPSLA '02.

[24]  José Ignacio Hidalgo,et al.  Simulation of High-Performance Memory Allocators , 2010, 2010 13th Euromicro Conference on Digital System Design: Architectures, Methods and Tools.

[25]  Anthony Brabazon,et al.  Constant creation in grammatical evolution , 2007 .

[26]  Luca Benini,et al.  Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems , 2006, Integr..