2017全球未来网络发展峰会

创新合作共赢    引领未来发展

当前位置:嘉宾致词> > 分论坛一

《大数据时代的新型计算机系统结构》

编辑: 共浏览:1152次

大家上午好!

我看了一下,好像只有我一个人讲的不是网络,讲的是计算机的,但是至少跟这个主题有两个字是符合,我讲未来计算。所以我今天讲一下在大数据时代的计算机应该是个什么样子,所以跟大家介绍一下我们的工作。

我们首先来看一张片子,这张片子给我们看,告诉了我们去年“双11”的时候究竟发生了什么,我就说两个关键的数字。大概在不到1分钟的时候,就完成了10个亿的交易。第一年,2012年的“双11”大概在14分钟左右就完成了。这两组数据说明什么问题?说明在大数据时代,数据量大不是一个问题,最重要的问题是怎么处理这些数据,所以数据的处理速度是大数据时代面临的最大挑战。所以什么叫大数据?就是不能用现有的技术处理的这些数据叫大数据,显然处理时效和处理速度是一个最大的挑战。

我们还拿这个例子来看,还是去年“双11”的例子,大概在不到10分钟的时候,9分多钟的时候达到了峰值的最高峰,一般大家都可以理解,为什么呢?因为我们在“双11”开始之前东西都放到篮子里头了,12点一过大家就开始抢购,每秒达到12万笔。阿里云计算的典型办法就是用并行的海量的这些服务器群来进行处理,就是计算集群来进行处理。但是我们首先来想一下,这是大家都知道的,并行处理永远可以做到这个事情,现在的超级计算机也可以做到这个事情。但是如果我们想一下看,我们没一台单台计算机处理峰值大概多少?如果我们每一台单台计算机处理能力能够得到很大的提高,我们的总的集成计算机群的计算能够能得到极大的提高。我们直观的想法就是能不能把所有的数据都放在内存里面,不用硬盘。其实这个概念早在80年代的时候就有了,这个概念叫内存计算,意思就是把所有的数据都放在内存里,不要硬盘。为什么这几年,现在又开始热起来了呢?因为今天我要讲这个东西,为什么热起来呢?很重要的一个原因就是技术发展了。因为原来我们一直用的是32位CPU,最大的寻址空间就是4个GB,4个GB对我们现在来说显然不够,我们现在标准配置的服务器是一个核两个GB,也就是16个核,至少32GB的内存。所以现在到了64位了,我们最大的寻址空间可以到16个EB,所以第一,为我们设置一个大的内存创造了一个很大的几率。

第二个,我们这个价格在继续下降,我们每年大概价格下降三分之一。正是因为这样子,才使得我们有这样的机会能够去构建一个超大的内存。这就是内存计算,当然这些问题不是这么容易解决。我今天要给大家讲的就是这两部分,第一,我们看一下内存计算国际上现在发展到什么状态,有什么问题,我们怎么去解决。第二部分,我们介绍一下,我们最近几年在内存计算方面做的一些实践工作,给大家做一些参考。

说到内存计算第一次重归我们的视线是在2013年Gartner发布的10项技术就是有内存计算。这个里面有两个例子,一个是HANA,这是因为它的首席科学家是韩国人叫汉拿山的汉拿。这台机器没有硬盘,一个T的内存,不是一个T的硬盘,是一个T的内存,加上Oracle的硬盘,可以极大地提高内存计算系统。这个东西都不是我今天要讲的,因为这个东西存在很大的问题。

我们首先来看这张图,这是我们整个研究的出发点,我们可以看到横坐标是计算机的负载,纵坐标是计算机的功耗。就是无论它工不工作,零负载的情况下,大概CPU的负载是百分之几,满负荷下也不超过50%。但是它有一个最多50%,但是有一个值,大家看到橙色的这个值,不管CPU负载低还是还是高,内存的消耗就是20%。我们现在把服务器进行整合,可以降低一些CPU的消耗,都没用的,只要你开机,就有20%是内存的消耗,为什么会固定不变?大家都明白,因为它有刷新,有刷新就会产生内存的功耗。而且这种功耗还随着我们技术的增加变得越来越严重,我们这里面给了两组值,一个就是我们以前用的内存条,DDR3,一个就是我们现在用的内存条,DDR4。从这个里面可以看到我们计算读的功率达到很大的提高,从几十个GB到几百个GB。同样它的功耗虽然说每位的功耗都是2.3个PGR的功耗,但是整个在DDR3的时候大概只有十瓦,但是到DDR4的时候大概几十瓦。这就带来很大的一个问题,就是我们这个CPU功耗的问题。

