A parallel evolutionary algorithm to optimize dynamic memory managers in embedded systems
Section snippets
Introduction and related work
Modern multimedia embedded systems must execute applications coming from desktop systems. As a result, one of the most important problems that system designers face today is the integration of a great amount of applications coming from a general-purpose domain into a highly-constrained memory device [1]. Usually, these applications are developed in the C++ language, where dynamic memory is allocated via the operator new and deallocated by the operator delete. Most compilers simply map these
The dynamic memory managers exploration problem
In this section we first summarize the main characteristics of a DMM. Next, we present the taxonomy designed to classify the DMMs design space, and briefly describe the C++ template library that implements the given taxonomy (in both simulation and real mode). Finally, we describe how grammatical evolution is applied to automatically explore the design space.
DMM optimization flow
The proposed optimization framework uses three different phases to perform the automatic exploration of DMMs using grammatical evolution. Fig. 5 shows the different phases required to perform the overall DMMs optimization. In the first phase, we generate an initial profiling of the de/allocation pattern of the different objects instantiated by the application. In the second phase, we automatically analyze the profiling report and provide the hardware parameters of the target embedded system to
Global architecture of the pGE
The proposed search process can be significantly improved by using several threads to perform the simulations instead of running each one in the same processor. In this section we first describe the different approaches used in the parallelization of evolutionary algorithms, selecting one of them. Finally we analyze how our GE algorithm works in a parallel environment to solve the exploration of DMMs in embedded applications.
There are two main levels at which an evolutionary algorithm can be
Experimental framework and results
We have evaluated the proposed optimization framework for two multimedia embedded applications [35], [36]. Thus, in this section we describe the complete method applied to compare the different type of sequential and parallel GEAs while optimizing dynamic embedded application, as well as the experimental results obtained.
Conclusions and future work
Nowadays, high-performance embedded devices (e.g., PDAs, advanced mobile phones, portable video games stations, etc.) need to execute very dynamic embedded applications. These applications have been typically executed in general-purpose computers, so they are very complex for embedded systems and currently demand intensive dynamic memory requirements that must be heavily optimized (i.e., performance, memory usage and energy consumption) for an efficient mapping on latest low-power embedded
Acknowledgments
The authors thank the reviewers for providing encouraging feedback and insightful comments that improved the content and the quality of the paper. This work has been supported by Spanish Government Grants TIN2008-00508 and MEC Consolider Ingenio CSD00C-07-20811 of the Spanish Council of Science and Innovation. This research has been also supported by the Swiss NSF Research Project (Division II) Grant No. 200021-130048.
References (38)
- et al.
Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems
Integr. VLSI J.
(2006) - et al.
A parallel evolutionary algorithm to optimize dynamic data types in embedded systems
Soft Comput.
(2008) - et al.
Quantifying behavioral differences between C and C++ programs
J. Program. Lang.
(1995) - et al.
Evaluating integrated hardware–software optimizations using a unified energy estimation framework
IEEE Trans. Comput.
(2003) - et al.
Dynamic storage allocation: a survey and critical review
- et al.
Composing high-performance memory allocators
SIGPLAN Not.
(2001) Vmalloc: a general and efficient memory allocator
Software: Practice Exp.
(1996)- Real-Time Operating System for Multiprocessor Systems (RTEMS), 2008....
- et al.
A customisable memory management framework for C++
Software: Practice Exp.
(1999) - et al.
Systematic dynamic memory management design methodology for reduced memory footprint
ACM Trans. Des. Autom. Electron. Syst.
(2006)
Energy-efficient dynamic memory allocators at the middleware level of embedded systems
Optimization of dynamic memory managers for embedded systems using grammatical evolution
Grammatical Evolution: Evolutionary Automatic Programming in an Arbitrary Language
A survey of parallel genetic algorithms
Calculateurs Paralleles
DEVS/SOA: a cross-platform framework for net-centric modeling and simulation in devs unified process
Simulation: Trans. SCS
The C++ Programming Language
Biologically Inspired Algorithms for Financial Modelling
Constant creation in grammatical evolution
Int. J. Innov. Comput. Appl.
Cited by (11)
A methodology to automatically optimize dynamic memory managers applying grammatical evolution
2014, Journal of Systems and SoftwareCitation Excerpt :Such classifications implied a complex taxonomy of DMMs, as well as a huge search space. The execution time of both the simulator and the GEA became prohibitive and a parallelization was needed (Risco-Martín et al., 2010). Furthermore, the profiling of the application was obtained overloading both malloc() and free() functions.
Genetic improvement of GPU software
2017, Genetic Programming and Evolvable MachinesDeep parameter optimisation
2015, GECCO 2015 - Proceedings of the 2015 Genetic and Evolutionary Computation ConferenceOptimizing existing software with genetic programming
2015, IEEE Transactions on Evolutionary ComputationDeSpErate++: An enhanced design space exploration framework using predictive simulation scheduling
2015, IEEE Transactions on Computer-Aided Design of Integrated Circuits and SystemsGenetically improved software
2015, Handbook of Genetic Programming Applications