声明:转自http://www.mittrchinese.com/article.jsp?id=468

英特尔重启超级计算机技术

(作者:罗伯特•X•克林奇利) 

当2002年安瓦尔•古鲁姆(Anwar Ghuloum)来到英特尔工作的时候,该公司是芯片制造行业的龙头老大,这主要是因为它在持续供应速度越来越快的处理器。“我们的奔腾4处理器已经达到了3GHz,而公司发展路线图计划,未来生产时钟频率达到甚至超过10GHz的处理器,”古鲁姆回忆道,他拥有卡内基梅隆大学的博士学位,现在是该公司的首席工程师之一。在同年的英特尔开发商会议上,首席技术官帕特•基辛格(Pat Gelsinger)说,“我们正在按部就班地进展,将在2010年开发出30GHz的设备,采用10纳米或更小的制作工艺,实现万亿指令级别的性能。”就是每秒钟处理一万亿条计算机指令。

但是基辛格错了。英特尔和它的竞争对手仍在制作速度低于4GHz的处理器,至少现在看来,5GHz依然被当作硅技术可实现的最大速度。

这并不意味着摩尔定律失效了——该定律认为,一块芯片上的晶体管数量每两年增加一倍。当然,由发热和能量消耗带来的不可预测的问题,已经对处理器的时钟频率或指令的处理速率造成了实际限制。新的技术,比如自旋电子学(它用单个电子的自旋方向来编码数据)和量子(或隧道)晶体管,最终可能会使计算机的运行速度大大提升,同时大幅降低能耗。但是,这些技术至少还需十年才能进入市场,而且它们需要更换掉花费数百亿美元建造的半导体生产线。

所以,为了使手中的技术发挥出最大的效用,芯片生产商们采取别的方法。摩尔定律预测增加的晶体管,并不用于加快单独处理器的运行速度,而是增加了芯片中处理器的数量。拥有双处理器——或“核心”——的芯片现在成为台式计算机的标准配置,而四核芯片也越来越普遍。从长远来看,英特尔期望每台设备包含数百个核心。

但是出现一个问题:尽管过热芯片的硬件问题通过多核计算的方法很好地解决了,但是这种解决方案进而引来一个棘手的软件问题。你怎么给多处理器编程?这就是安瓦尔•古鲁姆,在他管理的美国和中国编程团队的帮助下,所要解决的。

微处理器公司采用多核战略是顶着巨大风险的。如果他们找不到为新芯片编写软件的简单方法, 那么他们就可能失去软件开发者的支持。这就是索尼的多核PlayStation3游戏机推迟上市,并且在游戏数量上仍然输给竞争对手的原因。

硅的问题

微处理器发展的前30年间,提高性能的方法是尽量缩小芯片的零件尺寸,同时提升运行的时钟频率。1977年,最初的苹果II型电脑使用一个运行速度为1MHz的8位处理器。今天的计算机标准为3.6GHz的64位芯片——实际上速度是以前的28800倍。但这似乎就是这条轨道的终点。到2002年左右,蚀刻在芯片的最小零件尺寸,通过光刻技术缩减至90纳米——在此规模下会产生意料之外的结果,大部分注入到芯片的电流会泄漏出去,产生热量却什么工作也不做。同时,由于晶体管排列得太过密集,它们发出的热量无法被吸收和带走。当时钟频率达到5GHz时,芯片制造商们意识到,芯片的温度太高,以至于如果没有精密的冷却系统,它们的制造原料——硅——就会融化。该行业需要别的途径来提高性能。

相对于单核高速芯片现在所需的设计复杂,多核技术可以具备相同处理能力并消耗更少电力。更少的电力产生更少的热量。此外,使用多核可以随时随地地释放热量。

然而,大多数计算机程序设计时并没有考虑多核。它们的指令被线性处理,没有并行环节的作用。如果你的计算机看起来能同时进行多项任务,那是因为处理器不停地在任务间跳转,其速度快得超乎你的想象。因此多核最简单的用途就是劳动分工——例如,在一个核心上运行操作系统,在另一个运行一个应用程序。

这不需要一个全新的编程模型,而且,它可以匹配今天拥有两个或四个核心的芯片。但是将来出现64个核心时,该怎么办呢?

重操旧业

幸运的是,哈佛大学计算机科学与应用数学的教授莱斯利•瓦瑞安特(Leslie Valiant)说,高性能计算领域——也就是超级计算机——的并行原理几十年前就解决了。“现在的挑战,”瓦瑞安特说,“是寻找让这些老玩意儿依然有效工作的方法。”

