During the past decades, evolutionary computation (EC) has demonstrated promising potential in solving various complex optimization problems of relatively small scales. Nowadays, however, ongoing developments in modern science and engineering are bringing increasingly grave challenges to the conventional EC paradigm in terms of scalability. As problem scales increase, on the one hand, the encoding spaces (i.e., dimensions of the decision vectors) are intrinsically larger; on the other hand, EC algorithms often require growing numbers of function evaluations (and probably larger population sizes as well) to work properly. To meet such emerging challenges, not only does it require delicate algorithm designs, but more importantly, a high-performance computing framework is indispensable. Hence, we develop a distributed GPU-accelerated algorithm library -- EvoX. First, we propose a generalized workflow for implementing general EC algorithms. Second, we design a scalable computing framework for running EC algorithms on distributed GPU devices. Third, we provide user-friendly interfaces to both researchers and practitioners for benchmark studies as well as extended real-world applications. To comprehensively assess the performance of EvoX, we conduct a series of experiments, including: (i) scalability test via numerical optimization benchmarks with problem dimensions/population sizes up to millions; (ii) acceleration test via a neuroevolution task with multiple GPU nodes; (iii) extensibility demonstration via the application to reinforcement learning tasks on the OpenAI Gym. The code of EvoX is available at https://github.com/EMI-Group/EvoX.
翻译:在过去的几十年里,进化计算(EC)已经展示出在解决各种相对较小规模的复杂优化问题方面具有很大的潜力。然而,现代科学和工程方面的持续发展对传统的EC范式带来了越来越严峻的挑战,特别是从可扩展性方面考虑。随着问题规模的增加,一方面,编码空间(即决策向量的维数)本质上变得更大;另一方面,EC算法通常需要进行越来越多的函数评估(可能也需要更大的种群大小)才能正常运行。为了满足这种新兴挑战,不仅需要精细的算法设计,更重要的是需要高性能计算框架。因此,我们开发了一个分布式GPU加速算法库——EvoX。首先,我们提出了一种用于实现通用EC算法的通用工作流程。其次,我们设计了一种可扩展的计算框架,用于在分布式GPU设备上运行EC算法。第三,我们为研究人员和实践者提供了用户友好的界面,用于基准研究以及扩展的现实世界应用。为了全面评估EvoX的性能,我们进行了一系列实验,包括:(i)通过数值优化基准测试进行可扩展性测试,其中问题维数/种群大小高达数百万;(ii)通过使用多个GPU节点的神经进化任务进行加速测试;(iii)通过在OpenAI Gym上应用强化学习任务进行可扩展性演示。EvoX的代码可在https://github.com/EMI-Group/EvoX上获得。