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. Empirically, we assess the promising scalability of EvoX via a series of benchmark experiments with problem dimensions/population sizes up to millions. Moreover, we demonstrate the easy usability of EvoX by applying it to solving reinforcement learning tasks on OpenAI Gym. To the best of our knowledge, this is the first library supporting distributed GPU computing in the EC literature. The code of EvoX is available at https://github.com/EMI-Group/EvoX.
翻译:在过去的几十年里,演化计算在处理中等规模复杂优化问题方面展现了巨大潜力。然而,当前随着现代科学与工程的持续发展,传统演化计算范式正面临着日益严峻的可扩展性挑战。一方面,问题规模的增大导致编码空间(即决策向量的维度)本身随之扩大;另一方面,演化计算算法通常需要更多次函数评估(以及更大的种群规模才能有效运作)。为应对这些新挑战,不仅需要精妙的算法设计,更关键的是需要构建高性能计算框架。为此,我们开发了分布式GPU加速算法库——EvoX。首先,我们提出了一种适用于通用演化计算算法的工作流框架;其次,设计了可扩展的计算架构以支持在分布式GPU设备上运行演化计算算法;第三,我们为研究人员和实践者提供了用户友好的接口,既可用于基准测试研究,也可扩展至实际应用。在实证方面,我们通过一系列基准实验验证了EvoX在百万级问题维度/种群规模下的显著可扩展性。此外,通过将EvoX应用于OpenAI Gym上的强化学习任务,我们展示了其易用性。据我们所知,这是演化计算文献中首个支持分布式GPU计算的库。EvoX代码已开源:https://github.com/EMI-Group/EvoX。