SciELO - Scientific Electronic Library Online

vol.7 issue3Polygonal Approximation of Contour Shapes Using Corner DetectorsMulti-agent system for the making of intelligence and interactive decisions within the learner's learning process in a web-based education environment author indexsubject indexsearch form
Home Pagealphabetic serial listing  

Services on Demand




Related links

  • Have no similar articlesSimilars in SciELO


Journal of applied research and technology

On-line version ISSN 2448-6736Print version ISSN 1665-6423

J. appl. res. technol vol.7 n.3 México Dec. 2009


Comparative Study of Parallel Variants for a Particle Swarm Optimization Algorithm Implemented on a Multithreading GPU


Gerardo A. Laguna–Sánchez*1, Mauricio Olguín–Carbajal2, Nareli Cruz–Cortés3, Ricardo Barrón–Fernández4, Jesús A. Álvarez–Cedillo5


1, 2, 3, 4 Centro de Investigación en Computación (CIC–IPN) Instituto Politécnico Nacional, México D.F, Mexico *

5 CIDETEC–IPN Instituto Politécnico Nacional, México D.F, México



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.

Keywords: Multithreading GPU, PSO, general–purpose GPU, parallel programming, global optimization.



El algoritmo Particle Swarm Optimization (PSO) ha tenido gran aceptación como alternativa de optimización global con base en heurísticas bio–inspiradas. Sus principales ventajas son su buen desempeño, baja complejidad computacional y un mínimo de parámetros. En general, las técnicas heurísticas han tenido un gran auge en los últimos veinte años y aún hoy resulta atractivo estudiar alternativas tecnológicas que permitan acelerar estos algoritmos para aplicarlos a problemas mucho más grandes y complejos. En este artículo se presenta un estudio empírico sobre la aplicación de algunas variantes paralelas para un algoritmo PSO, empleando un dispositivo de procesamiento gráfico (GPU) con capacidad multi–hilos y el más reciente modelo de programación paralela para estos casos. La idea principal es demostrar que es posible mejorar significativamente el desempeño del algoritmo PSO, mediante una programación paralela sencilla y directa, logrando con ello el poder computacional de un cluster en una computadora personal convencional.

Palabras clave: GPU con capacidad miltihilos, PSO, GPU para propósitos generales, programación paralela, optimización global.





G.A. Laguna–Sánchez and R. Barrón–Fernández acknowledge Instituto Politécnico Nacional (IPN) and Consejo Nacional de Ciencia y Tecnologíal (CONACyT) of Mexico for their support to this research through SIP–20090620 project (IPN), I0013/91434 fund (CONACyT), and Ph. D. scholarship # 210397 (CONACyT).



[1] A. E. Eiben and J.E. Smith, Introduction to Evolutionary Computing, Natural Computing Series Springer, 2003.         [ Links ]

[2] M. Dorigo and T. Stützle, The Ant Colony Optimization Metaheuristic: Algorithms, Applications, and Advances, Handbook of Metaheuristics, Kluwer Academic Publishers, 2002, pp. 251—285.         [ Links ]

[3] M. Dorigo and K. Socha, Ant Colony Optimization, in Handbook of Approximation Algorithms and Metaheuristics, T.F. Gonzalez, Ed., Chapman & Hall, 2007, pp. 26.1—26.14.         [ Links ]

[4] J. Kennedy and R. Eberhart, Particle Swarm Optimization, in Proceedings of IEEE Conference on Neural Networks, 1995, pp. 1942–1948.         [ Links ]

[5] J. Owens et al., A Survey of General–purpose Computation on Graphics Hardware, Computer Graphics Forum, Vol. 26, No. 1, 2007, pp. 80–113.         [ Links ]

[6] E. Cantú–Paz, Efficient and Accurate Parallel Genetic Algorithms, Kluwer, 2000.         [ Links ]

[7] M. Belal and P. El–Ghazawi, Parallel Models for Particle Swarm Optimizers, International Journal of Intelligent Computing and Information Sciences, IJICIS, Vol. 4, No. 1, January, 2004, pp. 100–111.         [ Links ]

[8] J. Nickolls et al., Scalable Parallel Programming with CUDA, ACM Queue, 2008, pp. 40–53, March/April, on line at:         [ Links ]

[9] J.F. Schutte et al., Parallel Global Optimization with the Particle Swarm Algorithm, International Journal for Numerical Methods in Engineering, Vol. 61, No. 13, 2003, pp. 1–24.         [ Links ]

[10] N. Jin and Y. Rahmat–Samii, Parallel Particle Swarm Optimization and Finite–difference Time–domain (PSO/FDTD) Algorithm for Multiband and Wide–band Patch Antenna Designs, IEEE Transactions on Antennas and Propagation, Vol. 53, No. 11, November, 2005, pp. 3459–3468.         [ Links ]

