NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

打破 51 项记录,解密华为云运筹优化技术实践

  • 2020-12-14
  • 本文字数:3942 字

    阅读完需:约 13 分钟

打破51项记录,解密华为云运筹优化技术实践

华为云调度与算法团队近日刷新了 PDPTW 问题榜单中 51 项算例的世界最好记录。此榜单由欧洲 SINTEF 机构自 1999 年就发起并管理,被认为是运筹优化领域中 VRP 相关问题的全球最权威的评测平台。


问题介绍


PDPTW 问题属于 VRP 系列问题之一,也是经典的 NP 难问题,已经被广泛研究超过 50 年。 与经典 VRP 问题相比,该问题扩展了更多的约束,求解难度也更高。


简单来讲, VRP 系列问题就是用来在图网络中寻找满足一系列约束情况下的最优路径问题。该系列问题在物流配送、航路规划、电路设计以及云计算等领域都有广泛应用。


VRP 系列问题都属于典型的 NP 难约束优化问题。 约束优化问题与工业场景优化关系非常密切,众多的工业场景下的问题都可以建模为约束优化问题,比如典型场景有,网络设计优化、码头作业调度、芯 片设计布线、人员和时刻表排班、库存管理等等。


在云场景下,我们同样面临着很多复杂的、大规模、 多目标的 NP 难优化问题,比如,机型规划、弹性保障、资源/任务调度、资源整理、容量管理等,这些问题也可以建模为一个或多个约束优化问题的组合。



什么是约束优化问题?


约束优化问题是一类数学最优化问题,它由目标函数以及与目标函数中的变量相关的约束条件两部分组成,优化过程则为在约束条件下最优化(最大化或最小化)目标函数。觉得太抽象?我举个例子:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。这个问题就是经典的背包问题,从约束优化角度来看,目标函数就是选择物品使得总价值最高;约束是不能超过“限定的总重量”,此外,还有一个隐含约束是每个物品都是一个整体,不能切分。背包问题和云上的虚拟机放置问题是同源问题,只是虚拟机放置问题的约束和目标会复杂的多。


求解这些约束优化问题有什么价值?


随着公有云规模越来越大,优化所能带来的价值也越来越高。单个云数据中心的物理主机规模可以达到 10 万数量级,云服务器规模可达数十万到百万台数量级。如果能够降低 1%的资源碎片率,这些资源就可以在高峰期为用户提供更强的弹性能力,为客户创造价值。


什么是资源碎片?


公有云的资源池有点像电脑硬盘,因为资源是不断动态分配与回收的, 且资源的规格种类又是多样的,随着时间的累积,资源池也可能会像硬盘一样产生无法被再次分配的碎片。举个简单的例子,某台主机上还有剩余的 2 核 CPU 资源,但是内存已经被分配完毕了,那么这 2 核的 CPU 在有新的内存释放之前就无法被分配和售卖了,这部分 CPU 就是碎片。


当然降低资源的分配碎片仅仅是云场景下约束优化问题的一个相对简单的例子。更复杂的,如提高资源的实际利用率的同时按照 SLA 严格保障用户的服务质量等。这是一个庞大的系统层面的问题,其中就包含 了亟待解决的多种复杂的 NP 难约束优化问题。这些问题不仅仅出现在资源调度的层面,而是贯穿整 个云资源的生命周期,如物理机型的规划、云服务器规格的定义、容量管理、资源调度、任务调度、站 点选址、甚至是定价等等。 建模与求解此类工业级复杂约束优化问题一直是学术界和工业界共同的挑战和目标。


云上遇到的约束优化问题有多难?


云上面临的约束优化问题通常有规模大、约束复杂、多目标、NP-困难等特点。


随着问题规模的增大,求解该问题最优解的时间是非多项式级别(比如指数级)增长的,而这是计算机无法承受的。


  • 规模大


正如前文所讲,由于云本身的规模越来越大,单个云数据中心的物理主机规模可以达到 10 万数量级,云服务器规模可达数十万到百万台数量级。 因此,云上面临的约束优化问题往往规模非常大,决策变量可高达上亿规模,并且通常是离散的组合优化问题而不是单纯的线性规划问题。


了解优化领域的同学应该知道,这么大规模的组合优化问题求解难度是非常高的,这种情况下即使使用号称业界速度最快的商用求解器 Gurobi 也无法直接求解。


对于规模问题,我还是举个例子:在仅考虑容量约束的虚拟机最优分配问题场景中,假设虚拟机规模 为 30 万,主机规模为 10 万的情况下,搜索空间约 10^1500000。


  • 约束多


