近日,蚂蚁集团主办的首届“绿色计算”大赛圆满落幕。在数字经济与双碳战略背景下,这场国内互联网企业举办的首个以绿色计算为主题的技术赛事,受到了学界和行业的广泛关注。
作为大赛评委,蚂蚁集团绿色计算负责人何征宇、南京大学特聘研究员顾荣接受了科技播客《科技早知道》的采访,讨论绿色计算这一技术为何迅速升温,国内外领先科技企业正在做哪些尝试,技术难点是什么,以及长期市场和技术发展趋势可能如何。
以下内容由播客转录,篇幅限制有删减,欢迎收听原音频。
随着云计算、大数据的普及速度加快,它们所对应的电力消耗在惊人的增长,中国信通院的报告预测到2030年,中国数据中心的耗电量会超过3800亿度。
这里存在一个非常麻烦的问题是,这些耗电有相当大的一部分没有能够直接用于对计算分析或数据处理。
所以最近几年,国内外科技大厂像蚂蚁、华为、英伟达、谷歌、微软、英特尔、苹果,几乎都在发展绿色计算技术。例如,谷歌之前许下一个承诺,要在2030年之前实现数据中心10%无碳运作的目标。前几年,在绿色计算领域起步比较早的海外企业,大多都是围绕着硬件设计和机房建设开展工作,比如像微软的night shift项目到苏格兰的海底去建数据中心。
国内大厂这几年则开始围绕着软件来推进,在2022年度的中国计算机大会CNCC绿色计算论坛上,我们看到了蚂蚁集团分享的绿色计算大赛比赛结果,参赛人员有来自华为、字节跳动、阿里巴巴等大厂的工程师,很多人都从软件技术角度给出了对当前算力利用率过低问题的优化方案。国内的IT大企业其实现在都在探索——在算力随着互联网与AI普及到社会各个角落的同时,企业能够做到让电力的规模化消耗可控。
绿色计算技术快速兴起的原因很多。我是做大数据与云计算系统出生,从我的观察和理解来看,一个重要原因就是过去10多年来,我们社会的数字化进程发展迅猛,例如,智能手机中各种类目的APP承载了我们工作生活的很多活动,这背后产生了大量数据;此外,近两年疫情影响也使得我们很多事情放到了线上。对这些数据的处理使得我们对算力的需求,特别是对于数据中心的使用量更大。这背后产生的问题就是我们对能源的消耗也在增长。有一些公开的数据可以看到,中国数据中心的耗电量增长是很快的。此时发展绿色计算技术,已经迫在眉睫。
Q:我们在讲绿色计算时,具体是包括一些什么东西,它下面又细分一些什么方向的科技或者技术?
绿色计算的概念在学术界发展比较早, 广义上来讲,它包括非常大的范畴和理念,包括从机房建设、硬件设计到软件设计都会有涉及。面向绿色计算的软件系统与应用设计,尤其是云计算中心的分布式并行计算处理软件,近几年发展如火如荼,吸引了学术界和业界的很多关注,本次蚂蚁绿色计算大赛的三个题目也都是这个领域的。围绕绿色计算的软件设计,例如高效大数据/AI处理框架、云原生资源调度器等,产生的效益和现有的降低数据中心冷却耗能的工作是正交的。此外,我们现在已经有很多存量的数据中心了,改造硬件费时费力,通过更新软件实现绿色计算,对于用户和机房拥有者而言更方便实施。
顾老师讲的跟我们的思路是一致的,我们内部也系统的分析过比如算力是怎么产生的。算力产生要从能源角度来讲,因为说到绿色大家肯定都知道,这跟地球上有限的能源是相关的。实际上有几个环节,就是从能源产生电力,电力到软硬件转成算力。不看不知道一看吓一跳,从能源到电力,电力到算力,这里面是有很大损耗的,而且不幸的是,最终转换成算力后,大部分的计算资源是闲置的,这是我们一个行业或者一个社会大的问题。
我们今天讲中国的“双碳”战略,讲碳中和、碳达峰的问题,本质上这个问题是我们要怎么在发展的过程中同时极力降低能源消耗。现在我们说数字经济,数字经济离不开我们刚才讲的这些算力的问题。我们现在还没有完全数字化,Gartner的报告是说整个ICT产业已经占到了全球碳排放的3.5%了,我们还在快速的增长期,两年前是2%,几年快翻了1倍了。这个数字是比较吓人的,这也是绿色计算要去解决的问题。
Q:据Gartner和麦肯锡统计,全球的服务器CPU平均利用率只有6%到12%,可能很多是在10%这样的数字。
为什么是这10%的数字?它在行业里面或者在云计算里面是一个什么样的状态?为什么只是这么一点点,我们为什么提不上去?
首先,这主要是因为很多实际应用对CPU资源的持续利用率是非常低的,存在明显的波峰波谷或潮汐效应。另外,其实计算机在空载时也是非常耗电,不会因为CPU满负荷运行,就增加100%的电能耗。不太熟悉计算机硬件工作原理的朋友可能听起来有点奇怪,按道理说,就像我们去买东西一样,我们不购物应该不花钱,只有买东西才花钱。但是计算机的世界不完全是这样的,因为服务器一旦开机运行就会耗电,比如维持内存数据需要耗电、CPU也有周期性额外操作耗电,还有硬盘等存储系统也要通电维持状态等等。就像我们人一样,不管我们今天有没有在做很多工作,但到时间点我们需要吃饭,为什么?即使没有做工作,我们要维持身体状态,身体功能的正常运转都是消耗能量的。
对,基础代谢。我觉得顾老师这个例子特别好,我当时脑子里想了,要不就像三体人一样,事实上计算机有可能这么去做,过去几年我们发展的基础也是这样,就是按需供应。但为什么之前没有这么去做?我觉得这里可能有几个大的原因:
第一,回到20年前来看,或者10年前,我在谷歌工作时听到我们机器量的增长有多快,我们这个季度包圆了一家硬件厂商硬盘的销量等等。我觉得10年前的时候是整个互联网,包括数字经济的飞速发展期,飞速发展期有几个特征:一是红利巨大;二是因为你还小,所以大家不会过于关注背后的能耗,你要看ROI,当只有慈禧太后能开车的时候,中国肯定不会有交通的问题,但是如果像现在每个中国家庭都有一辆车的时候,就会有交通的问题、就会有能源的问题等等。以前我们可能上网发一个邮件、看一个新闻就差不多了,现在玩游戏的、看短视频的等等,这背后人均算力的消耗,特别是增长速率是相当快的。所以到现在来看,有一个影响整个社会的问题正在慢慢的出现。
Q:再回到刚刚的问题,目前大概是CPU10%的利用率能够被计算,那么我们能够到达一个什么样的高度?我们能够减排多少呢?
何征宇:至少从我工作过的两家公司来看,谷歌在19年就发过一个paper,其中引用了几个关键的数据,来自谷歌一个非常经典的数据中心,把所有的负载等等全部拖出来了。当然,那个paper更多是学术的价值,但它也讲清楚了一个事,就是在谷歌的数据中心里面,平均整体的利用率是可以高达50%—60%。
从蚂蚁来看,我们自己通过几年的努力,蚂蚁最开始也是跟行业水平差不多,就是8%—15%左右。今天我们整体的利用率可以到35%—40%左右,高峰期可以到60%—70%,大概是这个水平。
这验证了什么呢?只要公司或者我们能够努力关注这个方面,这个空间是非常大的,从百分之十几提高到百分之四十甚至百分之五六十,是完全有可能的。
Q:谷歌在哪方面作出了它的一些优势?它能做到50%—60%,我们在哪些方面还有更长一段路要走?
这里有很多技术性的东西,先讲宏观的。谷歌有一个大的点,整个谷歌软件完全是自持的,基本上没有太多的三方软件,都是自己写的。谷歌整体的技术架构控制的是比较好的,虽然几百万台服务器的,但是它的调动系统,控制资源的系统,你很难想象几百万台计算机是一个大的调度系统来控制的,这个大家应该都知道,叫Borg,它就是要为整个公司的集群利用率负责。在这之上长出来的所有的基础软件,特别是基础软件这一层,都是要follow一些相应的标准。谷歌里面有一些相应的文化,一定是最大化团队的生产力,而不是个体。团队效能最大化就是要整体集群利用率最大化,而不是说我单个软件优化的很好就行了。
但是我们回到行业里面来看,比如我们做数据库的公司,可能只会关注于数据库本身,做大数据的,可能就只关注大数据,做中间件的,就关注中间件。但是你要把这几个东西加在一起看的时候,你会发现原来我们的资源是浪费的,因为在计算机集群,特别是面向互联网服务的集群里面,任何一个软件都是有高峰期、低峰期的,但是我们的资源只能按高峰来准备,需要各种各样的任务或者各种各样的资源负载,去做一些削峰填谷,所谓调度的东西。
这里面又牵扯到非常多软件的架构或者本身的软件质量问题,包括比如两个任务削峰填谷、不用资源的时候真正能把资源放出来、真正需要的时候能够拿到。这就回到我们软件高质量发展的问题,国家也在讲软件的高质量发展。打个比方,你做的数据库和我做的数据库有什么区别?就是如果是一个高质量的数据库,我是不需要消耗那么多资源来支撑同样的服务量,我服务的弹性更好,当我没有那么多服务的时候,可以把资源释放出去。
刚才讲的更多是软件的部分,谷歌现在也延伸到了硬件。从我看来,硬件的发展跟软件的发展是一样的,它一定会追求更低能耗、更快的效率。绿色计算不是简单的看我们最终的结果是减排了多少碳等等,最核心是在未来科技发展到下一个阶段的时候,我们有没有足够的硬件和软件的能力,去支撑到我们产生更先进的技术。
对,硬件当然国家一直在抓,抓的也比较紧。但是从我们国家的现实发展角度来看,第一,我们的软件工程师数量肯定是多于硬件工程师;第二,软件的迭代速度也远大于硬件;第三,硬件发展过程中客观也遇到了一些问题。但是从计算机系统来讲,软硬是一体的,软件从某种意义来说,如果发展的好,可以弥补一些硬件带来的不足。
Q:顾老师主要关注绿色计算里面的软件技术,特别是在弹性计算或者边缘计算,这一块现在有哪些方式方法,在往绿色的方向前进?
这个方向还要很大的发展空间,在应用上看起来也是一片蓝海。对于存量的这些机房而言,在这些已经设计好、投入使用的数据中心服务器中,有大量面向绿色技术目标的软件优化空间。
具体怎么做呢?其实背后需要设计资源与应用的合理供给。面对多个应用,不通过应用的资源需求画像不一样,有的特别需要内存资源,有的特别需要CPU资源,有的则包含大量网络传输,对于资源调度器软件设计而言,它就需要考虑得广、考虑得深、考虑得细。
另外,对于单个应用而言,它也存在资源在不同时刻的需求波动变化大的问题。对于单个应用而言,同一时刻对资源的需求量是确定的,但是在一个时间线上是变化的。比如现在大家经常打开的微信、抖音等应用,我们明显知道它的使用存在潮汐现象,就是在上下班的路上大家用的比较频繁,中间的时候可能用的少一点。所以如果我们没有能够在软件设计层面合理考虑,做一些资源的供给的把握,就有可能造成资源分配得太少,会导致应用性能起不来,经常出问题,这会直接影响用户的服务体验。另外,为了防止它供应过少导致无法运行,有时也会走向另外一个极端,就是尽量多分配一些资源,就会导致很多资源浪费。
总结一下,一方面多个应用资源的怎么样合理的分配;另一方面,单个应用在不同时刻的资源该如何分配,这背后就涉及到你提到的,云原生时代大家现在关注比较多的弹性资源分配的技术、削峰填谷等等资源匹配的方式。这次蚂蚁大赛我们也很高兴看到有这样一些题目,设计的很合理,比如说云原生的分时调度,还有数据中心里面流量的预测分析,背后找了一些比较好的切入视角。
Q:您说看到了在这次比赛当中好的一些想法和创意的角度,能不能给我们列举一两个项目?
我主要关注了这次大赛的云原生分时调度赛道,这也是我的一个研究兴趣点。很高兴看到有很多选手都有非常棒的想法,比如把运筹学、调度学的东西,放到这里面来做。其实我们并不难做到在某一个时刻去做最佳资源匹配,比较难考虑的是进行当下的资源分配之后,是不是有更多的空间,使得下一次再有任务来时,我们还能有足够的空间给它很好的分配,每次的分配不仅要考虑自己,还有要考虑未来,这也是我们绿色计算所追求的可持续发展理念。
有个队伍的选手想到了一款经典的俄罗斯方块游戏,每一个应用就是俄罗斯方块从上面掉下来的一个形状,每个形状都不一样,有正方形的,有L形的,有T形的,各种各样的,这表示他对资源的需求。每一个掉下来之后他要考虑怎么放,能够互相互补、削峰填谷等等,并且基于这些启发,设计了一些算法,很有趣。
顾老师刚才举的那个例子我也喜欢,充分体现了这次绿色计算大赛玩的感觉,跟玩俄罗斯方块差不多。我补充一下我看到的一些点,也比较有意思,参赛选手还是有很天才的部分。
我们还有一个赛道是遥感图象识别,这个case也是蚂蚁真实的例子,就是蚂蚁森林抢能量的功能。每天早上起来有很多人抢能量,抢能量是为了种树,用户每在支付宝上种一棵虚拟的树,蚂蚁集团都会在沙漠里面种一棵真树。现在种树种得很多了,得去盘这个树种了后长得怎么样等等。我们现在用一些遥感的技术做这件事,赛道二的赛题就是怎么从遥感图象里面提取出来树木,识别树木的数量,不用护林员去数,因为那些地方都挺艰苦的。
有很多选手也想了很多方法,要识别准确,因为有的树还很小,地貌也比较复杂,不是那么容易。有一个点我比较喜欢的,就是有选手在做这个东西的时候,没有忘记我们出这个题的绿色计算或者蚂蚁森林的初心,他们用脉冲神经网络,一种能耗非常低的算法模型,有点像模仿人的神经系统,比如你紧张的时候基础代谢率肯定是更高的,这是生物的本能,但这时候能耗是非常高的。
新一代脉冲神经网络,它也是属于深度学习,但是它是模仿生物的能力,它的动态神经网络里面神经元不是在每一次迭代传播中都被激活的,达到一定阈值才会被激活。从神经网络角度来说,我可以降低计算系统的基础代谢率,用这个比方来讲可能比较简单。这个技术还比较新,团队名次不是太好,但是我觉得他对绿色计算的思考,包括对真正的我们本质想要达到的这个东西,是非常了解的,十分值得鼓励和学习。
Q:这次蚂蚁绿色计算大赛有没有一些更加受到大家关注或者更加有挑战性的题目?
这次赛事是三个赛道,云原生调度、遥感识别、时序流量预测、数据库,这些赛题都很有挑战。我感觉是时序流量预测和云原生调度比较受欢迎,关注度比较高。说明绿色计算技术是大家共同关注的话题。
Q:蚂蚁发起这个事情,也是吸引更多其他的一些公司一起来关注绿色话题,并不是只做自己的。
是的,我们觉得这是一个行业性的问题。我们搞这次比赛,本质上是把蚂蚁的case精炼出来,变成了赛题,比如我刚才举例的蚂蚁森林的真实案例,还有刚才顾老师讲的原生调度,也是我们数据中心里面真实案例。蚂蚁把自己的场景开放出来,希望去跟包括顾老师一起,跟学术界、各个公司,甚至一些个人、社区,一起合作,首先大家一起先看到这个问题,当大家意识到这个问题的时候,就会有更多的关注,会有更多的思路和办法。
Q:我们讲了蛮多谷歌他们怎么样做他们的绿色计算,对于很多其他的公司,不管是海外还是国内的,绿色计算目前最大的困难点或者挑战是什么?
就是管理层不认为这是个问题。从社会责任也好,从公司本身的经营也好,取决于是否对整个趋势有这样的判断,必须要解决算力是否高效的问题。在这个大的方向被确定以后,剩下的包括技术性的问题,我觉得国内的公司,从蚂蚁的经验来讲,很多实践是依赖于我们对软件和硬件有一些掌控能力,这个掌控不是说我所有的东西都要自研,但必须有自己可以修改的能力。
蚂蚁因为发展十几年,积累了一些这样的东西,包括刚才讲的数据库,数据库弹性是很难做的,但得益于蚂蚁有OceanBase这个比较出名的分布式数据库,从day one开始就是自研的,它一直在围绕着蚂蚁的场景做一些深入的技术的探索和研究,确实帮助绿色计算节省了很多资源,因为它的弹性是比较重要的。
从我们的现实数据来讲,我们计算和存储是一半一半,存储大部分是OceanBase这个数据库。国内公司很多软件都是外采,甚至自己不具备软件的研发能力的话,可能更多得依赖于像云计算等等这些IT厂商去做弹性或者做能源的计划,可能要把算力这件事情完全外包给一家公司做。但是传统的外采软件,在你自己机房里面去运行,这种模式,这种传统的IT架构上,是比较难做的。
国外的公司有一些不同的做法,可能蚂蚁的做法类似于谷歌的做法,有点像甲方公司,我们自持的所有软件都是为蚂蚁自身的业务服务的,但我们也会去开源或者做学术交流,交流一些技术。这个行业里面也存在比如像IBM这种公司,它的业务更多的是帮助其他行业里面的公司去做计算机系统或者相关的解决方案。
我之前有一个下属是从IBM来的,他们当时在做IBM私有的大数据集群,利用率可以做到非常高,因为IBM也有自有的硬件和软件。但是这个东西更多只是局限在大数据的场景下,很多公司买一台IBM的机器或者是解决方案,这个利用率是足够高的,但是从甲方的视角来看,我还有很多利用率可能不算高的东西,比如像在线的服务,因为大数据很容易提上去,在线服务不好提,但是甲方也没法儿把IBM的服务器拆了或者软件给拆了,然后去填在线服务的那个空。
从甲方公司的视角,谷歌、蚂蚁的视角,我需要把大数据软件解构开,解构开才能填满在线任务,因为在线任务没办法,它必须要满足需求,而且得按峰值准备。所以必须要把这些大数据或者AI的应用拆开,才能满足全公司来讲的低碳、环保或者绿色。所以这是不同的思路。
Q:未来我们需要做一些什么样的努力才能改变这一点?是先要教育宣传到位,还是通过技术来解决?
我觉得专业人才的培养和引导还是很重要的。比如,引导一些对这个方向感兴趣的研究生在论文选题时多考虑这个领域,面向高年级学生开设一些绿色计算相关选修课程,也是一个很好的想法。有了一定量的相关领域的专业人才,他们毕业后去企业从事类似的工作, 相信绿色计算技术会更好地发展。
Q:有没有一些新的技术趋势或者是创业的趋势让人觉得比较兴奋?
从趋势来讲,第一,整个算力在shift,整个互联网的构成正在发生一些大的变化,过去以服务驱动的互联网模式,可能从蚂蚁的实践来讲,大部分算力是被在线应用、数据库等等提供服务的计算系统占大头,慢慢转换到以AI、大数据甚至现在慢慢兴起的视频编解码等算力密集型的任务。
所以所有技术上的变化就会围绕这个大的趋势来进行。顾老师提到的云原生的弹性调度,这里面大的趋势就是要走serverless这个方向,对于大部分的在线服务应用来说,它要能够把整个数据中心或者整个云计算当作一台计算机来provision,事先部署它的资源。
第二个,在大数据、AI方向,我们现在整个学界,包括工业界也在讨论,比如AI大模型效用的问题,就是大模型是不是真的有用,它是不是就是在堆砌无用的算力,来获得一点点的效果。所以蚂蚁也有相应的绿色AI的工作方向。当然我们的理解会有些不一样,因为AI本质上是从大量数据里面去提取知识,但是你训练一个模型,我也训练一个模型,最终在同样的数据里面重复提取知识,我们给它取了一个比较难听的名字,叫做重复智能。
当然我觉得大的趋势,从AI的发展角度来讲,会慢慢收拢到大模型,也就是大家不要重复去提取知识了,有人提取一遍,你就可以少提取一次。你可以在这个大模型的基础上去return一下,加一些你自己的数据。所以这肯定也是一个大方向,这也是跟绿色计算大的精神吻合的。
最后,还有一个大的方向就是硬件的创新,因为硬件的处理器,我们现在用通用的处理器,从CPU到GPU还有谷歌AI专用的TPU,我们也看到很多音视频专门的处理器,能够大幅的降低同一个任务下的能耗。我们觉得硬件的创新也会加速。
现在企业的发展,大家也都感受到了,100年前可能公司看一个财务就行了,后面还要看员工福利,现在大家要看对于社会的影响。所谓可持续发展,是说我的公司不能只是为财报奋斗,我们要有社会责任部,要为员工着想,要为环境等等一系列的事情所负责任,所谓能力越大,责任越大。
本文分享自微信公众号 - 支付宝技术(Ant-Techfin)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。