skip to main content
research-article

A massively parallel Grammatical Evolution technique with OpenCL

Published: 01 November 2017 Publication History

Abstract

Grammatical Evolution (GE) is a bio-inspired metaheuristic capable of evolving programs in an arbitrary language using a formal grammar. Among the major applications of the technique, the automatic inference of models from data can be highlighted. As with other genetic programming techniques, GE has a high computational cost. However, the algorithm has steps that can be computed independently, enabling the use of parallel computing to reduce the execution time and, consequently, making it possible its application to larger and more complex problems. Here, models of massively parallel computation for GE are studied and proposed using OpenCL, a framework for the creation of parallel algorithms in heterogeneous computing environments. Computational experiments were conducted to analyze the performance of an implementation using GPUs (Graphics Processing Units), when compared to a sequential implementation in CPUs (Central Processing Units). Finally, speedups of up to 528 were achieved, when all steps are performed in parallel in a GPU. A model of a massively parallel computation for Grammatical Evolution is proposed.Evaluation of the proposed technique using OpenCL.The candidate solutions and data are parallelized.Performance gains of up to 528 were observed.

References

[1]
J. Ando, T. Nagao, Fast evolutionary image processing using Multi-GPUs, in: SMC, IEEE, 2007, pp. 2927-2932.
[2]
R. Arora, R. Tulshyan, K. Deb, Parallelization of binary and real-coded genetic algorithms on GPU using CUDA, in: Congress on Evolutionary Computation, CEC, IEEE, 2010, pp. 1-8.
[3]
D.A. Augusto, H.J.C. Barbosa, Accelerated parallel genetic programming tree evaluation with OpenCL, J. Parallel Distrib. Comput., 73 (2013) 86-100.
[4]
D.A. Augusto, H.S. Bernardino, H.J.C. Barbosa, Predicting the performance of job applicants by means of genetic programming, in: BRICS Congress on Computational Intelligence, 2013, pp. 98-103.
[5]
H.S. Bernardino, H.J.C. Barbosa, Grammar-based immune programming, Nat. Comput., 10 (2011) 209-241.
[6]
A. Cano, J.L. Olmo, S. Ventura, Parallel multi-objective ant programming for classification using {GPUs}, J. Parallel Distrib. Comput., 73 (2013) 713-728.
[7]
A. Cano, S. Ventura, GPU-parallel subtree interpreter for genetic programming, in: Proc. of the Conference on Genetic and Evolutionary Computation (GECCO), ACM, New York, NY, USA, 2014, pp. 887-894.
[8]
A. Cano, A. Zafra, S. Ventura, Speeding up the evaluation phase of GP classification algorithms on GPUs, Soft. Comput., 16 (2012) 187-202.
[9]
A. Cano, A. Zafra, S. Ventura, Parallel evaluation of Pittsburgh rule-based classifiers on GPUs, Neurocomputing, 126 (2014) 45-57.
[10]
A. Cano, A. Zafra, S. Ventura, Speeding up multiple instance learning classification rules on GPUs, Knowledge Inform. Syst., 44 (2015) 127-145.
[11]
D. Chitty, A data parallel approach to genetic programming using programmable graphics hardware, in: Proc. of the Conference on Genetic and Evolutionary Computation (GECCO), vol. 2, ACM Press, 2007, pp. 1566-1573.
[12]
N. Chomsky, Syntactic structures, Mouton de Gruyter, 2002.
[13]
B. Gaster, D. Kaeli, L. Howes, P. Mistry, Heterogeneous Computing with OpenCL, Morgan Kaufmann Pub., 2011.
[14]
F.W. Glover, G.A. Kochenberger, Handbook of Metaheuristics, Springer, 2003.
[15]
A. Gothandaraman, R. Hinde, G. Peterson, Comparing hardware accelerators in scientific applications: A case study, IEEE Trans. Parallel Distrib. Syst., 22 (2011) 58-68.
[16]
S. Harding, W. Banzhaf, Fast genetic programming on GPUs, in: LNCS, vol. 4445, Springer, 2007, pp. 90-101.
[17]
H. Juille, J.B. Pollack, Massively parallel genetic programming, in: Advances in Genetic Programming 2, MIT Press, Cambridge, MA, USA, 1996, pp. 339-358.
[18]
M. Keijzer, Improving symbolic regression with interval arithmetic and linear scaling, in: European Conference on Genetic Programming, Springer, 2003, pp. 70-82.
[19]
L.B. Kish, End of moores law: thermal (noise) death of integration in micro and nano electronics, Phys. Lett. A, 305 (2002) 144-149.
[20]
D.E. Knuth, Backus normal form vs. Backus Naur form, Commun. ACM, 7 (1964) 735-736.
[21]
M.F. Korns, Accuracy in symbolic regression, in: Genetic Programming Theory and Practice IX, Springer, 2011, pp. 129-151.
[22]
J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, The MIT Press (1992).
[23]
W. Langdon, W. Banzhaf, A SIMD interpreter for genetic programming on GPU graphics cards, in: LNCS, vol. 4971, Springer, 2008, pp. 73-85.
[24]
P. Langley, Lessons for the computational discovery of scientific knowledge, in: Proc. of the Intl. Workshop on Data Mining Lessons Learned, 2002, pp. 9-12.
[25]
L. Ljung, System Identification: Theory for the User, Prentice Hall, Englewood Cliffs, New Jersey, 1987.
[26]
R.I. Mckay, N.X. Hoai, P.A. Whigham, Y. Shan, M. ONeill, Grammar-based genetic programming: a survey, Genetic Progr. Evol. Mach., 11 (2010) 365-396.
[27]
M. Nicolau, A. Agapitos, M. ONeill, A. Brabazon, Guidelines for defining benchmark problems in genetic programming, in: Evolutionary Computation (CEC), 2015 IEEE Congress on, IEEE, 2015, pp. 1152-1159.
[28]
M. ONeill, C. Ryan, Grammatical evolution, IEEE Trans. Evolu. Comput., 5 (2001) 349-358.
[29]
M. ONeill, C. Ryan, Grammatical evolution: Evolutionary automatic programming in a arbitrary language, Kluwer Academic Publishers, 2003.
[30]
J.D. Owens, M. Houston, D. Luebke, S. Green, J.E. Stone, J.C. Phillips, GPU computing, in: Proc. of the IEEE, vol. 96, 5
[31]
M. ONeill, A. Brabazon, Grammatical swarm: The generation of programs by social programming, Nat. Comput., 5 (2006) 443-462.
[32]
P.S. Pacheco, An Introduction to Parallel Programming, Morgan Kaufmann, 2011.
[33]
L. Pagie, P. Hogeweg, Evolutionary consequences of coevolving targets, Evol. Comput., 5 (1997) 401-418.
[34]
S.K. Park, K.W. Miller, Random number generators: Good ones are hard to find, Commun. ACM, 31 (1988) 1192-1201.
[35]
R. Poli, W.B. Langdon, N.F. McPhee, A field guide to genetic programming, 2008. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk
[36]
P. Pospichal, E. Murphy, M. ONeill, J. Schwarz, J. Jaros, Acceleration of grammatical evolution using graphics processing units: Computational intelligence on consumer games and graphics hardware, in: Proc. of the Genetic and Evolutionary Computation Conference, GECCO, ACM, 2011, pp. 431-438.
[37]
D. Robilliard, V. Marion, C. Fonlupt, High performance genetic programming on gpu, in: Proceedings of the 2009 Workshop on Bio-Inspired Algorithms for Distributed Systems, ACM, 2009, pp. 85-94.
[38]
D. Robilliard, V. Marion-Poty, C. Fonlupt, Population parallel GP on the G80 GPU, in: LNCS, Springer, 2008, pp. 98-109.
[39]
I.L.S. Russo, H.S. Bernardino, H.J.C. Barbosa, Evoluo gramatical massivamente paralela com OpenCL via compilao dos modelos candidatos, in: Ibero Latin American Congress on Computational Methods in Engineering, CILAMCE, 2014, pp. 117
[40]
I.L.S. Russo, H.S. Bernardino, H.J.C. Barbosa, A parallel multi-GPU clonal selection algorithm for optimization using OpenCL and OpenMP, in: Computational Intelligence (LA-CCI), 2016 IEEE Latin American Conference on, IEEE, 2016, pp. 1-6.
[41]
D. Tarditi, S. Puri, J. Oglesby, Accelerator: using data parallelism to program gpus for general-purpose uses, in: ACM SIGARCH Computer Architecture News, vol. 34, ACM, 2006, pp. 325-335.
[42]
N.Q. Uy, N.X. Hoai, M. ONeill, R.I. McKay, E. Galvn-Lpez, Semantically-based crossover in genetic programming: application to real-valued symbolic regression, Genet. Programm. Evol. Mach., 12 (2011) 91-119.
[43]
E.J. Vladislavleva, G.F. Smits, D. DenHertog, Order of nonlinearity as a complexity measure for models generated by symbolic regression via pareto genetic programming, IEEE Trans. Evol. Comput., 13 (2009) 333-349.
[44]
D.R. White, J. Mcdermott, M. Castelli, L. Manzoni, B.W. Goldman, G. Kronberger, W. Jakowski, U.-M. OReilly, S. Luke, Better gp benchmarks: community survey results and proposals, Genet. Programm. Evol. Mach., 14 (2013) 3-29.

Cited By

View all
  1. A massively parallel Grammatical Evolution technique with OpenCL

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Journal of Parallel and Distributed Computing
    Journal of Parallel and Distributed Computing  Volume 109, Issue C
    November 2017
    232 pages

    Publisher

    Academic Press, Inc.

    United States

    Publication History

    Published: 01 November 2017

    Author Tags

    1. Genetic programming
    2. Grammatical evolution
    3. OpenCL
    4. Parallel computing

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 03 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media