激发出多核计算的超级计算机是上世纪80年代的第二代设备,由思维机器(Thinking Machines)和肯德尔广场研究公司(Kendall Square Research)等公司制造。这些公司使用成百上千个现成的处理器,让它们并行地运行。一些由美国国防部高级研究计划署委托制造,以当作克雷超级计算机(Cray supercomputers)的廉价替代品。为这些计算机编程所获得的经验教训,成为今天进行多核编程工作的指南。所以,《侠盗猎车手》游戏可以很快地从二十年前帮助设计氢弹的软件研究中获益。

在80年代,并行计算的关键问题开始清晰起来:很难将软件分开在数百个处理器上并行工作,再按照正确的顺序组合回去,而不让预期结果错误或丢失。计算机科学家发现,尽管一些问题很容易并行化,但是也有一部分不行。在一种叫做“竞态条件(race condition)”的情况下,即使问题可以并行化,结果可能仍会不按顺序返回。想象两个并行工作的运算,其中一个需要在另一个之前完成,才能使总结果正确。你如何确保正确的那个运算赢得这场竞赛呢?现在,想象一下两千个或两百万个这样的处理进程的情况。

“我们从高性能计算的早期工作了解到,有些问题适合平行,但是这些平行应用程序不容易编写,”伊利诺伊大学香槟分校通用并行计算研究中心(Universal Parallel Computing Research Center,UPCRC)的副主管马克•史尼亚(Marc Snir)说。通常,程序员使用专门的编程语言和工具来为计算机编写指令,因为相对于1/0二进制码,人们更容易理解它们。但是这些语言旨在表现线性的运算过程;我们很难通过一系列线性命令来组织数千个平行的进程。为了从头创建并行程序,就需要编程语言让程序员在编码时不考虑如何使之平行——就像往常一样编程,软件会计算出如何给多个处理器有效地分发指令。“然而,现在仍没有好的工具来隐藏并行,或令其浅显易实现,”史尼亚说。

为了帮助解决这些问题,公司们已经召回了参与80年代超级计算机的老家伙们。例如,大卫•库克(David Kuck),伊利诺伊大学的荣誉退休教授,以并行编程工具的开发者而闻名。现在,他在英特尔从事多核编程工作。同样还有以前数字设备公司(Digital Equipment Corporation)雇佣的整个团队;在早期职业生涯中,该团队开发出数字设备公司的消息传递接口(MPI)实施方案,如今成为多机超级计算机的主要软件标准。

就某种意义来说,这些老先生们比上一次要轻松一些。因为,今天许多的多核程序与杰出的主机设计者吉恩•阿姆达尔(Gene Amdahl)的设想大大不同,他创立的理论认为,通过使用多个处理器所获得的速度增量受限于给定程序可以被并行化的程度。

计算机现在处理的数据量比以前更大,但是它们对任务的处理能够完美地平行化,以至于1967年描述的阿姆达尔定律的约束似乎变得完全不存在了。大规模平行任务的最简单例子,是通过尝试所有可能的字母组合来暴力破解密码。将潜在答案分给1000个处理器必然会快上1000倍。今天的视频和音频数据编码等处理器密集型程序也同样受益。并行地压缩电影几乎有完美的效率。但是,即使今天更容易找到并行计算的用途,要实现它也不那么容易。让它变得简单,就需要芯片制造商、软件开发者和计算机学者的一致努力。实际上,伊州大学的UPCRC就是由微软和英特尔资助的——如果多核计算成功,这两家公司将获益丰厚,如果失败,则损失惨重。

发明新工具

如果软件继续复杂化,那不只是因为加入了更多的功能,还因为程序员实际所做工作的复杂性被越来越多的抽象层掩盖,而编码就建立在这些抽象层上。这不仅仅是膨胀:程序员需要抽象,好让基础的二进制码完成我们所想要的更加高级的工作。但是,当开始为并行处理器编写程序的时候,程序员使用的工具就太简陋了,甚至微软研究院未来数据中心项目的软件架构主管詹姆斯•拉诺斯(James Larus)将它们比喻成“程序员所能使用的最底层和最困难的语言”。

“我们无法想象使用汇编语言编写今天的软件,”他说。“但是出于某些原因,我们认为,我们可以使用几乎是并行汇编语言的工具来编写复杂度类似、但拥有新的关键特性的并行软件,实际上却做不到。”

这就是为什么微软一直在尽早发布并行编程工具。例如,F#,是微软通用ML编程语言的并行版本。它不仅使一些功能平行化,而且防止它们之间不当的相互影响,从而使并行软件变得更易于编写。

