Swarm Grid: A Proposal for High Performance of Parallel Particle Swarm Optimization Using GPGPU
The Particle Swarm Optimization or PSO is heuristics-based optimization, in which the solution candidates of a problem go through a process that simulates a simplified model for social adaptation. Of course, parallel implementations of PSO can provide better performance. However, this depends on heavily on the number and characteristics of the exploited processors. With the advent and large availability of General Purpose Graphics Processing Units and the development and straightforward applicability of the Compute Unified Device Architecture platform, several applications are being benefited by the reduction of the computing time. In this paper, we propose a massively parallel algorithm of PSO and implement it using a GPGPU-based architecture, aiming at improving the performance of computationally demanding optimizations. We show that, for identifiable specific mapping parameters, one can reduce total execution time drastically and also, improve greatly the optimization process convergence. These parameters include the number of swarms and that of particles per swarm, together with their mapping into blocks and threads, respectively. All the swarms and particles therein operate in parallel and synchrony.
KeywordsPSO GPGPU CUDA
Unable to display preview. Download preview PDF.
- 1.Kennedy, J., Eberhart, R.: Particle Swarm Optimization. In: IEEE International Conference on Neural Network, pp. 1942–1948. IEEE Press, Australia (1995)Google Scholar
- 2.Engelbrecht, A.P.: Fundamentals of Computational Swarm Intelligence. John Wiley & Sons Ltd., New Jersey (2005)Google Scholar
- 4.Calazan, R. M., Nedjah, N., de Macedo Mourele, L.: Parallel co-processor for PSO. Int. J. High Performance Systems Architecture 3(4) (2011)Google Scholar
- 5.Calazan, R.M., Nedjah, N., de Macedo Mourele, L.: A Massively Parallel Reconfigurable Co-processor for Computationally Demanding Particle Swarm Optimization. In: 3rd International Symposium of IEEE Circuits and Systems in Latin America — LASCAS 2012. IEEE Computer Society Press, Los Alamitos (2012)Google Scholar
- 6.NVIDIA: NVIDIA CUDA C Programming Guide, Version 4.0 NVIDA Corporation (2011)Google Scholar
- 7.NVIDIA: CURAND Library, Version 1.0, NVIDA Corporation (2010)Google Scholar
- 8.Kirk, D.B., Hwu, W.-M.W.: Programming Massively Parallel Processors. Morgan Kaufmann, San Francisco (2010)Google Scholar
- 9.Sanders, J., Kandrot, E.: CUDA by Example, An Introduction to General-Purpose GPU Programing. Addison-Wesley, San Francisco (2010)Google Scholar
- 12.Cádenas-Montes, M., Vega-Rodríguez, M.A., Rodríguez-Vázquez, J.J., Gómez-Iglesias, A.: Accelerating Particle Swarm Algorithm with GPGPU. In: 19th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), pp. 560–564. IEEE Press, Cyprus (2011)CrossRefGoogle Scholar