`
varsoft
  • 浏览: 2442080 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多
究竟普通开发者是否需要面对多核,这个问题在很多地方都在讨论。很多人都认为不需要,这样说是基于过去几年的经验,认为目前的一般应用单核高速CPU已经足以应付,今后也没有新的重要应用驱动我们使用多核CPU,多核CPU要么是厂商狗急跳墙,要么是仅供科研计算,谢绝参观。

我不这么认为。

可以从两个角度来认识这个问题。

其一,现在单核CPU已经逐渐淡出市场,新生产的机器全部是双核。因此未来新增的计算机全部都会是多核,这是不以软件开发者意志为转移的。同样不以我们意志为转移的是,在激烈的竞争中,更有效地运用用户资产、提供更优异性能、更强壮的稳定性的一方会占据优势。你可以继续向用户重复说,其实单核就够了,没必要改进程序。你的用户也许会相信你一时,但是长期来看,当他的机器有4个核,8个核的时候,他一定会迁徙到更能够有效运用其机器资源的方案上去。结论是,竞争导致程序的多线程化势在必行。

也许这个观点不是那么有说服力。你可能会说,你可以凭借其它的优势稳住客户,并且这些优势肯定不会被对手抄袭。但愿你好运。可是第二个潮流恐怕就无法抗拒了。那就是新的应用。

1980-2000,曾经在将近20年的时间里,硬件的能力与软件对CPU的贪婪一直齐头并进,打造了软件最辉煌的20年。然而2000之后,我们似乎陷入了一个CPU计算能力过剩的时代。突然一下子大家感到没必要追逐CPU主频了,因为现有的计算能力完全够用,而且也想不出新的应用。于是很多人觉得,软件的历史终结了。

这是完全错误的。

我认为这几年出现的CPU计算能力过剩、新型应用发展停滞只是一个带有迷惑性的假象。造成这个假象的原因有三点,一是互联网的爆发转移了软件创新的重心,而网络带宽和可靠性均不理想,成了制约计算机整体performance的短板,相对来说,CPU的计算能力反而成了长板,显得过剩了。二是互联网使得计算向服务端集中,从而弱化了对客户端计算能力的需求。三是信息家电、数字家庭、Internet连入设备、民用机器人的发展仍处于初级阶段,新的计算平台还不成熟,人们的思路一时被束缚在成熟的PC平台上,无法展开。

然而上述三个问题都将会被一一破解,从而唤起对多核力量的渴望。

首先,网络带宽会迅速提升,使得一些新的应用出现,尤其是高质量的在线视频和视频交互应用(如远程教学,远程医疗)会对CPU运算能力提出前所未有的挑战。现在大家都习惯了模模糊糊、时断时续的网络视频,我相信5年以后我们一定会感叹自己当年的忍耐力。其次,互联网应用的发展趋势,RIA,尤其是P2P向传统应用的渗透,使得计算重回客户端。未来我们的机器可能不会是真正意义上的是Personal Computer,而是Community Computer或者Social Computer,在由计算机组成的社群里承担一份义务,这就会对普通电脑提出新的计算要求。举一个例子,未来你可能会受邀加入一个免费的视频电话网络,条件是你必须允许你自己的笔记本在线时充当一个路由器。你会如何选择?第三,新的计算设备将会在未来几年内发展起来,这些设备上可能没有成熟的操作系统,或者虽然有成熟的基础平台,但是没有足够理想的抽象层,同时对于可用性、可靠性的要求远高于PC。开发者将不得不亲手处理一些系统级的细节,在这种情况下,多线程程序设计的技术会变得非常重要,机会属于那些能够驾驭并充分发挥硬件能力的程序员。

综上所述,从现在算起,2-3年之内,多核程序设计(其实就是多线程程序设计)将成为软件开发领域的热门主题。这是我的一个估计,且拭目以待吧。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics