大数据“泛滥”:融核普及并行计算?

北京时间今天凌晨,英特尔(Intel)在盐湖城举办的超级计算机(SC12)大会上,正式发布了基于集成众核(MIC)架构的Xeon Phi(至强融核)协处理器。其中Xeon Phi协处理器5110P即日起出货,2013年1月28日GA,建议客户价格2649美元;Xeon Phi协处理器3110家族将于2013年上半年提供,建议客户价格低于2000美元。

Intel Xeon Phi协处理器家族,5110P和定制产品SE10P采用被动散热,适用于数据中心;3100系列有被动散热和主动散热两种方案,后者适合于任何环境,包括工作站

虽然在消费市场上遭遇ARM的强势挑战,公司市值亦首度被高通超越,但英特尔还有企业级市场作为坚强后盾。至强家族在服务器和存储市场不断蚕食RISC的领地,同属x86阵营的AMD也被逼得向ARM递上“投名状”。

想想十多年前,还是RISC统治数据中心,x86把持桌面计算。现在形势几乎反转,前端的消费者市场,ARM携智能手机和平板市场上的成功威胁PC,并伺机进攻后端的企业级市场,欲重复当年x86的逆袭故事。正所谓“兵无常势,水无常形。”同一时代的技术往往没有绝对的优劣之分,看谁更善于利用形势,与时俱进,才是长盛之道。

大数据“泛滥”:Xeon Phi普及并行计算?

Intel Xeon Phi 协处理器以PCI Express(PCIe)插卡的形式配合英特尔至强(Xeon)CPU使用

要说在企业级市场,英特尔还是很赶潮流的。去年云计算,今年大数据,不是最早鼓吹的那个,但也不算落伍。按理,云计算和大数据能够成为大众话题,基础设施层面上,离不开x86的遍地开花,可是,每当英特尔往大数据上靠,总有人感觉不习惯。

大数据“泛滥”:Xeon Phi普及并行计算?

英特尔表示,Xeion Phi 协处理器内核在P54C基础上加入了很多功能,包括64位支持。现在内核加上L2缓存,只有不到2%是x86成分(x87 Logic)

记得今年7月第二届大数据世界论坛,有记者朋友走进会场,看到Intel的Logo,惊呼“英特尔和大数据有什么关系啊?”遂在微博上引发一番Hadoop知识普及的大讨论(当然,不能把Hadoop与大数据划等号)。上个月,英特尔在介绍其至强融核(Xeon Phi)处理器时,将HPC(高性能计算)与大数据联系到一起,又引起了同行的反弹。

我宁愿把这理解为对近来业内谈及趋势时必称“大数据”的反感。如果抛开这一层,不消英特尔多说,前一阵与几位圈中好友私下讨论时,已然认同以Hadoop为代表的大数据应用,与高性能计算在模式上颇有共通之处——高度并行,从计算到I/O。

大数据“泛滥”:Xeon Phi普及并行计算?

从计算到存储,大数据与高性能计算很相似

随后,在10月底公布的中国HPC TOP100排行榜上,前10名中,有4个安装在互联网服务提供商,而在总体上,应用于互联网服务的系统多达35套,占35%,在各行业中保持第一,比例有大幅度跃升。

我们不是说,互联网服务就意味着Hadoop,或者大数据,但起码它们的应用类型更为接近,而与科学计算等“传统意义”上的科学计算距离较远。一定程度上,互联网服务/大数据应用拓展了HPC的势力范围,帮助后者从象牙塔走出来,渗透到普通人生活的方方面面。

顺着这个话头说开去,我们正处在一个加速转向并行处理的时代。CPU强调多核和多线程自不必说,硬盘驱动器(HDD)面临被固态盘(SSD)部分乃至全部取代的危险,也体现了同样的道理。英特尔在为SSD造势时,给硬盘列的一大罪状就是,十年间性能只提高了1.3倍,远远落后于CPU的进步幅度。对硬盘的评价有点儿偏颇,这里不细究,但是抓住了关键,即硬盘多年来都是同一时刻只有一个磁头工作,并行度很差,改善性能基本只能靠加快机械部件的运转速度,所以效果很有限。SSD则不然,虽然每个闪存芯片的性能和容量都不算高,但可以多个芯片(控制器多通道)同时读/写,具有很高的并行度,性能很容易就甩开硬盘好几条街。

大数据“泛滥”:Xeon Phi普及并行计算?

HPC市场的年复合增长率(CAGR)接近于云

虽然性能几乎不随着容量增长,但是硬盘在容量和价格上的优势仍非SSD所能企及。硬盘的并行度不行,那就尽量避免让它同时干两件事(减少随机访问)。譬如说,我的办公环境是在虚拟机里运行Outlook,关闭Outlook和关闭虚拟机,都要向硬盘上大量写入数据。如果执行了关闭Outlook的动作,不等数据文件写完,立刻关闭虚拟机,那么两个写操作就有部分重合,关机时间会很长;如果先等待Outlook完全关闭,再关闭虚拟机,那么总共花费的时间,能够明显的缩短。也就是说,在一个缺乏并行度的体系内,完全串行的执行两个任务,所需时间要比在两个任务之间来回切换,要来得短。(1+1<2?)

硬盘的并行能力虽差,但是多个硬盘同时工作,就能够兼顾并行访问和大容量,存储系统(RAID)和Hadoop就是这么做的。

大数据“泛滥”:Xeon Phi普及并行计算?

TACC的Stampede系统在新鲜出炉的HPC Top500排行榜上排名第7,得益于数千块定制的Xeon Phi 协处理器SE10P

如果需要极致的并行访问能力,就像刚刚过去的双11淘宝数据库,一天下来仅成交的交易就上亿,离了高性能的PCIe SSD,是无法想象的。

以上想说明什么?并发度,组合。硬盘不是为并发访问设计的,但在顺序访问时,输出(throughput)并不比SSD差太多,且在容量和价格上占有优势。对并行度要求不太高的时候可以用硬盘组合,随着并行访问要求的提高,引入SSD,乃至完全依靠SSD。

大数据“泛滥”:Xeon Phi普及并行计算?

Intel Xeon Phi 协处理器SE10P

但是,在Hadoop系统中,硬盘仍然占据主流,SSD相对少见,每个节点配的内存容量也不是很大——虽然商业领域在倡导“内存计算”。互联网行业的文化是尽可能不依赖昂贵的硬件,利用整体架构来分布任务。与金字塔尖上的超级计算系统相比,他们属于平民版的HPC,讲究投入产出比,可复制性更高。

大数据“泛滥”:Xeon Phi普及并行计算?

我在TACC上机操作,可以看到Intel Xeon Phi 协处理器SE10P的信息,包括61个内核及8GB GDDR5内存,注意下面TACC Stampede和MIC协处理器的显示

现在回过头来说计算。x86 CPU的并行度非硬盘可比,但在高度并行化设计的GPU面前,差距又很明显。刚刚夺得新一期全球Top500榜单头名的Titan系统,制胜法宝便是Nvidia Tesla K20X GPU加速芯片。

大数据“泛滥”:Xeon Phi普及并行计算?

新鲜出炉的Top500榜单前10名,注意第1、7和8名

得克萨斯高级计算中心(TACC)的Stampede系统,采用戴尔PowerEdge C8220X,至强E5-2680 8核CPU与Intel Xeon Phi协处理器的混合系统,小胜两年前的头名——也是CPU + GPU的天河1号A,但与Titan系统还差得远。

大数据“泛滥”:Xeon Phi普及并行计算?

TACC的Stampede系统采用了6400台戴尔PowerEdge C8220X刀片服务器,每一个刀片配备了2个8核Intel Xeon E5-2680处理器和32GB内存

英特尔自家的GPU是薄弱环节,又不可能坐视甚至扶植AMD或NV的GPU做大,反对CPU+GPU的混合系统是很自然的。英特尔的方案是,以Xeon Phi作为协处理器,替代GPU,辅助CPU处理高度并行的任务。GPU派攻击协处理器的性能,英特尔则强调引入GPU需要大量重新编程,通用性不好。这方面口水战甚多,我对HPC的了解有限,更非编程专家,这里就不拾人牙慧,主要探讨下英特尔的做法。

