Skip to main content

Automatic Evolution of Parallel Sorting Programs on Multi-cores

  • Conference paper
  • First Online:
Book cover Applications of Evolutionary Computation (EvoApplications 2015)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9028))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Note that the same non-terminal is used for increment/decrement of a Rank in Rank sort algorithm.

  2. 2.

    Note that leaving the maximum depth to the default value (\(10\)) results in an error as the derivation tree depth of the grammars include a larger value than the default.

References

  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. Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: IEEE Congress on Evolutionary Computation, pp. 2677–2684. IEEE (2006)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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. 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. Hillis, W.D.: Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D: Nonlinear Phenom. 42(1), 228–234 (1990)

    Article  Google Scholar 

  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. 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. Langdon, W.B.: Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming! Kluwer Academic Publishers. Norwell, MA, USA (1998)

    Book  Google Scholar 

  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)

    Chapter  Google Scholar 

  12. Nicolau, M., Slattery, D.: libge - grammatical evolution library (2006). http://bds.ul.ie/libGE/index.html

  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)

    Chapter  Google Scholar 

  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. OpenMP Architecture Review Board: OpenMP application program interface version 3.0 (2008). http://www.openmp.org/mp-documents/spec30.pdf

  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. 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. 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. Ryan, C.: Automatic Re-engineering of Software Using Genetic Programming. Genetic Programming. Springer, Heidelberg (1999)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  23. Williams, K.P.: Evolutionary algorithms for automatic parallelization. Ph.D. thesis, University of Reading (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gopinath Chennupati .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Chennupati, G., Azad, R.M.A., Ryan, C. (2015). Automatic Evolution of Parallel Sorting Programs on Multi-cores. In: Mora, A., Squillero, G. (eds) Applications of Evolutionary Computation. EvoApplications 2015. Lecture Notes in Computer Science(), vol 9028. Springer, Cham. https://doi.org/10.1007/978-3-319-16549-3_57

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-16549-3_57

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-16548-6

  • Online ISBN: 978-3-319-16549-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics