多核处理技术的原理与发展

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多核处理技术的原理与发展

关键词:多核;性能;Amdahl定律;并行;体系结构

0引言

随着信息技术的不断发展,当前处理器的运算速度与性能已经不能满足人们的需求,所以在很早以前,人们就开始研究提高处理器性能的各项技术。

影响处理器性能的技术指标很多,在体系结构上能采取的主要方法有:提高主频,多线程,提高IPC(每拍的指令数),2Bump技术等。在当前处理器大都采用相同的体系结构的情况下,发展并行算法,即多核处理技术,是解决当前问题最主流的趋势。

从英特尔在2005年推出第一代双核处理器,到如今每秒峰值运算速度超过200万亿次,拥有上万核心的超级计算机,多核技术以不可阻挡的速度迅猛发展。

1多核技术的产生背景

我们知道:处理器性能= 主频x IPC

上面的公式可以看出,衡量处理器性能的主要指标是每个时钟周期内可以执行的指令数(IPC: Instruction Per Clock)和处理器的主频。

因此,提高处理器性能就是两个途径:提高主频和提高每个时钟周期内执行的指令数(IPC)。处理器微架构的变化就可以提高IPC从而提高处理器的性能。但是,对于同一代的架构,改良架构来提高IPC的幅度是非常有限的,所以在单核处理器时代通过提高处理器的主频来提高性能就成了唯一的手段。

不幸的是,给处理器提高主频不是没有止境的,从下面的推导中可以看出,处理器的功耗和处理器内部的电流、电压的平方和主频成正比,而主频和电压成正比。

因为:“处理器功耗正比于电流x 电压x 电压x 主频”,“主频正比于电压”

所以:“处理器功耗正比于主频的三次方”。如果通过提高主频来提高处理器的性能,就会使处理器的功耗以指数(三次方)而非线性(一次方)的速度急剧上升,很快就会触及所谓的“频率的墙”(frequency wall)。

功耗问题限制了单核处理器不断提高性能的发展途径。过快的能耗上升,使得业界的多数厂商寻找另外一个提高处理器性能的因子,提高IPC。

提高IPC可以通过提高指令执行的并行度来实现,而提高并行度有两种途径:一是提高处理器微架构的并行度;二是采用多核架构。

在采用同样的微架构的情况下,为了达到处理器IPC的目的,我们可以采用多核的方法,同时有效地控制功耗的急剧上升。看看下面的推导。

因为:“处理器功耗正比于电流x 电压x 电压x 主频”,“IPC 正比于电流”

所以:“处理器功耗正比于IPC”

由单核处理器增加到多核处理器,如果主频不变的话,IPC理论上可以提高一倍,功耗理论上也就最多提高一倍,因为功耗的增加是线性的。而实际情况是,双核处理器性能达到单核处理器同等性能的时候,前者的主频可以更低,因此功耗的下降也是指数方(三次方)下降的。反映到产品中就是双核处理器的起跳主频可以比单核处理器更低,性能更好。

由此可见,处理器发展的趋势是:为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。较低的主频也有效地控制了功耗的上升。

2多核处理器基于Amdahl定律的性能分析

阿姆达尔(Amdahl)定律:系统优化某部件所获得的系统性能的改善程度,取决于该

部件被使用的频率,或所占总执行时间的比例。

Amdahl 定律定义了加速比:

加速比 = 采用改进措施后性能/未采用改进措施前的性能

或者 = 未采用改进措施前执行某任务时间/采用改进措施后执行某任务的时间 假设处理执行的任务中包含串行执行部分和并行执行部分。我们定义f 为并行执行部分所占的百分比,则(1-f )为串行执行部分所占的百分比。改进后比改进前性能的提高倍数记为n 。

