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.
翻译:过去数十年间,演化计算在解决各类小规模复杂优化问题中展现出巨大潜力。然而,当前现代科学与工程领域的持续发展正对传统演化计算范式在可扩展性方面提出日益严峻的挑战。随着问题规模的增大,一方面编码空间(即决策向量的维度)本质性扩大,另一方面演化计算算法通常需要更多函数评估次数(且可能伴随更大的种群规模)才能正常运行。为应对这些新兴挑战,不仅需要精妙的算法设计,更重要的是构建高性能计算框架。为此,我们开发了分布式GPU加速算法库——EvoX。首先,我们提出实现通用演化计算算法的通用化工作流;其次,设计面向分布式GPU设备运行演化计算算法的可扩展计算框架;第三,为研究人员与实践者提供友好的基准测试及扩展真实世界应用的交互接口。为全面评估EvoX性能,我们开展了一系列实验,包括:(i) 基于问题维度/种群规模达百万级的数值优化基准测试的可扩展性验证;(ii) 基于多GPU节点的神经进化任务的加速测试;(iii) 基于OpenAI Gym强化学习任务的扩展性演示。EvoX代码已开源至https://github.com/EMI-Group/EvoX。