An Implementation of Evolutionary Computation Operators in OpenCL

  • István Lőrentz
  • Răzvan Andonie
  • Mihaela Maliţa
Part of the Studies in Computational Intelligence book series (SCI, volume 382)


We discuss the parallel implementation of Genetic Algorithms and Evolution Strategy on General-Purpose Graphical Units, using the OpenCL framework. Multiple evolutionary operators are tested (tournament, roulette wheel selection, uniform and Gaussian mutation, crossover, recombination), as well as different approaches for parallelism, for small and large problem sizes. We use the Island Model of Parallel GA, with random migration. Performance is measured using two graphic cards: NVidia GeForce GTX 560Ti and AMD Radeon 6950. Tests are performed in a distributed grid, using the Java Parallel Processing Framework.


Local Memory Global Memory Graphic Card Single Instruction Multiple Data Compute Unit 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bäck, T.: Evolutionary algorithms in theory and practice. Oxford University Press, Oxford (1996)zbMATHGoogle Scholar
  2. 2.
    Bäck, T., Fogel, D.B., Michalewicz, Z. (eds.): Handbook of Evolutionary Computation. IOP Publishing Ltd. (1997)Google Scholar
  3. 3.
    Bäck, T., Fogel, D.B., Michalewicz, Z. (eds.): Basic Algorithms and Operators. IOP Publishing Ltd. (1999)Google Scholar
  4. 4.
    Beyer, H.G., Schwefel, H.P.: Evolution strategies A comprehensive introduction. Natural Computing 1, 3–52 (2002)MathSciNetzbMATHCrossRefGoogle Scholar
  5. 5.
    Cantú-Paz, E.: A survey of parallel genetic algorithms. Calculateurs Paralleles 10 (1998)Google Scholar
  6. 6.
    De Jong, K.A.: An analysis of the behavior of a class of genetic adaptive systems. Ph.D. thesis, Ann Arbor, MI, USA (1975)Google Scholar
  7. 7.
    Harris, M.: Optimizing Parallel Reduction in CUDA. NVIDIA Developer Technology (2008)Google Scholar
  8. 8.
    Harris, M., Sengupta, S., Owens, J.D.: Parallel Prefix Sum (Scan) with CUDA. In: Nguyen, H. (ed.) GPU Gems 3, Addison-Wesley, Reading (2007)Google Scholar
  9. 9.
    Holland, J.: Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor (1975)Google Scholar
  10. 10.
    Khronos OpenCL Working Group: The OpenCL Specification, version 1.1 (2010),
  11. 11.
    Lőrentz, I., Maliţa, M., Andonie, R.: Evolutionary Computation on the Connex Architecture. In: The 22nd Midwest Artificial Intelligence and Cognitive Science Conference, Cincinnati, Ohio, vol. 710, (2011)Google Scholar
  12. 12.
    Marsaglia, G.: Xorshift RNGs. Journal of Statistical Software 8(14), 1–6 (2003)Google Scholar
  13. 13.
    Mühlenbein, H., Schomisch, M., Born, J.: The parallel genetic algorithm as function optimizer. Parallel Comput. 17, 619–632 (1991)zbMATHCrossRefGoogle Scholar
  14. 14.
    NVIDIA: OpenCL Programming Guide for the CUDA Architecture, 3.2 edn. (2010)Google Scholar
  15. 15.
    Pharr, M., Fernando, R.: GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation. chap. 46. Addison-Wesley Professional, Reading (2005)Google Scholar
  16. 16.
    Pospichal, P., Jaros, J., Schwarz, J.: Parallel Genetic Algorithm on the CUDA Architecture. In: Di Chio, C., Cagnoni, S., Cotta, C., Ebner, M., Ekárt, A., Esparcia-Alcazar, A.I., Goh, C.-K., Merelo, J.J., Neri, F., Preuß, M., Togelius, J., Yannakakis, G.N. (eds.) EvoApplicatons 2010. LNCS, vol. 6024, pp. 442–451. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  17. 17.
    Quinn, M.J.: Parallel Programming in C with MPI and OpenMP. McGraw-Hill, New York (2003)Google Scholar
  18. 18.
    Rechenberg, I.: Evolutionsstrategie 1994. Frommann-Holzboog (1994)Google Scholar
  19. 19.
    Rosenbrock, H.H.: An Automatic Method for Finding the Greatest or Least Value of a Function. The Computer Journal 3(3), 175–184 (1960)MathSciNetCrossRefGoogle Scholar
  20. 20.
    JOCL - Java binding for the OpenCL API,
  21. 21.
    JPPF - Java Parallel Processing Framework,

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • István Lőrentz
    • 1
  • Răzvan Andonie
    • 2
    • 1
  • Mihaela Maliţa
    • 3
  1. 1.Electronics and Computers DepartmentTransylvania UniversityBraşovRomania
  2. 2.Computer Science DepartmentCentral Washington University EllensburgUSA
  3. 3.Computer Science DepartmentSaint Anselm College ManchesterUSA

Personalised recommendations