Running Particle Swarm Optimization on Graphic Processing Units

  • Bastos-Filho C
  • Oliveira M
  • Nascimento D
N/ACitations
Citations of this article
18Readers
Mendeley users who have this article in their library.

Abstract

Particle swarm optimization (PSO) is a computational intelligence technique widely used to solve optimization problems. It was inspired on the social behavior of flocks of birds. In the PSO algorithm, the search space is bounded and each possiblepositionwithin the search space represents a solution for the optimization problem. During the algorithm execution, the particles adjust their velocities and positions based on the best position reached by itself and on the best position reached by its neighborhood during the search process. Someissues are quite important for the convergence velocity and the quality of the solutions, among them we can cite: the communication scheme to exchange information among the particles (topology) (Bratton & Kennedy (2007); Kennedy & Mendes (2002)), the equation used to update the velocity of the particles (Eberhart & Shi (2000)), the mechanisms to avoid explosion states (Clerc & Kennedy (2002)) and the quality of the Random Number Generator (RNGs) (Bastos-Filho et al. (2009)). PSO is inherently parallel since the fitness can be evaluated for each particle individually. Hence, PSO is naturally suitable for parallel implementations. In the recent years, the use of Graphic Processing Units (GPUs) have been proposed for some general purpose computing applications. GPUs have shown great advantages on applications requiring intensive parallel computing.DespiteGPUbased architectures require an additional CPU time to assign the tasks for the GPUs, the speed up obtained by GPU based architectures in relation to simple CPU architectures is higher for applicationwhere the processing is much more focused on floating point andmatrix operations. The major benefit to implement the PSO in GPU based architectures is the possibility to reduce the execution time. It is quite possible since the fitness evaluation and the update processes of the particles can be parallelized through different threads. Nevertheless, some issues regardingGPU-based PSOs should be analyzed. In this chapter, we analyze and discuss some advantages and drawbacks of PSO algorithms implemented on GPU-based architectures. We describe the steps needed to implement different PSO variations in these architectures. These variations include different topologies such as Global, Local, Focal, Four Cluster and von Neumann. Two different approaches used to update the particles are analyzed as well. We also consider some other relevant aspects such as: (1) how to determine the number of particle for a specific GPU architecture; (2) in which memory the variables should be allocated; (3)which RNG should be used to accelerate the execution; and (4)when and where is necessary to state synchronization barriers.The analysis of these aspects is crucial to provide high performance for GPU-based PSOs. In order to show this,we performed simulation using a parallel processing platformdeveloped by NVIDIA, called CUDA (NVIDIA, 2010).

Cite

CITATION STYLE

APA

Bastos-Filho, C., Oliveira, M., & Nascimento, D. (2011). Running Particle Swarm Optimization on Graphic Processing Units. In Search Algorithms and Applications. InTech. https://doi.org/10.5772/14694

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free