异构众核计算的“三个三”

2011-11-09 06:42林新华
中国教育网络 2011年9期
关键词:三个三异构编程

异构众核计算的“三个三”

一言以蔽之,“三个玩家三条路,三大挑战待征服”

正如Jack Dongarra教授所言,“在可预见的未来,异构(众核)计算将为成为主流”。硬件有三个玩家,会走三条完全不同的路,而软件也会面临三大挑战。

自从2006年AMD收购ATI之后,CPU市场的Intel对AMD,GPU市场的nVIDIA对ATI的2对2格局就被打破了,形成了现时异构计算的“三国演义”:Intel对AMD对nVIDIA。

A M D是这三家中惟一同时拥有成熟C P U和GPU产品线的厂商。在“Future is Fusion”的战略下推出了集成显卡的CPU,未来仍将向集成X86 CPU +GPU的APU芯片继续进化。

nVIDIA在2004至2006年之间,趁多核CPU性能青黄不接之际,提出了通用GPU的概念,并进军计算市场。五、六年之间就将TOP500中排名靠前的3台超级计算机纳入麾下,占领了HPC的制高点。最近由于面向个人消费级的独立显卡Geforce市场受到冲击,发展停滞不前,从而无法继续摊薄Tesla计算卡的生产成本。不过就算如此,未来GPU的产品形态最大可能还是单卡。当然如果“丹佛”芯片研发顺利的话,也不排除A R M CPU+G P U的芯片问世。

Intel前几年针对GPU对计算市场的奇袭,仓促应战的Larrabee出师未捷。痛定思痛之后,一边“围魏救赵”,推出集成显卡的Sandy Bridge,逆袭Geforce的大本营个人显卡市场;另一边放弃原有的GPU思路,改用全新架构MIC(Many Integrated Cores),明年年中推出的Knight Corner颇有几分值得期待之处。虽然明年的新MIC仍会以PCIE卡的形态发布,但从成本及编程等综合考虑,PCIE卡应该并非Intel的最佳选择。因此如果MIC投石问路成功,Intel很有可能将其集成到主板中,以解决目前PCIE卡在计算时遇到的主板-插卡之间数据传输瓶颈的通病。

由于异构众核的硬件更新换代频率惊人,甚至超越了CPU的摩尔定律,因此软件研发将不可避免地会在编程策略、目的和工具上遇到各自的挑战。

Revolution V.S. Evolution:

关于编程策略,到底是采用推倒重来的革命(Revolution)方式还是逐步改良的进化(Evolution)方式,一直都存在很大的分歧。某些学者认为,从编程思路来说,异构众核不仅完全不同于串行CPU,甚至不同于多核CPU。因此如果过于执着于原先的串行CPU,可能会束缚在原有的思路中,导致无法写出优秀的异构众核程序。应当采用全部推倒,重新开发的方法。不过我个人对此

有不同的看法:先改良成多核CPU版本作为过渡,这样可以熟悉代码,又可以深入挖掘算法的内在并行性,然后再改良成异构众核版本。逐步改良所需花费的时间和精力不会很大,但能有效利用现有代码,保护用户先前投资,同时更容易掌控进度,规避风险,因为无法实现多核CPU的算法,通常无法设计高效的异构众核版本。然而目前,针对逐步改良所必须的SDK和工具集还很不完善。

Performance V.S. Performance Portability:

伯克利大学的David Patterson教授曾提到,性能(performance)一直以来都是并行编程的惟一目的。然而进行异构多核时代之后,性能可移植性(performance portability)将有望逐渐成为第一要义。如果某算法在指不同厂商的产品,或相同厂商的不同代产品之间,都有比较稳定的性能加速比,则称该程序有良好的性能可移植性,例如在异构平台A/B/C上,加速比分别为10、8、7的算法,就要远好于20、2、3。之前无论是串行程序还是并行程序都是运行在CPU之上,其本质的计算模型是一致的。但异构多核就不同了,MIC架构与GPU架构完全不同,nVIDIA的GPU与AMD的GPU区别很大,即使是同一公司不同代的GPU之间,硬件参数和性能也有不小的差别。因此性能可移植性所带来的挑战会越来越严峻,没有良好的性能可移植性,大家就只能紧随厂商的步伐,频繁地更新程序。然而到目前为止,还没有一个成熟到可用的解决方案。

Explicit V.S. Implicit:

异构众核计算目前所采用的工具,无论是nVIDIA主推的C U D A还是A M D主推的O p e n C L,都属于显式(explicit)并行工具,即需要程序员手动处理并行性,分配内存和协调线程间同步等,这与集群上的MPI性质相同。而隐式(implicit)并行工具则提供了相应的工具和编译器,能部分解决这些问题。鉴于难学难用的显式并行MPI只在HPC社区内流行,而异构众核计算又志不在此,因此虽然性能上会打着折扣,但易学易用的隐式并行最终大有可能成为主流。然而目前虽有一些可用的隐式并行产品如法国CAPS的HMPP,但处理实际复杂算例的能力还有待进一步完善和提高。

在可预见的未来,从智能手机到超级计算机,都将出现异构众核计算的身影。目前三大硬件厂商基于各自商业利益和技术优势的考虑,分别选择了三条完全不同的产品路线,最终将带来一场异常惨烈的搏杀。谁能先“软硬通吃”,形成类似P C时代的Wintel联盟,抢先一步提供针对上述三大挑战的解决方案,就能为胜利天平自己的一边添加一个重量级的砝码。

林新华上海交通大学网格中心副主任

猜你喜欢
三个三异构编程
试论同课异构之“同”与“异”
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
吴健:多元异构的数字敦煌
异构醇醚在超浓缩洗衣液中的应用探索
履行主体责任“三个三”来引领
正通煤业打造“三个三”安全教育培训模式
“三个三”:为党内政治生活大熔炉添把“火”