Design Automation for Embedded Systems

, Volume 22, Issue 1–2, pp 183–197 | Cite as

ImGA: an improved genetic algorithm for partitioned scheduling on heterogeneous multi-core systems

  • Rabeh Ayari
  • Imane Hafnaoui
  • Giovanni Beltrame
  • Gabriela Nicolescu


Efficient mapping of tasks onto heterogeneous multi-core systems is very challenging especially in the context of real-time applications. Assigning tasks to cores is an NP-hard problem and solving it requires the use of meta-heuristics. Relevantly, genetic algorithms have already proven to be one of the most powerful and widely used stochastic tools to solve this problem. Conventional genetic algorithms were initially defined as a general evolutionary algorithm based on blind operators with pseudo-random operations. It is commonly admitted that the use of these operators is quite poor for an efficient exploration of big problems. Likewise, since exhaustive exploration of the solution space is unrealistic, a potent option is often to guide the exploration process by hints, derived by problem structure. This guided exploration prioritizes fitter solutions to be part of next generations and avoids exploring unpromising configurations by transmitting a set of predefined criteria from parents to children. Consequently, genetic operators, such as initial population, crossover, mutation must incorporate specific domain knowledge to intelligently guide the exploration of the design space. In this paper, an improved genetic algorithm (ImGA) is proposed to enhance the conventional implementation of this evolutionary algorithm. In our experiments, we proved that ImGA leads to perceptible increase in the performance of the genetic algorithm and its convergence capabilities.


Design methodology Optimization Embedded systems Real-time application Heterogeneous multi-core architectures Partitioning Genetic algorithm 



