Parallelization of binary and real-coded genetic algorithms on GPU using CUDA

Genetic Algorithms(GAs) are suitable for parallel computing since population members fitness maybe evaluated in parallel. Most past parallel GA studies have exploited this aspect, besides resorting to different algorithms, such as island, single-population master-slave, fine-grained and hybrid models. A GA involves a number of other operations which, if parallelized, may lead to better parallel GA implementation than those currently existing. In this paper, we parallelize binary and real-coded genetic algorithms using CUDA API's with C. Although, objective and constraint violations evaluations are embarassingly parallel, other algorithmic and code optimizations have been proposed and tested. The bottlenecks in a parallel GA implementation are identified and modified suitably. The results are compared with the sequential algorithm on accuracy and clock time for varying problems by studying the effect of a number of parameters, namely: (i) population sizes, (ii) number of threads, (iii) problem sizes, and (iv) problems of differing complexities. Significant speed-ups have been observed over the sequential GA.

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

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

[3]  S. K. Park,et al.  Random number generators: good ones are hard to find , 1988, CACM.

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

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

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

[7]  Peter Nordin,et al.  Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications , 1998 .

[8]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[23]  Kalyanmoy Deb,et al.  Multi-objective optimization using evolutionary algorithms , 2001, Wiley-Interscience series in systems and optimization.