加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

英特尔的“矛”与“盾”

(2007-05-30 03:33:21)
标签:

英特尔

软件

多核

英特尔的“矛”与“盾”

 

    最近看一些报道称,英特尔公开表示了对摩尔定律的新看法:软件行业也应当遵守摩尔定律,软件应当每两年将所支持的平行工作能力翻番。英特尔同时指出,曾几何时,软件行业发展和芯片硬件产业比翼齐飞,然而如今软件技术的发展已经被芯片抛在了身后。

 

    此消息无疑表明英特尔对于目前软件发展速度和对于其双核/多核应用支持乏力的不满,但这与英特尔在各种场合所宣传的整个产业链,尤其是软件应用已经为多核时代的到来做好准备的观点相矛盾。

 

    其实早在2004年,现任英特尔高级副总裁兼数字企业事业部总经理基辛格就曾同微软的比尔·盖茨谈过多核处理器的问题,但未获得比尔·盖茨支持。比尔·盖茨称,我们无法开发出支持多核处理器的软件。比尔·盖茨当时希望英特尔继续开发运行速度更快的单核处理器,三年后的今天,从整个软件应用来看,比尔·盖茨当初的论断仍是正确的,由单核到多核是一次非常复杂的转型。

 

    众所周知,多核处理器与之前的单核处理器有很大的不同就是它需要软件的支持,只有基于多线程的软件应用多核处理器才能发挥出应有的效能,因此多核处理器的最大问题就是软件问题。

 

    先说操作系统,尽管目前微软最新的桌面操作系统支持双处理器,但操作系统对资源的分配和管理并没有本质的改变,多以对称的方式进行平均分配。也就是说,在操作系统层面,当一个任务到来时,剥离成为两个并行的线程,因为线程之间需要交流以及操作系统监管,它导致的效率损失要比硬件层面的大得多。并且,多数软件并没有充分考虑到双核乃至多核的运行情况,导致线程的平均分配时间以及线程之间的沟通时间都会大大增加,尤其是当线程需要反复访问内存的时候。比如做一个FFT测试时,由软件和硬件构成的系统将呈现出巨大差异,因为多数操作系统还没有完全实现自由的资源分配。IBM也是通过AIX 5.3L在支持更自由的虚拟化Power5上,实现了资源的动态调配和划分。

 

    从长远来看,需要使用虚拟化技术才可能实现操作系统对任务的具体划分,这很可能改变一些通用的编程模式。不仅操作系统层面无法完全解决这个问题,就是软件在编写的时候其编译器都无法充分解决这个问题。面对多核系统,需要有并行编程的思想才有可能充分利用资源,而人类的思维模型习惯于线性思维,对“面”或者更为复杂的立体编程模式,效率会下降很多。

 

    除了操作系统外,在应用软件上,最早发现问题的是PS3、Xbox 360等平台的游戏开发商,由于两套系统完全不同于前一代产品,游戏开发者对此怨声载道,程序员普遍认为对多核处理器编程近乎是一种灾难,因为程序员必须深入了解相应的硬件平台,然后据此编写代码,而让代码在两个核心之间平衡更是一大难题。相对来说,PS3的IBM Cell平台难度更大,程序员首次接触到主—从方式的多核平台,对如何发挥出协处理器的性能优势缺乏经验,由于编码的不到位,让Cell平台无法表现出与实际相称的高性能。

 

    同样的事情现在也出现在X86领域,双核平台的出现让软件开发商考虑对双核优化的重要性—但比较幸运的是,诸如办公软件、网页浏览器、内容创建工具等常规的商务软件对CPU性能要求不高,对双核优化也不见得会带来什么实质性的益处,因此主要的X86软件都不需要作变动,真正需要考虑双核平台的仍然是X86平台下的游戏。

 

    有人悲观地预测,应用开发商们将需要几年时间重新编写程序。一旦确立了一种转换方法,IDE工具厂商将开始推出帮助管理多线程开发复杂性的自动化扩展工具。这两个过程很容易用上3—5年的时间。具有全集成多线程控制结构的商业开发语言应当在5—7年后得到广泛使用。但即使那样,个人用户也不要指望在每次推出新CPU时,桌面应用程序的性能都会马上提升。对于多内核系统来说,拥有桌面上的CPU带宽与能够利用它是两件完全不同的事情。

 

    尽管利用并行CPU提高总体软件性能的概念至少已经出现35年了,但是在开发工具方面,使这种方法进入商业市场的东西却非常少。可供程序员迅速开发出来的程序还是单线程的。虽然多内核CPU使你可以将多个应用分配到多个处理器上,但是单个应用的性能仍受到单个处理器的速度的限制。夸张一点的说:不管你有一个处理器还是100个处理器,现今的大部分应用程序性能增加不会很大,因为在任何时刻,每个应用只能运行在一个处理器上。

 

   面对目前软件应用的滞后,在双核和多核领域始终是锋利“矛”的英特尔终于按捺不住了。因为它遇到了因为自己过快发展而导致的软件应用“盾”的产生。由此看来,所谓产业链,尤其是软件应用已经为双核和多核(目前是四核)做好准备一说的确有待商榷。

 

    其实对于英特尔最近一年多的表现,业界早有微辞。其中双核、四核过快的过渡;同类产品划分过细;处理器与平台的推出不统一等给用户的选择都造成了相当的困惑,其对手AMD也指责其产品更新过快,不但没有站在用户的角度,还给OEM厂商造成库存的压力。

 

    笔者认为英特尔应该适当地回回头了,从对于推出处理器速度的追求,转而应该更加去关注实际的应用,要配合软件应用的进程,否则总感觉是自己在低头猛跑,尽管跑得很快,但没有了挑战者和支持者(软件应用、用户)的竞技场,意义在哪里呢?如果还是这样的话,那么以己之矛攻己之盾的现象还会出现,这对于一个企业和整个产业来说都是一种资源和人力的浪费,而用户最终也不一定会买你的帐。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有