libCudaOptimize: an open source library of GPU-based metaheuristics

Evolutionary Computation techniques and other metaheuristics have been increasingly used in the last years for solving many real-world tasks that can be formulated as optimization problems. Among their numerous strengths, a major one is their natural predisposition to parallelization. In this paper, we introduce libCudaOptimize, an open source library which implements some metaheuristics for continuous optimization: presently Particle Swarm Optimization, Differential Evolution, Scatter Search, and Solis&Wets local search. This library allows users either to apply these metaheuristics directly to their own fitness function or to extend it by implementing their own parallel optimization techniques. The library is written in CUDA-C to make extensive use of parallelization, as allowed by Graphics Processing Units. After describing the library, we consider two practical case studies: the optimization of a fitness function for the automatic localization of anatomical brain structures in histological images, and the parallel implementation of Simulated Annealing as a new module, which extends the library while keeping code compatibility with it, so that the new method can be readily available for future use within the library as an alternative optimization technique.

[1]  Andries Petrus Engelbrecht,et al.  CIlib: A collaborative framework for Computational Intelligence algorithms - Part I , 2008, 2008 IEEE International Joint Conference on Neural Networks (IEEE World Congress on Computational Intelligence).

[2]  Riccardo Poli,et al.  Analysis of the publications on the applications of particle swarm optimisation , 2008 .

[3]  Mario Giacobini,et al.  Automatic hippocampus localization in histological images using PSO-based deformable models , 2011, GECCO '11.

[4]  P. N. Suganthan,et al.  Differential Evolution: A Survey of the State-of-the-Art , 2011, IEEE Transactions on Evolutionary Computation.

[5]  Chukwudi Anyakoha,et al.  A review of particle swarm optimization. Part I: background and development , 2007, Natural Computing.

[6]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[7]  James Kennedy,et al.  Particle swarm optimization , 2002, Proceedings of ICNN'95 - International Conference on Neural Networks.

[8]  Thomas F. Coleman,et al.  Optimization Toolbox User's Guide , 1998 .

[9]  Francisco Luna,et al.  jMetal: a Java Framework for Developing Multi-Objective Optimization Metaheuristics , 2006 .

[10]  Andries Petrus Engelbrecht,et al.  CIlib: A collaborative framework for Computational Intelligence algorithms - Part II , 2008, 2008 IEEE International Joint Conference on Neural Networks (IEEE World Congress on Computational Intelligence).

[11]  Roger J.-B. Wets,et al.  Minimization by Random Search Techniques , 1981, Math. Oper. Res..

[12]  César Hervás-Martínez,et al.  JCLEC: a Java framework for evolutionary computation , 2007, Soft Comput..

[13]  Fabio Daolio,et al.  Evaluation of parallel particle swarm optimization algorithms within the CUDA™ architecture , 2011, Inf. Sci..

[14]  Thomas Stützle,et al.  Ant Colony Optimization Theory , 2004 .

[15]  R. Storn,et al.  Differential Evolution - A simple and efficient adaptive scheme for global optimization over continuous spaces , 2004 .

[16]  Rainer Storn,et al.  Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces , 1997, J. Glob. Optim..

[17]  Václav Snásel,et al.  A comparison of many-threaded differential evolution and genetic algorithms on CUDA , 2011, 2011 Third World Congress on Nature and Biologically Inspired Computing.

[18]  El-Ghazali Talbi,et al.  Towards ParadisEO-MO-GPU: A Framework for GPU-Based Local Search Metaheuristics , 2011, IWANN.