算力网是算力、算法和数据对象三要素相融合的基础设施化。互联网底层是以5G、光纤、星网为主的数据通信网;中间是以IP为核心的互联网体系结构;上层是万维网(WWW,也称为信息网),通过信息网,我们每个人都可以随时随地访问世界上任何地方的数据和信息。与信息网平行的就是算力网,其存在的目的是服务千行百业的模型上网,让用户能够随时随地访问世界上任何地方的算力资源。在信息网和算力网之上,进一步构建出消费互联网和产业互联网。算力网与信息网不同,信息网是以信息(即网页)为核心,而算力网以算法为核心,高效适配多样性算力,对数据资产进行深度加工,产出各式各样的模型。
孙凝晖
中国工程院院士
(资料图)
中国科学院计算技术研究所研究员
当前,我国正在推进“东数西算”工程,其目标就是在企业级的算力网和城市级的算力网的基础上,进一步构建一个国家级的算力网。从算力基础设施化的角度来看,“东数西算”工程的关键是在“数”和“算”上做原创性的工作,这样才能真正把“东数西算”工程持续推进下去。
算力网的生态和云计算的生态应该有所不同。云计算只有两种角色,即算力消费者和算力供给者,供给者包括亚马逊、阿里巴巴这些云供应商;而算力网拥有更多细分的角色,如算力提供商、算力运营商、算力增值服务商等,应将算力的各个环节进行解耦,以此构建一个真正的算力网生态。在这个生态下,我们需要关注算力网为用户带来的多种收益。
在算力供给侧方面算力网带来的收益
一是可为“东数西算”工程节约用电120亿度,消纳“弃风弃光”。2021年,全国数据中心的总耗电量大致相当于湖南省全省的用电量,那么“东数西算”工程能不能节电呢?现在西部的算力大概占全国的4%,据估计,未来五年,西部算力大概会占全国总算力的20%。因为,西部数据中心PUE(电源使用效率)比较低,再减去电力传输的损耗,能比在东部数据中心节约30%左右的电量。按照全国数据中心一年总耗电量两千亿度来计算,“东数西算”工程一年可以节约120亿度电,约占我国一年总用电量八万亿度的0.15%。此外,西部拥有大量绿电资源,但2021年“弃风弃光”就达到273.8亿度,如果该部分可以被西部数据中心动态消纳,就可以实现节能减排。
二是整合国家超级计算中心资源,统一账户统一运维,提供深度超算优化服务。目前,我国大概有十个左右的国家级超级计算中心,如果将国家级超级计算中心用超算互联网的方式统一起来,建立一个虚拟的、国家最大的超级计算中心来提供服务,可有效提高超算的资源利用率。同时,统一的超级计算中心可以屏蔽底层体系结构的异构性,通过移植和优化,以服务的形式为用户提供服务。
三是虚拟机可按需跨地域调度,降低资费和应用延迟。“东数西算”工程经常会提起虚拟机跨地域调度,如果我们能够很好地让虚拟机根据用户的需求进行跨地域调度,就会得到很多收益。例如,根据用户的位置,可以就近调度用户的虚拟机,减少延迟;也可以根据实时报价,把用户虚拟机调度到绿电节点,降低算力的电费;还可以做负载平衡,提高该重载的情况下整个应用的吞吐能力。
四是整合城市中小算力中心的闲置资源,形成虚拟城市算力网,降低使用门槛,提高利用率。可以城市为单元进行资源整合,当前许多城市都建立了大大小小的算力中心,有的是政府投资建设,有的是企业投资建设,都有不同的服务对象。但这些数据中心里存在大量闲置资源,如果将算力网运用到各个城市里,就像虚拟运营商一样建立虚拟的城市算力网,对闲置资源进行统一运维、统一调度、统一交易,将大大提升公共资源的利用率。
五是新的算力容器抽象能够实现更细粒度的时空隔离,提高资源利用率。算力网需要一个新的算力容器抽象,所有的算力资源都被封装到一个最小的调度单元里供用户使用。单机时代,操作系统里的进程本质上就是一个算力容器,以一个进程为单位,按照时间分片的方式,对单机硬件资源进行调度。云计算时代,算力容器是虚拟机,能够对CPU、内存、存储、网卡等硬件资源进行时空分片,后来有了更细粒度的软件层面的算力容器——开源应用容器引擎(Docker)。过去几年,中国科学院计算技术研究所提出了“任务闭包”的概念,可以在应用级进行更细粒度的封装。有了这个最小粒度的算力容器后,除了提高资源利用率之外,还可以提高应用在重载下的通量。例如我们基于“任务闭包”做过一个红包实验,可以在一定时延要求下将通量提高六倍。
在算力消费侧方面算力网带来的收益
一是算网协同进行优化调度,为应用提供确定性时延保障。对于“东数西算”工程来说,网络延迟将是一个严重的问题。从东部到西部,存在着30~60秒不等、方差很大的网络延迟,跟本地毫秒级、抖动极小的延迟无法相提并论。很多工业制造应用,对于延迟抖动的要求极高。目前,未来互联网基础设施(CENI)可以将延迟控制在0.03毫秒之内,这样将东边的数据送到西边,对那些网络延迟抖动比较敏感的应用可以提供确定性延迟保障。
二是联邦模型突破数据壁垒,利用分布式算力构建智能模型网。人工智能一般都是在本地建模,例如医疗数据,各个医院都是在自己的数据中心内进行建模。如果要建大模型,需要把这些数据参数都传到一个大的数据中心里进行建模,这样在数据隐私等方面就存在较多风险。有了联邦模型,无须传递数据,只需传递模型,不同算力中心可将本地模型集中传递到联邦模型所在的算力中心,进行迭代式建模,从而实现分散式算力和数据协同工作。
三是主干编程面向物联网(IoT)应用,提高端边云协同场景下超异构分布式环境开发效率。历史上每出现一些新应用,都伴随着新的编程工具的出现。例如,在自动化时代,有可编程逻辑控制器(PLC);在单机时代,有小应用程序(Applet)等的组件编程;在互联网时代,有以编程语言(Java)为代表的阶段式事件驱动和以分布式计算系统(MapReduce)为代表的大数据,以及以符号数学系统(TensorFlow)为代表的人工智能。在物联网时代,我们不但要考虑算法数据,更要考虑算力。在互联网时代,手机端算力差别不大,但物联网时代智能硬件端的算力差距很大,异构性很强,所以我们的编程要对此进行感知。中国科学院计算技术研究所提出一个叫主干编程的方式,通过主谓宾式的编程模式,以主干支干嵌套式进行任务分发,能够很好地适应物联网场景的多样性。
四是云函数编程支持算力网原生应用编程,实现应用跨云横向扩展。云函数编程可以解决应用原生进行横向跨云扩展的需求,传统云应用只能在一个集群内进行扩展,应用跨云就得进行重构。云函数是把应用变成一个个更小粒度的云函数,将每个函数都放到容器中,然后实现协同扩展,这样云函数可以部署在一个云里,也可以扩展到其他云里,进而解决算力跨云扩展的问题。例如,进行跨云分布式训练时,因为分布式训练需要资源较多,单个云资源不够,可以把另外一个云的资源也拉进来进行训练,这个场景下云函数编程会非常方便。
五是用户视角下的算力度量方式可以真正实现现收现付制(Pay-as-You-Go)。这一收益与算力度量有关,我们如果把算力做成服务的形式,就需要提供算力的度量和付费方式,这对提升用户体验来说非常重要。例如,用户要对1亿个64位整数进行排序,该如何进行度量和收费?如果按当前部分云计算厂商的方式进行度量便存在两个问题。首先是度量不统一,很多人工智能应用使用8位、16位浮点/整型操作进行度量,高性能计算用64位浮点进行度量,而图形处理器(GPU)是用32位/16位浮点进行度量,度量衡不统一;其次是用户体验和用户付费不统一,例如,在两台服务器上执行相同的排序程序,一个用时1分钟,另一个用时1.5分钟,理论上花费时间多的体验更差,但按当前据时间计费的模式,花时间长的反而费用更高,这与实际情况相悖。所以,针对这两个问题,我们要把度量衡统一到64位基本操作,同时,用一种用户可以感知算力使用量的方式进行计费。这样就能够真正实现现收现付制,如同高速公路一般,付费多少与使用这条高速公路的情况直接相关。
总而言之,当前算力网更多关注的还是在供给侧方面的收益,我们应该更多地关注用户在消费侧方面的收益,通过技术创新,让中小企业更愿意来使用算力,并从使用算力中得到好处,这才是算力网能够持续发展的关键因素。