同时,英特尔每个月都将古鲁姆送出国一周,与软件开发者讨论多核架构和并行编程模型。“我们已经得出一个观点,并行编程‘问题’不会在一两年内解决,它将需要对现在的语言进行大量改进——以及几次跳跃式发展,”古鲁姆说,“我还认为,我们不能脱离现实去完成这项工作;没有重要的程序员反馈,我们无疑将以失败告终。”

在商业和开源市场,其它新的语言和工具要么利用了多核处理的能力,要么掩盖了它的复杂性。其中包括谷歌MapReduce架构,它使并行计算更易于在集群计算机上运行;Hadoop,一个MapReduce的开源实施项目,可以为数千个节点分配程序。类似Clojure和 Erlang等新的编程语言完全以并行计算为根本而设计,风靡全球的Facebook聊天程序就部分使用Erlang编写。

同时,从麻省理工学院诞生的公司,Cilk Arts,可以将使用现有C++语言编写的程序打散为多线程,从而能在多个核心上并行处理。还有,圣刘易斯市的Appistry公司宣布,它的企业应用结构(Enterprise Application Fabric)可以自动地将微软的.Net编程框架分配给数千台服务器,程序员连一行原始代码也不用修改。

多核计算的局限

然而,就像英特尔的10GHz和30GHz芯片的梦想给多核计算的发展让路一样,多核自己也只能存活大约几年,而不是几十年。每增加一个处理器,并行系统的效率就会下降一些,因为处理器在争夺相同的数据;当矛盾发展到一个临界点时,向芯片增加新的核心实际会拖慢它的速度。可能在我们开始购买百核计算机之前,多核策略就被早早设置了实际限制。

然而,这有什么关系呢?尽管有些程序可能需要多核的能力,但是大多数人不会使用它们。除了游戏发烧友,很少有人会抱怨他们的计算机太慢。实际上,微软已经强调Windows 7,作为陷于困境的Windows Vista的替代品,将比Vista使用更少的处理能力和内存——这是应对低耗能移动计算平台的普及和可预期的个人电脑应用程序网络化,所采取的必要举措。愤青们会说,对不断增长处理能力的追求是纯商业的——半导体和计算机公司、软件供应商和手机制造商需要我们购买新的玩意。

所以,如果多核计算失败了,会有什么负面影响呢?如果我们的技术出现重大转折,突然无法使用未来笔记本电脑中全部64个处理器核心时,我们的文化会受到什么影响呢?

“我等不及了!”苹果II型机的发明者史蒂夫•沃兹尼亚克(Steve Wozniak)说,“摩尔定律的失效将带来软件开发的复兴,”他宣称。“只有到那时,我们才能最终创建在稳定持久的平台上运行的软件。”

“在学校里,”沃兹说,“一张课桌的生命期是25年,一本教科书是10年,而一台计算机最多3年。这些设备中哪一个的购买和维护费用最多呢?当然是计算机。哪些设备的使用期结束后还具有剩余价值呢?不是计算机——我们要花钱去处理这些电子垃圾。至少书本可以烧掉取暖。直到技术的速度减慢,计算平台生存期足够长,具有经济上的可行性时,它们才会真正成为教育的必备物品。所以,摩尔定律的结束,虽然感觉不好,实际上却是一件好事。”

——————————————————————————————————————
罗伯特•X•克林奇利(ROBERT X. CRINGELY)已经为科技行业笔耕30载。他是《意外的电脑王国:硅谷的毛头小伙子们是如何成为百万富翁、参加国际商战,却仍然不懂约会》一书的作者。

关键词:  [ Anwar Ghuloum ]  [ 摩尔定律 ]  [ 超级计算机 ]  [ 多核计算 ]  [ 并行原理 ]  [ 竞态条件 ]