This research was supported by CAE Inc. We are thankful to our colleagues Michel Galibois and Jean-Pierre Rousseau who provided expertise that greatly assisted the research.


  1. 1.
    Davis RI, Burns A (2011) A survey of hard real-time scheduling for multiprocessor systems. ACM Comput Surv 43(4):35CrossRefzbMATHGoogle Scholar
  2. 2.
    Hill MD, Marty MR (2008) Amdahl’s law in the multicore era. Computer 41(7):33–38CrossRefGoogle Scholar
  3. 3.
    Burns A (1991) Scheduling hard real-time systems: a review. Softw Eng J 6:116–128CrossRefGoogle Scholar
  4. 4.
    Tafesse B, Raina A, Suseela J, Muthukumar V (2011) Efficient scheduling algorithms for MPSOC systems. In: 2011 eighth international conference on information technology: new generations (ITNG), IEEE, pp 683–688Google Scholar
  5. 5.
    Mohammadi A, Akl SG (2005) Scheduling algorithms for real-time systems. In: Technical report 2005-499, Queen’s University, OntarioGoogle Scholar
  6. 6.
    Singh AK, Shafique M, Kumar A, Henkel J (2013) Mapping on multi/many-core systems: survey of current and emerging trends. In: Proceedings of the 50th annual design automation conference. ACM, p 1Google Scholar
  7. 7.
    Goldberg DE, Holland JH (1988) Genetic algorithms and machine learning. Mach Learn 3:95–99CrossRefGoogle Scholar
  8. 8.
    Braun TD, Siegel HJ, Beck N, Bölöni LL, Maheswaran M, Reuther AI, Robertson JP, Theys MD, Yao B, Hensgen D et al (2001) A comparison of eleven static heuristics for mapping a class of independent tasks onto heterogeneous distributed computing systems. J Parallel Distrib Comput 61(6):810–837CrossRefzbMATHGoogle Scholar
  9. 9.
    Ayari R, Hafnaoui I, Beltrame G, Nicolescu G (2016) Schedulability-guided exploration of multi-core systems. In: Proceedings of the 27th international symposium on rapid system prototyping: shortening the path from specification to prototype, ACM, pp 121–127Google Scholar
  10. 10.
    Van Craeynest K, Jaleel A, Eeckhout L, Narvaez P, Emer J (2012) Scheduling heterogeneous multi-cores through performance impact estimation (pie). In: IEEE computer society ACM SIGARCH computer architecture news, vol 40(3), pp 213–224Google Scholar
  11. 11.
    Zhuravlev S, Saez JC, Blagodurov S, Fedorova A, Prieto M (2012) Survey of scheduling techniques for addressing shared resources in multicore processors. ACM Comput Surv (CSUR) 45(1):4CrossRefzbMATHGoogle Scholar
  12. 12.
    Kwok Y-K, Ahmad I (1999) Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Comput Surv 31:406–471CrossRefGoogle Scholar
  13. 13.
    Tumeo A, Pilato C, Ferrandi F, Sciuto D, Lanzi PL (2008) Ant colony optimization for mapping and scheduling in heterogeneous multiprocessor systems. In: IEEE international conference on embedded computer systems: architectures, modeling, and simulation 2008. SAMOS 2008, pp 142–149Google Scholar
  14. 14.
    Moreira O, Valente F, Bekooij M (2007) Scheduling multiple independent hard-real-time jobs on a heterogeneous multiprocessor. In: Proceedings of the 7th ACM and IEEE international conference on embedded software, pp 57–66Google Scholar
  15. 15.
    Ayari R, Hafnaoui I, Aguiar A, Gilbert P, Galibois M, Rousseau J-P, Beltrame G, Nicolescu G (2016) Multi-objective mapping of full-mission simulators on heterogeneous distributed multi-processor systems. J Def Model Simul Appl Methodol Technol.
  16. 16.
    Qin X, Jiang H (2005) A dynamic and reliability-driven scheduling algorithm for parallel real-time jobs executing on heterogeneous clusters. J Parallel Distrib Comput 65:885–900CrossRefzbMATHGoogle Scholar
  17. 17.
    Page AJ, Keane TM, Naughton TJ (2010) Multi-heuristic dynamic task allocation using genetic algorithms in a heterogeneous distributed system. J Parallel Distrib Comput 70(7):758–766CrossRefzbMATHGoogle Scholar
  18. 18.
    Choi J, Oh H, Kim S, Ha S (2012) Executing synchronous dataflow graphs on a SPM-based multicore architecture. In: The 49th annual design automation conference, pp 664–671Google Scholar
  19. 19.
    Mehran A, Khademzadeh A, Saeidi S (2008) DSM: a heuristic dynamic spiral mapping algorithm for network on chip. IEICE Electron Express 5:464–471CrossRefGoogle Scholar
  20. 20.
    Braak TT, Holzenspies P (2010) Run-time spatial resource management for real-time applications on heterogeneous MPSoCs. In: Proceedings of the conference on design, automation and test in Europe 2010 Mar 8Google Scholar
  21. 21.
    Hong S, Narayanan SHK, Kandemir M, Ozturk O (2009) Process variation aware thread mapping for chip multiprocessors. In: Proceedings of the conference on design, automation and test in Europe. European design and automation association, pp 821–826Google Scholar
  22. 22.
    Brião E, Barcelos D, Wagner F (2008) Dynamic task allocation strategies in MPSoC for soft real-time applications. In: Proceedings of the conference on design, automation and test in Europe 2008 Mar 10Google Scholar
  23. 23.
    Carvalho EdS (2010) Dynamic task mapping for MPSoCs. IEEE Des Test Comput 27:26–35CrossRefGoogle Scholar
  24. 24.
    Zhang M, Gao X, Lou W (2007) A new crossover operator in genetic programming for object classification. IEEE Trans Syst Man Cybern Part B (Cybernetics) 37(5):1332–1343CrossRefGoogle Scholar
  25. 25.
    Ahuja RK, Orlin JB, Tiwari A (2000) A greedy genetic algorithm for the quadratic assignment problem. Comput Oper Res 27(10):917–934MathSciNetCrossRefzbMATHGoogle Scholar
  26. 26.
    Drezner Z (2008) Extensive experiments with hybrid genetic algorithms for the solution of the quadratic assignment problem. Comput Oper Res 35(3):717–736MathSciNetCrossRefzbMATHGoogle Scholar
  27. 27.
    Shrestha A, Mahmood A (2016) Improving genetic algorithm with fine-tuned crossover and scaled architecture. J Math 2016:10. MathSciNetCrossRefGoogle Scholar
  28. 28.
    Toğan V, Daloğlu AT (2008) An improved genetic algorithm with initial population strategy and self-adaptive member grouping. Comput Struct 86(11):1204–1218Google Scholar
  29. 29.
    Ayari R, Hafnaoui I, Beltrame G, Nicolescu G (2016) Simulation-based schedulability assessment for real-time systems. In: Proceedings of the summer computer simulation conference. Society for computer simulation international, p 30Google Scholar
  30. 30.
    Liu CL, Layland JW (1973) Scheduling algorithms for multiprogramming in a hard-real-time environment. J ACM 20(1):46–61MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Davis L (1991) Handbook of genetic algorithmsGoogle Scholar
  32. 32.
    Goldberg DE (1989) Genetic algorithms in search, optimization, and machine learning, reading. Addison-Wesley, BostonzbMATHGoogle Scholar
  33. 33.
    Banzhaf W, Nordin P, Keller RE, Francone FD (1998) Genetic programming: an introduction, vol 1. Morgan Kaufmann San Francisco, BurlingtonCrossRefzbMATHGoogle Scholar
  34. 34.
    Angelova M, Pencheva T (2011) Tuning genetic algorithm parameters to improve convergence time. Int J Chem Eng 2011:7. CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2018

Authors and Affiliations

  • Rabeh Ayari
    • 1
  • Imane Hafnaoui
    • 1
  • Giovanni Beltrame
    • 1
  • Gabriela Nicolescu
    • 1
  1. 1.Ecole Polytechnique de MontrealMontralCanada

Personalised recommendations