并行处理技术讲解.ppt

  1. 1、本文档共228页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行处理技术讲解

第5章 并行处理技术 ;5.1 计算机系统结构中并行性的发展; 例如单体多字存储器,每次访存时能同时读出多个字,以加快CPU的访存操作。再如超标量流水线,它通过在CPU中重复设置多条流水线,由多个相同的流水线子部件来同时完成对多条指令的解释。这些都是靠器件简单的重复来实现的。 并行性有更广义的定义,如单处理机中指令的重叠解释方式和流水方式,操作系统中的多道程序分时并行,都是广义上的并行。 ; 由此可以看出,并行性有二重含义,即同时性(simultaneity)和并发性(concurrency)。同时性是指多个事件在同一时刻发生,如SIMD阵列处理机中各PE的并行操作、超标量流水处理机中多条指令的并行解释。并发性是指多个事件在同一时间段内发生。如操作系统中的多道程序分时并行、指令的流水解释过程和运算操作的流水处理过程等。 ; 2 . 并行处理的概念 所谓并行处理是指一种相对于串行处理的信息处理方式,它着重开发计算过程中存在的并发事件。在进行并行处理时,其每次处理的规模大小可能是不同的,这可用并行性颗粒度(granularity)来表示。 ; 颗粒度是衡量软件进程所含计算量的大小,最简单的方法是用程序段中指令的条数来表示。粒度的大小决定了并行处理的基本程序段是指令、循环,还是子任务、任务或作业。颗粒度的大小一般分为细粒度、中粒度和粗粒度三种,若程序段中指令条数小于500条,则称为细粒度,500条到2000条指令之间则称为中粒度,大于2000条则称为粗粒度。 假定系统中共有n个处理器,颗粒度大小G还可用以下公式来表示: G=; 式中,TW表示所有处理器工作负载(workload)的总和,即TW=∑twi,这里的工作负载实际上就是进行计算的时间;TC表示所有处理器的通信开销(communication overhead)的总和,即TC=∑tci,这里的通信开销实际上就是进行通信的时间。 由G的表达式可见,当工作负载一定时,粒度愈细,表明通信开销愈大;反之,粒度愈粗,表明通信开销愈小。 ; 3. 并行性的等级 并行性有不同的等级,而且从不同角度来观察时,会有不同的???分方法。在程序执行过程中,根据并行进程中颗粒度的大小不同,通常可划分成以下五个等级:作业级、任务级、例行程序或子程序级、循环和迭代级以及语句和指令级,如图5.1所示。 ;图5.1 程序执行过程中的不同层次的并行性; 通常,并行处理是指在这些层次上的任何一级或多级上的并行性开发。层次越高的并行处理粒度就越粗,而低层上的并行处理粒度就较细。粗粒度并行性的开发主要采用MIMD方式,它开发的主要是功能并行性。而细粒度并行性的开发则主要采用SIMD方式,它开发的主要是数据并行性。 ; 5.1.2 实现并行性技术的途径 计算机系统中实现并行性技术的途径多种多样,但就其基本思想而言,可归纳为以下三种途径: 1. 时间重叠(time-interleaving) 时间重叠是指在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。 ; 例如指令的流水解释过程,它通过把指令的解释过程划分成若干个相互联系的子过程,每一个子过程由专门的子部件来完成,利用时间重叠的方式解释不同的指令。采用时间重叠的方式基本上不需要增加硬件设备就可提高系统的速度和性能价格比。 ; 2. 资源重复(resource-replication) 资源重复是指在并行性概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能。随着硬件价格的降低,这种方式在单处理机中被广泛使用,而多处理机本身就是资源重复的结果。 例如热备用系统、容错系统等,它们根据不同性能和成本的要求,利用资源重复的方式组织冗余部件,以提高系统的可靠性。 ; 再例如阵列处理机,它通过设置多个处理单元,在同一控制器的控制下,各执行部件同时对分配给自己的数据完成同一种运算,利用资源重复的方式来提高整个系统的性能。 ; 3. 资源共享(resource-sharing) 资源共享是指利用软件的方法让多个任务按一定时间顺序轮流地使用同一套资源,以提高其利用率,这样相

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档