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.
翻译:粒子 Swarm 优化化 (PSO) 是解决优化问题的一种常见方法。 已经尝试缩短基于 PSO 的算法的计算时间, 其中包括在 GPU( 绘图处理器) 上使用大量线条的 PSO 算法, 用来计算粒子信息, 并且对粒子的计算输出结果进行汇总和分析, 以找到最佳解决方案。 特别是, 基于 减少 的方法被认为是处理计算粒子信息的数据汇总和分析的共同方法 。 然而, 根据我们的分析, 基于 减少 的方法将受到过度的内存存访问和线性同步管理管理器的困扰。 在本文件中, 我们提议采用新的算法来减轻以上原子功能的平行管理器。 一个线条组内的线条将计算结果以原子方式更新到组内部数据排队列的计算结果, 从而阻止通过平行的递减操作来经常存取记忆。 此外, 我们开发了一种强化的算法, 通过允许螺线组进行同步运行, 更新到全球, 锁保护 水平 的 CVI 的变动算法 。