另外还有性能的问题,这里面再给大家看两组图,这组图告诉了我们,左边是我们传统意义上用到的我们单机或者我们这种笔记本电脑的功耗的情况,8个GB,也就是我们1GB的内存,大概因为刷新所带来的性能下降是8%。因为每次当电频变低了以后,你必须给它加电,这段时间系统是处于降级运行模式。我们大的东西不可能所有的同时刷新,是按照半个半个内存来刷新的,所以在刷新的时候系统性能是下降的。但是到了64个GB,也就是我们的服务内存8GB的时候,我们由于刷新所带来的性能下降可以达到40—50%。所以这个问题,这就直接告诉了我们,我们从理论上可以构建非常非常大的内存,一个T的内存,但现实意义上你没有那么多好的性能。

同样功耗也是一个问题,如果我们现在笔记本电脑上面,或者我们的台式机上用1GB的内存,大概功耗15%以下。但是如果我们到了服务器达到8GB内存的时候,我们的功耗甚至可以达到系统功耗的47%。所以这个从另外一方面告诉我们,第一从性能上来说,这种不断增加内存的方式是解决不了问题的。第二,从功耗来说,大量的内存只会给我们更多系统功耗的损耗。所以我们有什么办法可以解决问题呢?就是我们现在看到的目前基于DRAM的内存计算模式面临很大的挑战,首先由于它有介质易失性,所以我们要给它供电。另外它存储密度比较低,你要8G内存条要达到1个G的内存,里面要插好多条。另外它的功耗也很大,这张图告诉我们用最新的功耗甚至可以达到46%,因为CPU的功耗下降了,但是内存的功耗没有办法,还是那么多,它的比例反而上升了,所以可以达到46%。

所以总的来看,我们传统的用DRAM的内存计算模式面临很大的挑战,因此采取的方式是什么,就是用一种新型的介质来替换原来的DRAM。这个叫非易失存储器,这个很多,我大概列了四类,第一种已经产业化,大家可以去买到,去构建自己的平台。现在最前沿的是还在实验室阶段,还没有实现产业化和量产,但是它的性能,易组性性能是最好的。这里面最值得关注的就是在2015年底,Intel和Micron共同发布的一个产品,构建高容量、长寿命的一个非易失存储器。我们来比较一下这个性能,如果说我们希望这个东西,将来能够作为内存的替代的话,我们最关注的就是两行数字,读的时间和写的时间。这是根据国际半导体技术协会给的一个指标。从这里面我们可以看到右边这三栏都是我们传统意义上大家都知道的DRAM、固态盘、液态盘,Memristor是大家都能够看到的,PCM在的性能上,基本上跟DRAM是在同一个限量级,而硬盘是在秒级,这是三个数量级。但是如果用到了旋转存储。在读的层面上不但可以替换我们的DRAM,还可以作为我们的高速缓存来使用。

另外我们看到写的方面,DRAM读写是一致的,但是对于STTRAM来说,读写不是一致性的,慢一个数量级。但是尽管如此,也比我们现在用的要快两个数量级,这就给我们一个非常大的信号,就是说这种介质,可以作为我们内存的一种替换,而不是作为我们传统的存储介质。

这个是刚才我讲到的3D XPoint Technology,这为什么叫做高速缓存,就是因为它是在纳秒级,这是在10个纳秒级。在整个这个存储链当中,它是更接近于内存这个存储介质。而且英特尔在去年年底,本来应该推出来3D这个,他们首先分两个路线图,本来应该是去年,但是一直到了今年的3月份,就是上个月刚刚推出最新的这种基于PCI插条的存储条,这个中文把它翻译成闪腾,现在这一条存储条容量375GB,一个内存条就375个GB,而我们现在DRAM最大8个GB。而这样子的内存条有三种不同的型号,最小的型号一条128GB,最大一条512GB。也就是两个内存条就是1TB的内存,所以我们内存进入TB时代就是一两年,指日可待,所以我这个虽然叫未来计算,是这个未来也不远,就是这两三年的事情。

