Many-threaded implementation of differential evolution for the CUDA platform

Differential evolution is an efficient populational meta -- heuristic optimization algorithm successful in solving difficult real world problems. Due to the simplicity of its operations and data structures, it is suitable for a parallel implementation on multicore systems and on the GPU. In this paper, we design a simple yet highly parallel implementation of the differential evolution using the CUDA architecture. We demonstrate the speedup obtained by the proposed parallelization of the differential evolution on an NP hard combinatorial optimization problem and on a benchmark function of many variables.

[1]  Ladislau Bölöni,et al.  A Comparison of Eleven Static Heuristics for Mapping a Class of Independent Tasks onto Heterogeneous Distributed Computing Systems , 2001, J. Parallel Distributed Comput..

[2]  A. A. Maciejewski,et al.  Heterogeneous Computing , 2002 .

[3]  Weihang Zhu,et al.  Massively parallel differential evolution—pattern search optimization with graphics hardware acceleration: an investigation on bound constrained optimization problems , 2011, J. Glob. Optim..

[4]  Yaohang Li,et al.  GPU-accelerated differential evolutionary Markov Chain Monte Carlo method for multi-objective optimization over continuous space , 2010, BADS '10.

[5]  Jirí Jaros,et al.  Parallel Genetic Algorithm on the CUDA Architecture , 2010, EvoApplications.

[6]  Václav Snásel,et al.  Evolving Schedules of Independent Tasks by Differential Evolution , 2011, Intelligent Networking, Collaborative Systems and Applications.

[7]  Gerhard Wellein,et al.  Data access optimizations for highly threaded multi-core CPUs with multiple memory controllers , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[8]  Jian-Zhong Li,et al.  Performance Analysis of Task Scheduling Heuristics in Grid , 2007, 2007 International Conference on Machine Learning and Cybernetics.

[9]  John Levine,et al.  A hybrid ant algorithm for scheduling independent jobs in heterogeneous computing environments , 2004 .

[10]  Václav Snásel,et al.  Comparison of Heuristics for Scheduling Independent Tasks on Heterogeneous Distributed Environments , 2009, 2009 International Joint Conference on Computational Sciences and Optimization.

[11]  Mircea Andrecut,et al.  Fast GPU Implementation of Sparse Signal Recovery from Random Projections , 2008, Eng. Lett..

[12]  Naren Ramakrishnan,et al.  Accelerator-Oriented Algorithm Transformation for Temporal Data Mining , 2009, 2009 Sixth IFIP International Conference on Network and Parallel Computing.

[13]  William B. Langdon,et al.  A SIMD Interpreter for Genetic Programming on GPU Graphics Cards , 2007, EuroGP.

[14]  Fatos Xhafa,et al.  Genetic algorithm based schedulers for grid computing systems , 2007 .

[15]  Jack J. Dongarra,et al.  Experiments with Scheduling Using Simulated Annealing in a Grid Environment , 2002, GRID.

[16]  Renato A. Krohling,et al.  Differential evolution algorithm on the GPU with C-CUDA , 2010, IEEE Congress on Evolutionary Computation.

[17]  R. Storn,et al.  Differential Evolution: A Practical Approach to Global Optimization (Natural Computing Series) , 2005 .

[18]  David P. Anderson,et al.  An analysis of massively distributed evolutionary algorithms , 2010, IEEE Congress on Evolutionary Computation.

[19]  Cyril Fonlupt,et al.  High performance genetic programming on GPU , 2009, BADS '09.

[20]  David Fernández-Baca,et al.  Allocating Modules to Processors in a Distributed System , 1989, IEEE Trans. Software Eng..

[21]  Andrew J. Page,et al.  Framework for Task Scheduling in Heterogeneous Distributed Computing Using Genetic Algorithms , 2005, Artificial Intelligence Review.