Comparative Study of Parallel Variants for a Particle Swarm Optimization

The Particle Swarm Optimization (PSO) algorithm is a well known alternative for global optimization based on a bio?inspired heuristic. PSO has good performance, low computational complexity and few parameters. Heuristic techniques have been widely studied in the last twenty years and the scientific...

Descripción completa

Detalles Bibliográficos
Autores: Laguna-Sánchez, Gerardo A., Olguí­n-Carbajal, Mauricio, Cruz-Cortés, Nareli, Barrón-Fernández, Ricardo, Álvarez-Cedillo, Jesús A.
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2009
País:México
Institución:UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Repositorio:Journal of Applied Research and Technology
Idioma:inglés
OAI Identifier:oai:ojs2.localhost:article/489
Acceso en línea:https://jart.icat.unam.mx/index.php/jart/article/view/489
Access Level:acceso abierto
Palabra clave:Multithreading GPU
PSO
general?purpose GPU
parallel programming
global optimization
GPU con capacidad miltihilos
GPU para propósitos generales
programación paralela
optimización global
Descripción
Sumario:The Particle Swarm Optimization (PSO) algorithm is a well known alternative for global optimization based on a bio?inspired heuristic. PSO has good performance, low computational complexity and few parameters. Heuristic techniques have been widely studied in the last twenty years and the scientific community is still interested in technological alternatives that accelerate these algorithms in order to apply them to bigger and more complex problems. This article presents an empirical study of some parallel variants for a PSO algorithm, implemented on a Graphic Process Unit (GPU) device with multi?thread support and using the most recent model of parallel programming for these cases. The main idea is to show that, with the help of a multithreading GPU, it is possible to significantly improve the PSO algorithm performance by means of a simple and almost straightforward parallel programming, getting the computing power of cluster in a conventional personal computer.