Automatic Evolution of Parallel Sorting Programs on Multi-cores

  • Gopinath ChennupatiEmail author
  • R. Muhammad Atif Azad
  • Conor Ryan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9028)


Sorting algorithms that offer the potential for data-parallel execution on parallel architectures are an excellent tool for the current generation of multi-core processors that often require skilled parallelization knowledge to fully realize the potential of the hardware.

We propose to automate the evolution of natively parallel programs using the Grammatical Evolution (GE) approach to utilise the computational potential of multi-cores. The proposed system, Multi-core Grammatical Evolution for Parallel Sorting (MCGE-PS), applies GE mapping along with explicit OpenMP #pragma compiler directives to automatically evolve data-level parallel iterative sorting algorithms. MCGE-PS is assessed on the generation of four non-recursive sorting programs in C. We show that it generated programs that can solve the problem that are also parallel. On a high performance Intel processor, MCGE-PS significantly reduced the execution time of the evolved programs for all the benchmark problems.


Grammatical evolution Automatic parallelization Recursion Program synthesis OpenMP Evolutionary parallelization 


  1. 1.
    Abbott, R., Parviz, J.G.B.: Guided genetic programming. In: Arabnia, H.R., Kozerenko, E.B. (eds.) Proceedings of the International Conference on Machine Learning; Models, Technologies and Applications, pp. 28–34. CSREA Press (2003)Google Scholar
  2. 2.
    Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: IEEE Congress on Evolutionary Computation, pp. 2677–2684. IEEE (2006)Google Scholar
  3. 3.
    Agapitos, A., Lucas, S.: Evolving modular recursive sorting algorithms. In: Ebner, M., O’Neill, M., Ekárt, A., Vanneschi, L., Esparcia-Alcázar, A.I. (eds.) EuroGP 2007. LNCS, vol. 4445, pp. 301–310. Springer, Heidelberg (2007) CrossRefGoogle Scholar
  4. 4.
    Amarasinghe, S.: (How) can programmers conquer the multicore menace? In: Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, pp. 133–133. ACM (2008)Google Scholar
  5. 5.
    Chennupati, G., Azad, R.M.A., Ryan, C.: Multi-core GE: automatic evolution of CPU based multi-core parallel programs. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1041–1044. ACM (2014)Google Scholar
  6. 6.
    Chennupati, G., Fitzgerald, J., Ryan, C.: On the efficiency of multi-core grammatical evolution (MCGE) evolving multi-core parallel programs. In: Proceedings of the Sixth World Congress on Nature and Biologically Inspired Computing (NaBIC), pp. 238–243. IEEE (2014)Google Scholar
  7. 7.
    Hillis, W.D.: Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D: Nonlinear Phenom. 42(1), 228–234 (1990)CrossRefGoogle Scholar
  8. 8.
    Kinnear Jr., K.E.: Evolving a sort: lessons in genetic programming. In: IEEE International Conference on Neural Networks, pp. 881–888. IEEE (1993)Google Scholar
  9. 9.
    Kinnear Jr., K.E.: Generality and difficulty in genetic programming: evolving a sort. In: Forrest, S. (ed.) Proceedings of the 5th International Conference on Genetic Algorithms, pp. 287–294. Morgan Kaufmann, Urbana-Champaign, IL, USA (1993)Google Scholar
  10. 10.
    Langdon, W.B.: Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming! Kluwer Academic Publishers. Norwell, MA, USA (1998)CrossRefGoogle Scholar
  11. 11.
    Langdon, W.B., Banzhaf, W.: A SIMD interpreter for genetic programming on GPU graphics cards. In: O’Neill, M., Vanneschi, L., Gustafson, S., Esparcia Alcázar, A.I., De Falco, I., Della Cioppa, A., Tarantino, E. (eds.) EuroGP 2008. LNCS, vol. 4971, pp. 73–85. Springer, Heidelberg (2008) CrossRefGoogle Scholar
  12. 12.
    Nicolau, M., Slattery, D.: libge - grammatical evolution library (2006).
  13. 13.
    Nisbet, A.: GAPS: a compiler framework for genetic algorithm (GA) optimised parallelisation. In: Sloot, P., Bubak, M., Hertzberger, B. (eds.) High-Performance Computing and Networking. LNCS, vol. 1401, pp. 987–989. Springer, Heidelberg (1998) CrossRefGoogle Scholar
  14. 14.
    O’Neill, M., Nicolau, M., Agapitos, A.: Experiments in program synthesis with grammatical evolution: a focus on integer sorting. In: IEEE Congress on Evolutionary Computation, pp. 1504–1511. IEEE (2014)Google Scholar
  15. 15.
    OpenMP Architecture Review Board: OpenMP application program interface version 3.0 (2008).
  16. 16.
    O’Reilly, U.M., Oppacher, F.: An experimental perspective on genetic programming. In: Manner, R., Manderick, B. (eds.) Parallel Problem Solving From Nature 2, pp. 331–340. Elsevier Science, Brussels (1992)Google Scholar
  17. 17.
    O’Reilly, U.M., Oppacher, F.: A comparative analysis of genetic programming. In: Angeline, P.J., Kinnear Jr., K.E. (eds.) Advances in Genetic Programming, vol. 2. MIT Press, Cambridge (1996) Google Scholar
  18. 18.
    Poli, R.: Evolution of graph-like programs with parallel distributed genetic programming. In: Proceedings of the International Conference on Genetic Algorithms, pp. 346–353 (1997)Google Scholar
  19. 19.
    Ryan, C.: Automatic Re-engineering of Software Using Genetic Programming. Genetic Programming. Springer, Heidelberg (1999) Google Scholar
  20. 20.
    Ryan, C., Ivan, L.: Automatic parallelization of arbitrary programs. In: Langdon, W.B., Fogarty, T.C., Nordin, P., Poli, R. (eds.) EuroGP 1999. LNCS, vol. 1598, pp. 244–254. Springer, Heidelberg (1999) CrossRefGoogle Scholar
  21. 21.
    Spector, L., Klein, J., Keijzer, M.: The push3 execution stack and the evolution of control. In: Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1689–1696. ACM, New York (2005)Google Scholar
  22. 22.
    Trenaman, A.: Concurrent genetic programming, tartarus and dancing agents. In: Langdon, W.B., Fogarty, T.C., Nordin, P., Poli, R. (eds.) EuroGP 1999. LNCS, vol. 1598, pp. 270–282. Springer, Heidelberg (1999) CrossRefGoogle Scholar
  23. 23.
    Williams, K.P.: Evolutionary algorithms for automatic parallelization. Ph.D. thesis, University of Reading (1998)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Gopinath Chennupati
    • 1
    Email author
  • R. Muhammad Atif Azad
    • 1
  • Conor Ryan
    • 1
  1. 1.Bio-Computing and Developmental Systems Group, Computer Science and Information Systems DepartmentUniversity of LimerickLimerickIreland

Personalised recommendations