开发多核处理器技术
2007年4月初,英特尔公司宣布了一项令人惊讶的研究项目:压缩在一块小小芯片上的第一台可编程超大型计算机。该公司展示了一个拥有80个处理器的芯片, 这些处理器在被程序化之后,每秒能进行一万亿次计算。这种芯片大约只有一张邮票那么大,但是计算速度却相当于1996年的那台占地面积约为2000平方英尺、能耗是它的一千倍的超大型计算机。
英特尔公司的工程经理兼实验室项目负责人Nitin Borkar说这种芯片仅仅是英特尔向开发多核处理器技术迈出的第一步。英特尔的目标是利用这种芯片去测试那些可以使多核处理器速度更快、能耗更低、更快捷、更容易编程的技术。如果一切顺利的话,这些技术将在五到十年内被用到未来的产品中去。
但是,几乎所有的计算机工程师都认为集数百个处理器于一台消费者电脑之中不是件容易的事,许多人怀疑该方案的可行性。这其中最大的问题在于如何彻底地改变软件,从而使实际应用能够得益于多核处理器。这包括教软件开发人员如何为多核处理器编写程序——这种程序目前被称为并行程序,并且开发一种工具,使得写这些程序变得准确而高效。
研究人员和预测者们正在考虑如何最好地使用这些超大计算机芯片。英特尔公司认为,数据挖掘和合成等应用将会是关键,几大应用联合起来,相应技术将会允许人们通过手机对语言进行即时翻译,通过图像或所讲的只言片语对录像进行即时搜索,从而拥有更好的购物、用餐和医疗环境。
加利福尼亚大学伯克利分校的计算机教授David Patterson认为,要使这些应用成为现实,计算机工业还得经历一些成长的痛苦。(David Patterson教授和他的同事们在网站上主持了关于此话题的讨论,并提供了白皮书和录像片。)Patternson 教授说, 我们正处于一场巨变的早期。他描述了计算机工业的发展现状:放弃使计算机性能受到极大限制的单核处理器技术,向多核处理器技术迈进,制造商正往芯片中加入越来越多的处理器,而软件工程师却不确信他们是否能跟得上这种变化。
“对于研究人员来说,这是一个令人激动的时刻,”Patterson 教授说,“如果我们能过找到突破口的话。”
并行编程的挑战
加利福尼亚劳伦斯伯克利实验室的计算机专家John Shalf介绍,由于单核处理器芯片的处理器速度的计量单位——时钟脉冲频率——在过去的几十年中被不断提高,编程人员能够避开编写并行程序这一挑战。Shalf 说,如果为了能用上新一代的芯片再多等18个月,那他们的程序会运行得更快。 然而,到了2002年,很明显单核处理器芯片的能耗太大,以至于它们不能够支持速度的持续提高。 因此,目前计算机业界决定改变方向:芯片制造商不再考虑如何提高单一处理器的速度,而是决定在芯片中加入更多的处理器。“现在我们已不能再提高时钟脉冲频率了,我们不得不面对并行编程的挑战,”Shalf 说,“计算机界对此的反应可以用恐慌一词来描述。”
编写并行程序为什么如此令人生畏呢?首先,目前只有那些运用成千上万个处理器组成的高性能计算机解决具体难题的专家正在采用这些软件。这些软件可以用来建立气候变化的模型, 或用来预测蛋白质的折叠, 但是它们只是用来完成某些单个的费时的任务,并不能用来满足消费者千变万化的需要。
其次,具体来讲,并行程序必须把各个任务恰当地分配给各个处理器。这并非易事。 不是所有的程序都天然地拥有能够被分开的部分,有时当各个部分被分开时,由于任务在不同的时间完成将造成瓶颈。
另外,共享资源也会带来问题。举个例子说,如果某个应用需要使用内存中的数据,而这些数据是被几十或几百个处理器所共享的,程序的运行就会慢下来,或者完全停滞。更糟的是,要发现并行程序中的小小错误简直是一场噩梦。因为在并行程序中,错误是很少被重复的,这使得错误的根源很难被发现。
探索可能的解决方案
“即使困难重重,希望仍然是有的。”Shalf 说。高性能计算行业的研究人员已经开始研究除了消费者电脑之外的其他一系列并行算法。另外,市场上已经出现了许多多核处理器产品, 它们正从建筑和编程的角度为并行程序的最佳方案提供线索。例如,图像公司NVIDIA 刚刚推出了一个具有128个处理器用来为电子游戏等应用提供图像的商用芯片。许多多核处理器是具有一般用途的,意味着它们能够用来完成许多不同的图像处理任务。另外一些则是预先给定指令,然后被加入到芯片中。
英特尔、AMD及其它一些机构正和学术界的研究人员一起试图就并行程序的框架达成一致意见。麻省理工大学的计算机教授Krste AsanoviC认为其中一个比较有前景的框架是Transaction Memory。(见《The Trouble with Multicore Computers》一文)使用Transaction Memory时,芯片构造和程序相结合,编程人员可以像在为单核处理器系统编程一样有序地进行思考,同时让系统自己来并行地运行程序。在此方案中,编程人员从头到尾以线性方式来编写程序。但在幕后,这些程序却是以并行方式来运行。这种方法需要硬件制造商和软件工程师的共同努力, 因为硬件和软件必须在一起工作。“两大阵营正在进行对话,”AsanoviC 说,“但是,目前还没有达成一致意见。” 他认为,Transanction Meory最有希望成为使并行程序简单化的一种方法。
“如果两大阵营不能就多核处理器技术达成共识,终端计算机的发展可能在未来的五年内停滞不前。”Shalf 说。尽管如此,他还是很乐观,因为双核处理器和四核处理产品的出现为计算机领域带来了一种紧迫感。“在学术界我们可以争论上几年,”他说,“但是在强大的经济利益的驱动下,工业界则能够迅速地找到解决问题的方法。”
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。