公有云是一个复杂的系统,需要考虑很多复杂的实际约束。我还是以资源调度场景为例,需要考虑的约束可能包括:NUMA 结构问题(尤其是在 Kunpeng    CPU 场景下,NUMA 结构更加复杂),租户的亲和性与反亲和性、负载的亲和性与反亲和性、离线任务与在线任务的亲和性与反亲和性,生命周期 的亲和性、机柜功率约束、故障域约束、网络 QoS 约束、散热约束、节省电力、SLA 约束等等。如此复杂的约束极大增大了求解的困难度。


  • 动态性


公有云相对企业自建的数据中心或者私有云的一个优势是,可以提供极致的弹性资源能力,但弹性给资源的调度与经营带来的就是高动态性,这意味着求解的状态变化很快,时间如果太久,求的结果就没有意义了。另外这种动态性以及随机性使得对解的优度的评估还需要考虑对未来的影响,避免陷入到自我矛盾的境地。


  • 其他特点


公有云还有很多其他的特点,比如分布式、边缘节点自治、突发型实例等都让问题的难度呈指数级增加。


面向云场景的约束规划问题优化求解引擎


为了解决云上遇到的此类复杂的约束优化问题,尤其是云场景下资源规划与调度相关问题,华为云调度 与算法团队设计了面向云场景的约束规划问题优化求解引擎。


该优化求解引擎当前采用了基于元启发式搜索算法的求解框架,整合了包括自适应大规模邻域搜索、禁忌搜索、引导式局部搜索、创新的种群管理方法以及基于统计模型的禁忌表策略等方法,包含专门设计和优化的一系列核心算法和策略组件,


而且,针对云上大规模甚至是超大规模问题场景做了深度优化。本次 PDPTW 问题的解也是使用该引擎获得的。


面向云场景的约束规划问题优化求解引擎的核心是基于元启发式搜索算法框架,那么我们为什么选择元启发式搜索呢?


在计算复杂性和最优化领域,有一个理论叫做“没有免费的午餐理论(NFL,No Free Lunch)”, 这个理论的细节可以参考这篇论文https://ieeexplore.ieee.or/document/585893


总结起来,NFL 理论是指,对于优化问题,在有限的搜索空间中,当且仅当指定了具体问题时,才能说一个优化方法优于另一种优化方法。或者说,理论上,并不存在一个**“一劳永逸”**的算法在所有的问题上都能获得最优的结果。


那么,我们再看常用的求解 NP 难约束优化问题的方法,大致可以分为精确算法和启发式算法。


精确算法,如 Branch-and-cut, Branch-and-bound 等,可以在理论上保证算法朝最优解收敛,但是通常适用于问题规模较小的情况。较大的规模问题,如超过 VRP 问题超过 200 节点,精确算法一般就无法在可接受的时间内给出结果了。 对于云上这么大规模(上亿决策变量)与复杂约束的问题,求解时长与资源消耗都是计算机完全无法接受的,因此,一般来讲并不合适在云场景下使用。


启发式算法,对于无法使用精确算法求得最优解的大规模甚至是超大规模问题,典型的场景当然就包括 云上面临的这些优化问题,研究者尝试使用一些“技巧”来求得“足够好的解”,典型的就是启发式类的算法,又可以分为简单启发式和元启发式。


二者最大的区别就是,简单启发式算法更多是问题相关, 而元启发式算法更多的是“问题无关”的。或者说,简单启发式算法对于 A 问题有效,但对于 B 问题可能完全无法使用。 但,元启发式是相对“通用”的搜索框架,可以应用到几乎所有的优化问题上面。


这样看起来,元启发式算法是不是违反了 NFL 理论,在使用一个算法解决所有问题?


其实不并不是的,元启发式算法内部一般包含两种关键机制,就是搜索集中性(  intensification)的机制和搜索的疏散性(diversification)的机制。


前者负责搜索当前解的周围区域,而后者负责逃出局部优陷阱去更有“前途”的搜索区域。而一个搜索策略就是要做二者的折中或者平衡,这里并没有一个“完美策略”可以  使得该策略在所有优化问题上的性能都最好,所以也恰恰是符合 NFL 理论的。


那么,在决定采用什么求解算法之前,再来看看云上面临的最优化问题的两个特点:


1、云上面临的不止是一个而是一系列的优化问题,问题之间可能具有一定的相似性和关联性。 如在线资源调度、资源容量管理、资源碎片整理等,都以云资源为核心且具有相似的模型和约束。


2、云上的绝大多数优化问题并不要求必须得全局最优解,而是要求在限定的时间内,给出尽可能高质量的解。


结合 NFL 理论、元启发式算法的特点以及云上优化问题的特点,我们采用基于元启发式的求解框架就顺理成章了。


