Elsevier

Parallel Computing

Volume 36, Issues 10–11, October–November 2010, Pages 572-590
Parallel Computing

A parallel evolutionary algorithm to optimize dynamic memory managers in embedded systems

https://doi.org/10.1016/j.parco.2010.07.001Get rights and content

Abstract

For the last 30 years, several dynamic memory managers (DMMs) have been proposed. Such DMMs include first fit, best fit, segregated fit and buddy systems. Since the performance, memory usage and energy consumption of each DMM differs, software engineers often face difficult choices in selecting the most suitable approach for their applications. This issue has special impact in the field of portable consumer embedded systems, that must execute a limited amount of multimedia applications (e.g., 3D games, video players, signal processing software, etc.), demanding high performance and extensive memory usage at a low energy consumption. Recently, we have developed a novel methodology based on genetic programming to automatically design custom DMMs, optimizing performance, memory usage and energy consumption. However, although this process is automatic and faster than state-of-the-art optimizations, it demands intensive computation, resulting in a time-consuming process. Thus, parallel processing can be very useful to enable to explore more solutions spending the same time, as well as to implement new algorithms. In this paper we present a novel parallel evolutionary algorithm for DMMs optimization in embedded systems, based on the Discrete Event Specification (DEVS) formalism over a Service Oriented Architecture (SOA) framework. Parallelism significantly improves the performance of the sequential exploration algorithm. On the one hand, when the number of generations are the same in both approaches, our parallel optimization framework is able to reach a speed-up of 86.40× when compared with other state-of-the-art approaches. On the other, it improves the global quality (i.e., level of performance, low memory usage and low energy consumption) of the final DMM obtained in a 36.36% with respect to two well-known general-purpose DMMs and two state-of-the-art optimization methodologies.

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)

  • D. Atienza et al.

    Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems

    Integr. VLSI J.

    (2006)
  • J.L. Risco-Martín et al.

    A parallel evolutionary algorithm to optimize dynamic data types in embedded systems

    Soft Comput.

    (2008)
  • B. Calder et al.

    Quantifying behavioral differences between C and C++ programs

    J. Program. Lang.

    (1995)
  • N. Vijaykrishnan et al.

    Evaluating integrated hardware–software optimizations using a unified energy estimation framework

    IEEE Trans. Comput.

    (2003)
  • P.R. Wilson et al.

    Dynamic storage allocation: a survey and critical review

  • E.D. Berger et al.

    Composing high-performance memory allocators

    SIGPLAN Not.

    (2001)
  • K.-P. Vo

    Vmalloc: a general and efficient memory allocator

    Software: Practice Exp.

    (1996)
  • Real-Time Operating System for Multiprocessor Systems (RTEMS), 2008....
  • G. Attardi et al.

    A customisable memory management framework for C++

    Software: Practice Exp.

    (1999)
  • D. Atienza et al.

    Systematic dynamic memory management design methodology for reduced memory footprint

    ACM Trans. Des. Autom. Electron. Syst.

    (2006)
  • S. Mamagkakis et al.

    Energy-efficient dynamic memory allocators at the middleware level of embedded systems

  • J.L. Risco-Martín et al.

    Optimization of dynamic memory managers for embedded systems using grammatical evolution

  • M. O’Neill et al.

    Grammatical Evolution: Evolutionary Automatic Programming in an Arbitrary Language

    (2003)
  • E. Cantú-Paz

    A survey of parallel genetic algorithms

    Calculateurs Paralleles

    (1998)
  • S. Mittal et al.

    DEVS/SOA: a cross-platform framework for net-centric modeling and simulation in devs unified process

    Simulation: Trans. SCS

    (2009)
  • D. Lea, A memory allocator....
  • B. Stroustrup

    The C++ Programming Language

    (2000)
  • A. Brabazon et al.

    Biologically Inspired Algorithms for Financial Modelling

    (2006)
  • I. Dempsey et al.

    Constant creation in grammatical evolution

    Int. J. Innov. Comput. Appl.

    (2007)
  • Cited by (11)

    • A methodology to automatically optimize dynamic memory managers applying grammatical evolution

      2014, Journal of Systems and Software
      Citation 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 Machines
    • Deep parameter optimisation

      2015, GECCO 2015 - Proceedings of the 2015 Genetic and Evolutionary Computation Conference
    • Optimizing existing software with genetic programming

      2015, IEEE Transactions on Evolutionary Computation
    • DeSpErate++: An enhanced design space exploration framework using predictive simulation scheduling

      2015, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
    • Genetically improved software

      2015, Handbook of Genetic Programming Applications
    View all citing articles on Scopus
    View full text