论文标题
CUPSO:用于粒子群优化算法的GPU并行化
cuPSO: GPU Parallelization for Particle Swarm Optimization Algorithms
论文作者
论文摘要
粒子群优化(PSO)是解决优化问题的随机技术。已经尝试缩短基于PSO的算法的计算时间,该算法在GPU(图形处理单元)上具有大量线程,其中形成了螺纹组以计算粒子的信息,并且对粒子的计算输出进行了汇总和分析以找到最佳的解决方案。特别是,基于还原的方法被认为是处理计算出的粒子信息的数据聚集和分析的常见方法。然而,基于我们的分析,基于还原的方法将遭受过多的内存访问和线程同步开销。在本文中,我们提出了一种新型算法,以减轻上述原子功能的开销。线程组中的线程在原子上更新了计算的结果,以条件地将群体内数据队列更新为群体内数据队列,从而阻止了频繁访问对并行减少操作完成的内存。此外,我们开发了算法的增强版本,以减轻线程组之间的同步屏障,这是通过允许线程组异步运行并在必要时偶尔进行全局,锁定变量的更新来实现的。我们的实验结果表明,我们在NVIDIA GPU上运行的算法比英特尔Xeon CPU执行的串行版本快200倍。此外,新型算法的表现优于最先进的方法(平行还原方法)的比例为2.2。
Particle Swarm Optimization (PSO) is a stochastic technique for solving the optimization problem. Attempts have been made to shorten the computation times of PSO based algorithms with massive threads on GPUs (graphic processing units), where thread groups are formed to calculate the information of particles and the computed outputs for the particles are aggregated and analyzed to find the best solution. In particular, the reduction-based method is considered as a common approach to handle the data aggregation and analysis for the calculated particle information. Nevertheless, based on our analysis, the reduction-based method would suffer from excessive memory accesses and thread synchronization overheads. In this paper, we propose a novel algorithm to alleviate the above overheads with the atomic functions. The threads within a thread group update the calculated results atomically to the intra-group data queue conditionally, which prevents the frequent accesses to the memory as done by the parallel reduction operations. Furthermore, we develop an enhanced version of the algorithm to alleviate the synchronization barrier among the thread groups, which is achieved by allowing the thread groups to run asynchronously and updating to the global, lock-protected variables occasionally if necessary. Our experimental results show that our proposed algorithm running on the Nvidia GPU is about 200 times faster than the serial version executed by the Intel Xeon CPU. Moreover, the novel algorithm outperforms the state-of-the-art method (the parallel reduction approach) by a factor of 2.2.