Parallelization of Binary and Real-Coded Genetic Algorithms on CUDA

It is a well-known fact that genetic algorithms (GAs) are ideal for parallel computers due to their ability to parallely evaluate population members. Most past parallel GA studies have exploited this aspect. Besides resorting to completely different algorithms, such as island models etc., a GA involves a number of other operations which, if parallelized properly, may also end up with a better parallelization to an existing serial GA implementation. In this paper, we parallelize binary and real-coded genetic algorithms for the CUDA platform using its C API extensions. Although, objective and constraint violations are embarassingly parallel, other algorithmic and code optimizations have been tested and suggested. The bottlenecks in the GA algorithms for a parallel implementation are identified and modified suitably. The results are compared with the serial algorithm on accuracy and clock time for varying problems by studying the effect of a number of parameters: (i) differing population sizes, (ii) differing number of threads, (iii) differing problem sizes, and (iv) problems having differing complexities, such as evaluation time and interactions among variables. The results indicate that proposed methods are more than 40 times faster than their serial counterparts.

[1]  Xavier Llorà,et al.  Scaling Genetic Algorithms Using MapReduce , 2009, 2009 Ninth International Conference on Intelligent Systems Design and Applications.

[2]  P. Yu A Class of Solutions for Group Decision Problems , 1973 .

[3]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[4]  Nicolas Lachiche,et al.  Coarse grain parallelization of evolutionary algorithms on GPGPU cards with EASEA , 2009, GECCO.

[5]  Erick Cantú-Paz,et al.  Efficient and Accurate Parallel Genetic Algorithms , 2000, Genetic Algorithms and Evolutionary Computation.

[6]  Zhigeng Pan,et al.  Parallel Genetic Algorithms on Programmable Graphics Hardware , 2005, ICNC.

[7]  Wolfgang Banzhaf,et al.  Deployment of CPU and GPU-based genetic programming on heterogeneous devices , 2009, GECCO '09.

[8]  Wolfgang Banzhaf,et al.  Fast Genetic Programming on GPUs , 2007, EuroGP.

[9]  Erick Cantú-Paz,et al.  A Survey of Parallel Genetic Algorithms , 2000 .

[10]  Enrique Alba,et al.  A survey of parallel distributed genetic algorithms , 1999, Complex..

[11]  Kalyanmoy Deb,et al.  Simulated Binary Crossover for Continuous Search Space , 1995, Complex Syst..

[12]  Patrick Siarry,et al.  Island Model Cooperating with Speciation for Multimodal Optimization , 2000, PPSN.

[13]  Tien-Tsin Wong,et al.  Parallel evolutionary algorithms on graphics processing unit , 2005, 2005 IEEE Congress on Evolutionary Computation.

[14]  Tien-Tsin Wong,et al.  Implementation of parallel genetic algorithms on graphics processing units , 2009 .

[15]  Wolfgang Banzhaf,et al.  Accelerating evolutionary computation with graphics processing units , 2009, GECCO '09.

[16]  Shigeyoshi Tsutsui,et al.  Solving quadratic assignment problems by genetic algorithms with GPU computation: a case study , 2009, GECCO '09.

[17]  William B. Langdon,et al.  A fast high quality pseudo random number generator for nVidia CUDA , 2009, GECCO '09.

[18]  Wolfgang Banzhaf,et al.  Genetic Programming: An Introduction , 1997 .

[19]  Man Leung Wong,et al.  Parallel multi-objective evolutionary algorithms on graphics processing units , 2009, GECCO '09.

[20]  Cyril Fonlupt,et al.  Population Parallel GP on the G80 GPU , 2008, EuroGP.