所以如果按照我们一个服务器有8个内存条的插槽,插6个这个东西,我们在一个主板上就有3个T的内存,不是硬盘,这就给我们一个很大的惊喜。就是我们未来的内存计算就是因为这么一种新的存储介质技术,给我们带来一种新的存储。它可以按照内存一样,按自己来寻址,它也可以持久存储,像我们硬盘一样,数据不丢失。比我们的NAND还要快,持久性比我们的移动硬盘还要长,因为它是持久存储像硬盘一样的东西,你即使不给它供电,它的数据也在那里,所以它的静态功耗基本为零,它不需要供电。所以这样子的东西,就使得我们的未来计算机会发生一个很大的变化。我们大家都知道,我们在2000年的时候,我们有一个很重要的部件退出了我们的历史舞台,这个部件就是软驱。20年后有一个部件也要退出我们的历史舞台,这个硬件就是硬盘。硬盘不再是我们的标配,它不再有意义,它的作用不再作为联机存储,这个变化在未来两三年里面就会发生。

所以这样就给我们带来一种新的内存结构,一种以计算为中心的结构到一种以计算为核心的全新的计算结构。而且这种结构一定是混合的,一定要用这种混合的,用一个小的快速设备和一个大的存储设备在一起构建一个大型的设备。

好,下面我就给大家介绍一下,这么一种结构有些什么样的一些挑战。由于大家都是搞网络的,我是搞计算机的,所以我就把所有的挑战浓缩为这么一张片子,告诉大家它面临的什么挑战,但是这里面的挑战是非常非常大的,因为首先颠覆了我们整个使用计算机的习惯。当然我们作为程序员来说,第一个得到的颠覆就是什么?我们写程序要变了。因为我们没有文件操作了,不是写到硬盘上去了,因为我们在内存里面了。但是我们还要在内存里面像文件一样去保留这些东西,因为你一关电,如果用我们原来块表的话,不是文件分区表的话,文件就找不到了,我们还要持久化存储。这是我们第一个面临的问题。

第二个面临的问题,这两种结构怎么摆?我们是不是在这种硬盘的这种层次结构里面再加一层呢?还是把DRAM和PCAM变成一个层次?如果是原来得分层次结构,我们就可以用所有的算法来进行,如果把它分开作为一个平面结构来说的话,这个平面结构的问题就更大了。首先面临的一个问题,大家知道我们操作系统里面对于内存的管理是按照什么?按照一个页表进行管理的,一个页4K,对我们原来一个GB级的内存来说没问题,但是我告诉大家,现在是比原来的内存要大1000倍,也就是说我们的页表,最频繁操作的页表,每一次都要访问的页表比原来要大1000倍。也就是说这个页表访问的速度要比原来慢1000倍,怎么办?原来的操作系统里面根本解决不了这个问题,于是乎现在产生了什么?叫大页。大页的机制,就是原来4K一个页表,变成32兆一个页表,也涨了1000倍。但是问题是你页表越大,我们操作系统里面这种共享的加锁,因为保证这个东西不被大家来写,就导致锁的页表变大,速度仍然会下降。所以说硬件就绪,并不代表我们软件马上就能用。所以我就说这个东西推出来,大概真正能用,还得两三年或者三四年的时间。

我最后给大家汇报一下,我们科技部在2015年立了一个项目,就是面向大数据的内存关键计算与系统,这是我们国家在计算机领域里面列的最后一个“863”,这个之后所有的都叫做重点研发计划了。这个“863”项目是上海交大牵头,联合了全国的企业,华为和浪潮,还有八所学校一起参与的研发项目。这个项目非常大,包括从硬件环境的构建,以及编程环境和数据管理系统。因为我们现在所有的数据管理系统都是基于硬盘的,只有一个系统就是我们刚才讲到的HANA系统,这是基于DRAM的。因为我们跟上海交大一起合作做系统软件的,操作系统这一块,怎么让用户不知道,尽管说现在有一个指南告诉大家说怎么去写程序,但是原有的程序还在运行,计算机最重要的就是讲生态,对不对?生态要好。我们做系统软件的目的就是使原来的系统能够运行,并且使现有的程序能够运行得更好。

