|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sarnaga 于 2014-10-6 00:15 编辑
自从2002年开始,受到功耗,指令级并行程度和长的存储器延迟限制,单核处理器的性能增长放缓。
于是在2006年,所有的桌面和服务器公司都进入多核领域,以求更大的吞吐量,而不是追求单个处理器的响应时间。
这给编程人员带来的却是一种痛苦,因为在以前,依靠硬件、体系结构和编译程序的进步,无需修改一行代码,程序的性能就能大幅度增加。
而多核心时代,要想显著的改进响应时间,必须重写源代码,这种体系结构的重大改变,成为痛苦之源。
1. 比起单核的串行编程,多核并行编程难度明显提高。
2. 为了发挥速度,编程人员必须将应用程序划分为每个核大致相同的任务,并同时完成,还要尽可能的减少调度开销,以免浪费并行性能。
3. 从计算机发展到2006年之前,所有的程序都是为单核编写的,要想发挥多核性能,必须推倒重写,这种代码以亿行累积的历史负担,太过沉重。
编程难度的提高,过去的负担太重,一切的一切都让编程人员痛苦。
这也解释了,为什么多核几乎诞生了10年,无论是应用软件还是系统软件,对多核的支持依然不尽人意。
进一步解释了,为什么intel的cpu依然是世界上最受欢迎的产品,因为它的单核能力强。
AMD空有更多的核心,单核能力的雏弱,完全落入下风。
单从逻辑上来说,这并不是硬件生成厂商的问题,而是编程人员的问题。
编程人员又是为软件公司服务,推倒重写源代码?谈何容易。
这种“额外”的巨额资金开销,谁来承担?
|
|