自从2002年开始,受到功耗,指令级并行程度和长的存储器延迟限制,单核处理器的性能增长放缓。
于是在2006年,所有的桌面和服务器公司都进入多核领域,以求更大的吞吐量,而不是追求单个处理器的响应时间。
这给编程人员带来的却是一种痛苦,因为在以前,依靠硬件、体系结构和编译程序的进步,无需修改一行代码,程序的性能就能大幅度增加。
而多核心时代,要想显著的改进响应时间,必须重写源代码,这种体系结构的重大改变,成为痛苦之源。
1. 比起单核的串行编程,多核并行编程难度明显提高。
2. 为了发挥速度,编程人员必须将应用程序划分为每个核大致相同的任务,并同时完成,还要尽可能的减少调度开箱,以免浪费并行性能。
3. 从计算机发展到2006年之前,所有的程序都是为单核编写的,要想发挥多核性能,必须推倒重写,这种代码以亿行累积的历史负担,太过沉重。
编程难度的提高,过去的负担太重,一切的一切都让编程人员痛苦。
这也解释了,为什么多核几乎诞生了10年,无论是应用软件还是系统软件,对多核的支持依然不尽人意。
进一步解释了,为什么intel的cpu依然是世界上最受欢迎的产品,因为它的单核能力强。