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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Note that the same non-terminal is used for increment/decrement of a Rank in Rank sort algorithm.
- 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
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)
Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: IEEE Congress on Evolutionary Computation, pp. 2677–2684. IEEE (2006)
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)
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)
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)
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)
Hillis, W.D.: Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D: Nonlinear Phenom. 42(1), 228–234 (1990)
Kinnear Jr., K.E.: Evolving a sort: lessons in genetic programming. In: IEEE International Conference on Neural Networks, pp. 881–888. IEEE (1993)
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)
Langdon, W.B.: Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming! Kluwer Academic Publishers. Norwell, MA, USA (1998)
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)
Nicolau, M., Slattery, D.: libge - grammatical evolution library (2006). http://bds.ul.ie/libGE/index.html
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)
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)
OpenMP Architecture Review Board: OpenMP application program interface version 3.0 (2008). http://www.openmp.org/mp-documents/spec30.pdf
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)
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)
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)
Ryan, C.: Automatic Re-engineering of Software Using Genetic Programming. Genetic Programming. Springer, Heidelberg (1999)
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)
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)
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)
Williams, K.P.: Evolutionary algorithms for automatic parallelization. Ph.D. thesis, University of Reading (1998)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)