大数据“泛滥”:Xeon Phi普及并行计算?

戴尔PowerEdge C8220X刀片服务器

首先,英特尔强调至强E5是HPC的基石。这里面又有好几层意思,一是x86 CPU中,E5占据明显优势。CPU + GPU,后者再给力,也不能放任前者拖后腿。AMD的Opteron虽然内核数更多,但总体上处于下风。另外,至强E5平台集成了PCI Express,搂草打兔子,配合PCIe接口的Xeon Phi,可以进一步缩短延迟。

在英特尔宣布将要推出Xeon Phi(当时称MIC)协处理器之后,Nvidia方面撰文称“没有免费的午餐”(指MIC运行x86程序无需更改代码是无稽之谈)。英特尔并行编程传播总监James Reinders不无幽默地回应道,并行编程很重要,但没人能获得免费的午餐。

英特尔与Nvidia一样很清楚,目前的很多程序都是串行编程,需要尽可能的并行化,才能充分发挥GPU或Xeon Phi协处理器的并行计算能力。不过,James Reinders强调,并行化编程对挖掘CPU的潜力也很有帮助。

大数据“泛滥”:Xeon Phi普及并行计算?

至强CPU采用为Xeon Phi 协处理器开发的并行化代码后,性能可有上百倍的提升

他举了一个SAXPY(Scalar Alpha X Plus Y,纯量乘法与矢量加法的组合,是并行向量处理器中常用的计算操作指令)的例子,经过并行化的代码运行在Xeon Phi上,340.6倍于运行串行化代码的6核至强E5-2600。但当至强E5运行的代码也经过并行化编译之后,这个倍数(Xeon Phi对E5-2600)就急剧下降到2.3。

大数据“泛滥”:Xeon Phi普及并行计算?

单Xeon Phi 协处理器(右侧)对双至强E5(左侧)的性能提升

英特尔旨在说明,像Xeon Phi这样的高度并行设备需要高度并行编程,而至强E5这样的(普通并行)处理器也可以从中获益。并行时代,本来就要并行编程。James Reinders抛出了一个问题:你想用同样的语言、并行编程模型和类似的工具来满足高度并行的需求么?

大数据“泛滥”:Xeon Phi普及并行计算?

另一些情况下,Xeon Phi 协处理器带来的性能提升可达10倍

TACC的Jay Boisseau认为,用户都想不用付出(改变代码)就获得性能跃升,但当他们(为了提升性能)做了不愿做的事,还被锁定在特定的硬件架构(指GPU)会怎样?至强Phi在通用并行计算的每瓦性能上还是不好,但很大程度上解决了硬件特定编码的问题,可以用Fortran、C、C++,编程不受限制。至强Phi运行串行应用会慢,所以要搭配至强E5工作。

总之,Xeon Phi结合了高级的性能和标准CPU编程模型的好处,这是Stampede系统选择它与至强E5组合的主要原因。

大数据“泛滥”:Xeon Phi普及并行计算?

至强CPU与Xeon Phi 协处理器搭配工作的几种情况

每个用户,选择一个特定的解决方案,总有其充足的理由。至于不远的将来,至强CPU与Xeon Phi协处理器的搭配,能否在Top500排行榜上击败CPU + GPU的组合,乃至登上王座,不是我能判断出来的。

我的看法是,大数据虽然有被炒烂之虞,但英特尔将大数据作为并行计算的范例,甚至与HPC联系在一起,未必只是心血来潮,乱搭热门概念的顺风车。Xeon Phi真正投入市场也要2013年初了,短时间内很难与在传统HPC领域已有相当积累的CPU + GPU组合架构争锋(分走一块市场还是可以的)。可是,在范围更为广阔的大数据领域,特别是大量采用英特尔至强平台搭建Hadoop集群的互联网服务市场,Xeon Phi(较之GPU)在兼容性上的优势可能颇具吸引力。如果这个市场接受了英特尔的理念,也许会在(广义的)HPC市场起到“农村包围城市”的效果……

类似的事情,英特尔以前做到过,ARM正在做,未来?就交给未来吧,瞎猜就此打住。