[11] S. Cui and D. Weile, Application of a Parallel Particle Swarm Optimization Scheme to the Design of Electromagnetic Absorbers, IEEE Transactions on Antennas and Propagation, Vol. 53, No. 11, November, 2005, pp. 3616–3624.         [ Links ]

[12] H. Ma and et al., Research on Parallel Particle Swarm Optimization Algorithm Based on Cultural Evolution for the Multi–level Capacitated Lot–sizing Problem, in Proceedings IEEE Control and Decision Conference, 2008, pp. 965–970, July.         [ Links ]

[13] J. Chang et al., A Parallel Particle Swarm Optimization Algorithm with Communication Strategies, Journal of Information Science and Engineering, Vol. 21, No. 4, 2005, pp. 809–818.         [ Links ]

[14] L. Bo et al., Parallelizing Particle Swarm Optimization, IEEE Pacific Rim Conference on Communications, in Computers and Signal Processing, PACRIM, 2005, pp. 288–291, Aug.         [ Links ]

[15] S. Mostaghim et al., Multi–objective Particle Swarm Optimization on Computer Grids, in Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation, 2007, pp. 869 – 875, July.         [ Links ]

[16] K. Parsopoulos et al., Multiobjective Optimization Using Parallel Vector Evaluated Particle Swarm Optimization, in Proceedings of the IASTED International Conference on Artificial Intelligence and Applications (AIA), 2007, pp. 869 – 875, July.         [ Links ]

[17] I. Schoeman and A. Engelbrecht, A Parallel Vector–based Particle Swarm Optimizer, Adaptive and Natural Computing Algorithms, in Proceedings of the International Conference in Coimbra. 2005, pp. 268–271.         [ Links ]

[18] S. Baskar and P Suganthan, A Novel Concurrent Particle Swarm Optimization, in Proceedings IEEE Congress on Evolutionary Computation, 2004, pp. 792–796.         [ Links ]

[19] S. Harding and W Banzhaf, Fast Genetic Programming on GPUs, in Proceedings of the 10th European Conference on Genetic Programming, ser. Lecture Notes in Computer Science, M. Ebner et al., Eds., Vol. 4445, 2007, pp. 90–101, April.         [ Links ]

[20] S. Harding and W. Banzhaf, Fast Genetic Programming and Artificial Developmental Systems on GPUs, in Proceedings of the 21st International Symposium on High Performance Computing Systems and Applications, 2007, pp. 2–2, May.         [ Links ]

[21] W. B. Langdon and W. Banzhaf, A SIMD Interpreter for Genetic Programming on GPU Graphics Cards, in EuroGP, ser. LNCS, Vol. 4971, March, 2008, pp. 73–85.         [ Links ]

[22] D. Robilliard et al., Population Parallel GP on the G80 GPU, in Lecture Notes in Computer Science, Vol. 4971, 2008, pp. 98–109.         [ Links ]

[23] J. Li et al., An Efficient Fine–grained Parallel Particle Swarm Optimization Method Based on GPU–acceleration, International Journal of Innovative Computing, Information and Control, Vol. 3, No. 6(B) , Dec., 2007, pp. 1707.         [ Links ]

[24] T. Halfhill, Parallel Processing with CUDA, Microprocessor Report,, 2008. On line at:, Consulted on Feb. 19th 2009.         [ Links ]

[25] J. Kennedy and R. Eberhart, Swarm Intelligence, Morgan Kaufmann Academic Press, 2001.         [ Links ]

[26] Y. Shi and R. Eberhart, A Modified Particle Swarm Optimizer, in IEEE International Conference on Evolutionary Computation Proceedings, 1998, pp. 69–73, May.         [ Links ]

[27] M. O'Neill, and A. Brabazon, Self–Organising Swarm (SOSwarm), Soft Comput, Vol.12, January, 2008, p.p. 1073–1080.         [ Links ]

[28] A. Mzoughi, O. Lafontaine, and D. Litaize, Performance of the Vectorial Processor VECSM2* Using Serial Multiport Memory, in Proceedings of the 10th International Conference on Supercomputing, 1996, pp. 390–397, Toulouse Cedex, France.         [ Links ]

[29] CUDA: Computer Unified Device Architecture Programming Guide, Version 2.0, NVIDIA Corporation, California, USA, 2008, July.         [ Links ]

[30] E. Mezura–Montes, J. Velázquez–Reyes and C. A. Coello–Coello, A Comparative Study of Differential Evolution Variants for Global Optimization, GECCO, 2006, pp. 485–492, July.         [ Links ]

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License