我下面拣几个典型的案例做介绍,如果做科研的老师都知道,我们国家科研的方式是叫齐头并进,一个项目软件也做,硬件也做,同时结题,同时开始。你这个软件做运行的时候,你必须得有一个平台,这个平台就是模拟器,模拟器跟我们原来的虚拟器东西不一样,它是一个能够全仿真硬件的东西,你软件在这上面去运行。其实目前全球,大家如果看文章或者做研究工作的话,凡是在异构存储都是在模拟器上去做。但是不同的模拟器有不同的特点,我们这个模拟器是结合了在目前模拟器上功能最全的模拟器,而且我们实验室所有的代码都有,这个模拟器的名字叫SHMA,这跟是我们跟华为在一起做,它是我们合作伙伴。

第二个,做了一个特别理论化的工作,因为大家知道最重要的就是Cache替换策略,内存满了怎么办呢?就把最不用的东西替换进去,然后换一块数据进来。这是我们讲到的HRU,但是在这种情况下根本不适用,为什么呢?因为它的访存方式不一样。但是告诉大家,这里面有两种不同的介质,这两个访存时间都不一样,如果你把它们俩统一来看的话,一般来说NVM大,最早使用的都在这个里面,每次替换它花的时间最长,所以这种策略没办法。我们就提出一个仿真指标,所以得出来的结论都不是我们能够平常很直观想到的结论,比如说我们尽量少替换NVM里的块,我们尽量访问DNAM里面的块,这个结论使得我们跟现有的全球最好的结果HAP相比,我们最好有大概10%的性能提升,跟LRU最高有22.8%的性能提升。

另外我们还做了一个工作,也是挺有意思的工作,我们知道大家现在跟斯巴克相比,这个数据分配都是一个数据一个数据连续分配的,在分析的时候有各种变量,有的就那一会儿使用,用完了就丢了,但是它在内存里还占有一个空间,这样就存在着短生命周期和长寿命周期混杂在一起的方法。如果你的内存满了,你要通过扫描才能知道哪个该换,扫描一遍花的时间太长。以前大家都不知道操作内存里面的垃圾回收,现在我们的内存大了,全放在那儿,现在写程序的同学也不讲究这个东西了。但是这个工作在我们整个系统里面是非常大的,我们做了一个实验,就把长寿命周期的从一组开始放,短寿命周期的放在另外一组,回收的时候把短寿命周期的直接回收,不需要扫描。就这一下,我们把垃圾回收的时间最高提升,减少了99.9%,基本上把它全减少了,就减少垃圾回收的时间,就这一件事跟原生态的斯巴克相比速度可以提高40倍。所以这个垃圾回收在整个Spark的流处理影响中的提升是非常非常大。我们非常高兴的是,我们这个工作去年在美国发表以后,美国也跟我们发表了相似的工作,但是这个发表时期在那儿,这是改不了的。

我们还有一个工作很有意思,就是Mammoth,硬盘只要一倒腾速度就下来了,我们现在的想法不是内存计算了吗?我们能不能把这个东西都放在内存里?于是我们就做了一个以内存为中心的基于内存的Mammoth,这个比现在主流的相比速度快5倍以上。而且最重要的是什么?这件事情,这个工作的影响度,因为我们这个是在2015年度做的工作,所以在2015年的时候,这个IEEE Computer杂志,专门在一期里面就介绍了我们这一篇文章,目的是为了什么?为了说明在大数据到来以后该怎么办?其实这件事情很简单,就把原来的IO操作放到内存操作就完了,全在内存里头去做,如果内存非常大,但是这个工作的影响就非常大。

这是我最后一张片子,这张片子是2015年全球对于数据管理系统,我刚才讲到数据管理系统,有一个全球的调研结果,这个调研结果,可以告诉左边所有的东西,都是基于硬盘的数据管理系统,右边的都是基于内存的管理系统。但是在整个这个里面可以看到,现在越来越多的系统,已经到了DNAM里面去了,在内存里面去做了,可能这么多大家没注意观看,太多了,也解释不清楚。从这张图可以看到我们现在的趋势是什么?要把所有的左边的这种基于硬盘的系统,全部要移植到NBM的环境下,这就是未来的趋势。

最后我做一个总结,在大数据时代的未来的计算机该是个什么样?是基于这种非异构存储器。到目前为止还有很多值得探讨的问题,比如说异构层次内存的协同组织模式,以及大数据低能耗处理环境,这个工作还值得去研究,我们的工作刚刚开始第一步,还有很多工作等待去研究。

好,我的汇报就到这里,谢谢大家!