元启发式算法可以在限定时间内求解问题的“足够好的解”,同时,使用元启发式的问题无关性来适应多种多样的优化问题。另外,又由于这云上系列问题的相似性和关联性,针对某个问题的优化策略很可能也会在其他相近或者关联问题上生效,多个问题有往往可以联合优化。


当然并不是只要使用了元启发式框架,整个引擎和算法就万事大吉了,求解框架只是第一步。


求解 的算法集、策略集、参数调教都是我们的重点工作。我们尝试引入多种元启发式算法框架,引入和设计多种集中性和疏散性策略包括文献中最好的方法以及团队创新方法,并尝试创新的组合以及参数优化, 包括引导式局部搜索、种群管理甚至是基于机器学习的手段,来丰富策略,使得求解引擎能够对云上一系列的问题生效。比如,创新的引导式局部搜索和种群管理策略就是刷新本次 PDPTW 记录  的两项关键技术。


此外,我们采用了并行化、参数自适应等多种技术来进一步改善求解引擎的性能表现和适应能力。到目前为止,我们取得了一些成果,如本次刷新 PDPTW 记录,和获得 GECCO2020 OCP&USCP 竞赛冠军,当然最重要的是,它为用户带去了价值。


面向云场景的约束规划问题优化求解引擎作为华为云擎天架构的一部分,为华为云的资源规划、资源经营保障、资源弹性能力等提供了强大的优化算法支持,最终客户也会从弹性能力保障、服务质量等方面获益。


参考链接:


1、https://ieeexplore.ieee.org/document/585893


2、https://bbs.huaweicloud.com/blogs/175251


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-12-14 09:002030
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 493.8 次阅读, 收获喜欢 1967 次。

关注

评论

发布
暂无评论
发现更多内容

干货 | Elasticsearch Java 客户端演进历史和选型指南

腾讯云大数据

ES

TiDB Serverless Branching:通过数据库分支简化应用开发流程

TiDB 社区干货传送门

AI和语音助手:智能助手的展露头角

测吧(北京)科技有限公司

测试

迎产业东风,柔性电子供应链企业的机会与挑战

华秋电子

PCB

HarmonyOS应用开发Web组件基本属性应用和事件

HarmonyOS开发者

HarmonyOS

Arbitrum公链系统开发丨ARB链代币质押挖矿系统开发

l8l259l3365

Pyth

【华秋干货铺】软硬结合板的阻抗计算,你会吗?

华秋电子

PCB

小度携手可口可乐,AIGC成就未来3000年时空畅想

新消费日报

软件测试|Python内置模块使用(一)

霍格沃兹测试开发学社

OpenHarmony系统能力SystemCapability使用指南

OpenHarmony开发者

OpenHarmony

AI和语言翻译:跨文化交流的帮手

测吧(北京)科技有限公司

测试

为什么越来越多的人选择PostgreSQL,放弃了MySQL

高端章鱼哥

MySQL postgresql

软件测试|MySQL安装最全教程

霍格沃兹测试开发学社

站群服务器租用:为您的多站点网络提供支持

一只扑棱蛾子

站群服务器

软件开发中的资料整理与归档,软件产品开发文档合集

金陵老街

项目管理 文档管理软件

云起无垠参编的《软件物料清单(SBOM)发展洞察报告》正式发布

云起无垠

达梦数据库接入案例—基于EntityFrameworkCore 6.x

为自己带盐

.net core 达梦 EFCore

软件测试|Python基础之包的使用和软件开发目录规范及常用内置模块

霍格沃兹测试开发学社

通过UltraSync减轻主节点负担、提升业务系统性能,AntDB如何做到?

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

AI和安全性:网络安全的挑战与机会

测吧(北京)科技有限公司

测试

在Mac上浏览Android设备文件:MacDroid pro最新中文版

胖墩儿不胖y

Mac软件 传输文件 文件传输工具

秒合约竞猜游戏app系统开发定制源代码部署

开发微hkkf5566

软件测试|Python内置模块使用(二)

霍格沃兹测试开发学社

软件测试|Python基础之数据库

霍格沃兹测试开发学社

使用br工具备份到local的一些操作

TiDB 社区干货传送门

迁移 备份 & 恢复 6.x 实践

机器学习——决策树模型

小魏写代码

RTE 领域近期词云统计发布;谷歌开始新一轮「瘦身」计划;使用ChatGPT之后智力提高 50%丨RTE开发者日报 Vol.50

声网

AI和社交媒体:改变信息传播的方式

测吧(北京)科技有限公司

测试

AI和智能家居:打造智慧生活

测吧(北京)科技有限公司

测试

如何用华为云ModelArts平台玩转Llama2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号9月PK榜

SpringBoot拦截器和动态代理有什么区别?

王磊

Java Java面试题

打破51项记录,解密华为云运筹优化技术实践_AI&大模型_华为云_InfoQ精选文章