则改进后整个任务的执行时间n T 为:

])1[(0n f f T Tn +-=

进后整个系统的加速比p S :

n f f Tn T Sp /)1(10+-==

我们通过定量计算来比较增加核心数与增加主频率对处理器性能的影响。

增加处理器核心个数

在这种情况下,改进后的系统加速比为:

;/)1(11n f f S p +-=

提高某个单一核心的频率

在这种情况,提高某一核心的频率,并将串行部分固定在此频率上执行,则改进后的加速比为:

;/)1(11f n f S p +-=

令2

1p p S S =则有: 1/)1(/)1(=+-+-f n f n f f

求得f=0.5

以上计算表明,当f<0.5时,21p p S S <;f=0.5时,21p p S S =;f>0.5时,21p p S S >; 由此得出结论:只有当并行执行任务大于总任务量的一半时,增加处理器核心个数才会更好地提高处理器的运算性能。

3基于多核处理器的并行计算

并行计算或称平行计算是相对于串行计算来说的。所谓并行计算可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。

为利用并行计算,通常计算问题表现为以下特征:

(1)将工作分离成离散部分,有助于同时解决;

(2)随时并及时地执行多个程序指令;

(3)多计算资源下解决问题的耗时要少于单个计算资源下的耗时。

并行计算科学中主要研究的是空间上的并行问题。从程序和算法设计人员的角度来看,并行计算又可分为数据并行和任务并行。

空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。

并行计算机没有一个统一的计算模型。不过,人们已经提出了几种有价值的参考模型:PRAM模型,BSP模型,LogP模型,C^3模型等。

并行算法是解决并行计算问题的方法和步骤。由于人们的思维能力以及思考问题的方法对并行不太习惯,且并行算法理论不成熟,所以总是出现了需求再来研究算法,不具有导向性,同时实现并行算法的并行程序性能较差,往往满足不了人们的需求。并行算法的研究历史可简单归纳为:上世纪70到80年代,并行算法研究处于高潮;到上世纪90年代跌入低谷;目前,又处于研究的热点阶段。现在,人们已经可以自己搭建PC cluster,利用学习到的理论知识来解决实际问题,不再是纸上谈兵,这也为我们提供了新的机遇和挑战。

4多核处理器的前景和挑战

多核处理器代表了计算技术的一次创新。由于数字数据和互联网的全球化,商业和消费者开始要求多核处理器带来性能改进,这个重要创新就开始了;因为多核处理器比单核处理器具有性能和效率优势,多核处理器将会成为被广泛采用的计算模型。在驱动pc安全性和虚拟化技术的重大进程过程中,多核处理器扮演着中心作用,这些安全性和虚拟化技术的开发用于为商业计算市场提供更大的安全性、更好的资源利用率、创造更大价值。普通消费者用户也期望得到前所未有的性能,这将极大地扩展其家庭pc和数字媒体计算系统的使用。多核处理器具有不增加功耗而提高性能的好处,实现更大的性能/能耗比。

卡内基梅隆大学计算机系教授朗道·布莱恩特直言不讳地指出,要想让多核完全发挥效力,需要硬件业和软件业更多革命性的更新。其中,可编程性是多核处理器面临的最大问题。一旦核心多过八个,就需要执行程序能够并行处理。尽管在并行计算上,人类已经探索了超过40年,但编写、调试、优化并行处理程序的能力还非常弱。

国家智能计算机中心主任孙凝辉说,“十年以后,多核这条道路可能就到头了”。在他看来,一味增加并行的处理单元是行不通的。并行计算机的发展历史表明,并行粒度超过100以后,程序就很难写,能做到128个以上的应用程序很少。CPU到了100个核以上后,现在并行计算机系统遇到的问题,在CPU一样会存在。“如果解决不了主流应用并行化的问题,主流CPU发展到100个核就到头了。现在还不知道什么样的革命性的进展能解决这些问题。”

并行计算技术是的核心技术,也是最具挑战性的技术之一。多核处理器的出现增加了并行的层次性能使得并行程序的开发比以往更难。而当前业内并无有效的并行计算解决方案,无论是编程模型、开发语言还是开发工具,距离开发者的期望都有很大的差距。自动的并行化解决方案在过去的30年间已经被证明基本是死胡同,但传统的手工式的并行程序开发方式又难以为普通的程序员所掌握。Intel、微软、SUN、Cray等业内巨头正投入大量人力物力进行相关的研究,但真正成熟的产品在短期内很难出现。可扩展性是云计算时代并行计算的主要考量点之一,应用性能必须能随着用户的请求、系统规模的增大有效的扩展。当前目前大部分并行应用在超过一千个的处理器(核)上都难以获得有效的加速性能,未来的许多并行应用必须能有效扩展到成千上万个处理器上。这对开发者是巨大的挑战。

相关文档
最新文档