英特尔重启超级计算机技术相关推荐

  1. 英特尔宣布推出锐炫 A 系列移动端独立显卡

    3月31日消息,英特尔近日宣布推出面向笔记本电脑的英特尔 锐炫™ 独立显卡系列.这是英特尔锐炫A 系列显卡产品组合中率先发布的独立显卡,公司也将于今年发布面向台式机和工作站的产品.英特尔重点介绍了锐炫 ...

  2. 【比特熊故事汇】3月MVP英雄故事——微软MVP与英特尔首席工程师的春日Remix

    大家好!我是爱吃.爱玩.更爱学习技术,IT届的新晋网红,开发者的好朋友-比特熊! 大家看了<青春变形记>吗?特别澄清一下,并不是比特熊 Cosplay 以后的出演哦~ 比特熊:3月的故事汇 ...

  3. ChinaJoy2018英特尔再度霸气包馆,这些理由让你不得不来

    上海2018年7月27日电 /美通社/ -- 2018年8月3日至6日,第16届ChinaJoy将如期在上海新国际博览中心盛大举行.今年,英特尔将再次霸气包馆,携惠普.联想.技嘉.雷蛇等产业合作伙伴一 ...

  4. 谷歌本月重启办公室上班;小米成中国第一大手机厂商;英特尔处理器被曝存关键漏洞 | EA周报

    EA周报 2021年4月2日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.小米成中国第一大手机厂商 2.谷歌本月重启办公室上班 场地重新装修允许员工带 ...

  5. 英特尔CEO出席2023世界经济论坛,前瞻五大“超级技术力量”如何推动科技进步

    1月16日,2023年世界经济论坛年会(达沃斯论坛)在瑞士小镇达沃斯举办,英特尔CEO帕特·基辛格受邀参与此次论坛.帕特·基辛格指出,在全球数字化进程势不可挡的今天,包含计算.连接.基础设施.人工智能 ...

  6. 华硕主板装系统蓝屏_华硕主板装系统蓝屏咋设置bios?自己装Win7系统硬件官网驱动华硕主板H61M-E(英特尔芯片组)...

    如果是别的,就默认用mbr启动了. 解决方法②: 进入主板BIOS,文件格式选NTFS格式,所以对于光盘用"解决方法①"是不能成功的,那么请用以下方法解决:/④⑦.或者用diskg ...

  7. 基辛格带领英特尔发起大反攻,以开源生态驱动异构计算

    在被英特尔 CEO 帕特·基辛格定位为转折之年的 2021 年里,英特尔以超高频率发布多个重磅举措.在近日举办的英特尔 On 技术创新峰会(Intel Innovation)期间,英特尔宣布重新拥抱广 ...

  8. 英特尔公布无人驾驶战略,后 PC 时代芯片王者之争在汽车行业打响

    10月19日,英特尔在召开无人驾驶媒体分享会,正式向外界公布了公司的无人驾驶战略布局,强势介入英伟达原先占主导地位的智能驾驶服务器系统. 英特尔全球副总裁兼中国区总裁杨旭 英特尔全球副总裁兼中国区总裁 ...

  9. 英特尔2022年投资者大会:公布技术路线图及重要节点

    在英特尔2022年投资者大会上,英特尔CEO帕特·基辛格和各业务部门负责人概述了公司发展战略及长期增长规划的主要内容.在半导体需求旺盛的时代,英特尔的多项长期规划将充分把握转型增长的机遇.在演讲中,英 ...

最新文章

  1. Hyper-V vNext新的虚拟机配置文件、配置版本
  2. 04_Pytorch生态、PyTorch能做什么、PyTorch之Autograd、autograd案例、GPU加速案例
  3. 荣耀linux怎么安装双系统,双系统怎么装?
  4. Atitit  如何让精灵控件运动
  5. 【latex】2 使用Aurora与在word中编写伪代码
  6. 【Proteus仿真】 51单片机利用定时器制作简易SPWM波形输出
  7. memory hierachy
  8. C++银行账户管理程序1
  9. CAD梦想画图中“轻松手绘”功能使用方法
  10. 单片机驱动SD3077时钟芯片
  11. 人工智能工具推荐:采集图片神器——后羿采集器
  12. Android高仿微信图片多选功能
  13. 查看 class 文件
  14. poi-tl导出word复杂表格(单元格合并,生成复杂表格)
  15. Java web 项目技术文档目录结构
  16. shell练习题(牛客网15道题)
  17. Java基础再回首之设计模式系列①-----StrategyPattern 策略者模式(案列教程,附带demo)
  18. java bs项目_BS(Java平台)
  19. matlab植物,matlab分形植物模拟
  20. Prolog教程 8

热门文章

  1. swift入门一:设置window
  2. windows上安装binwalk
  3. 开始菜单和cortana无法工作
  4. java优雅的非空判断
  5. android8.1 添加 doze白名单
  6. android内存修改 跳一跳,Android版微信跳一跳小游戏利用技术手段达到高分的操作方法...
  7. python如何进阶提升_python快速进阶3-提高pip install速度
  8. 竹间智能知识库助推企业知识管理迈向智能化
  9. 研究方法 | SCI 必备:3 款强大的英文论文写作神器
  10. CART回归树及其实战