§3多处理机的并行和性能.ppt

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

§3 多处理机的并行和性能 并行算法 程序并行性分析 并行语言与并行编译 多处理性能 并行算法 并行算法的定义和分类 多处理机并行算法的研究思路 并行算法的定义 算法规定了求解某一特定问题时的有穷的运算处理步骤 并行算法是指可同时执行的多个进程的集合,各进程可相互作用、协调和并发操作 并行算法的分类 按运算基本对象:数值型(基于代数运算),非数值型(基于关系运算) 按并行进程间的操作顺序不同:同步型,异步型,独立型 按计算任务的大小:细粒度,中粒度,粗粒度 并行计算的模型 PRAM(Parallel Random Access Machine) APRAM(Asychromous PRAM) BSP(Bulk Synchronous Parallel) logP(Latency, Overhead, Gap, Processor) 并行计算的功能 降低单个问题求解的时间 增加问题求解规模、提高问题求解精度 (多机同时执行多个串行程序)容错、更高的可用性、提高吞吐率 如何实现并行计算? 分而治之 并行化的主要方法:分而治之 根据问题的求解过程,把任务分成若干子任务(任务级并行或功能并行) 根据处理数据的方式,形成多个相对独立的数据区,由不同的处理器分别处理(数据并行) 并行计算基本设计技术 划分法(Partitioning) 首先,将原问题分成p个独立的近乎大小相等的子问题;其次,用p台处理器并行求解诸子问题。 划分的难点在于要留心分解子问题,使得子问题的解很容易被组合成原问题的解。 例如(m, n)-selection网络。 分治法(Divide-and-Conquer) 将原问题规模从大到小逐渐分解成一些特性相同的子问题;直到子问题很容易求解为止。 分治很自然地导致递归过程,其注意力集中在子问题地合并上。 例如FFT的计算。 并行计算基本设计技术(续) 平衡树法(Balanced Tree) 将输入元素作为叶节点构筑一棵平衡二叉树;然后自叶向根往返遍历。 此法的优点是在树中能快速存取所需的信息。 例如数据播送、求最大/最小值以及求和/前缀计算等。 倍增法(Doubling)/指针跳跃法(Pointer Jumping) 使用递归计算,将需要处理的数据间的距离逐步加倍,经k步后就可以完成距离为2k的所有数据的计算。 此法特别适合于处理以链表或有根树之类为数据结构的问题。 例如表序问题的计算和求森林根等。 并行计算基本设计技术(续) 流水线法(Piplining) 将原任务t分成一系列子任务t1,t2,…,tm,使得一旦ti完成,后继的子任务就立即开始,并以同样的速率计算之。 例如systolic计算。 破对称法(Symmetry Breaking) 打破某些问题的对称性,使原问题可并行计算。 例如有向环图的顶点着色。 并行算法常用的设计策略 串行算法的直接并行化 检测串行算法中固有并行性而直接将其并行化。 直接并行化的关键是分析数据执行时的相关性,为此有时需要调整原程序的执行顺序和复制共享变量等。 直接并行化并非对所有问题均可行,但对很多应用问题仍不失为一种有效的方法。 并非任何优秀的串行算法都可以产生最好的并行算法;相反一个不太好的串行算法则有可能产生很优秀的并行算法。 并行算法常用的设计策略(续) 设计全新的并行算法 从问题本身的描述出发,根据问题的固有属性,从头开始设计一个全新的并行算法,而不管其相关的串行算法。 此方法有难度,但通常可产生高效的并行算法。 借用已有的算法求解新的一类问题 仔细研究两类不同问题求解方法的内在的、直接或间接的相似性,借用已有的求解某问题的并行算法来求解新的一类问题。 此方法对初学者有一定难度,但一个好的借用法所设计的算法,往往给人带来深刻的影响,广为传颂。 并行算法的一般设计过程 划分(Partitioning):将整个计算分解成一些小的任务,目的是尽量开拓并行性。 通信(Communication):确定诸任务并行执行中通信情况,以检测上述划分粒度的合理性。 组合(Agglomeration):根据性能和代价来考察上两步的结果,必要时组合一些小任务以减小通信开销。 映射(Mapping):将每个任务指派给个处理器,目的是最小化执行时间和最大化处理器利用率。 并行算法一般设计过程 并行算法的性能分析 并行算法的基本性能指标 执行时间t(n)和所使用的处理器数p(n) 计算成本c(n)=t(n)*p(n) 加速比 效率 Amdahl定律 计算负载固定,随着处理器数的增加计算时间将减少。令W是计算负载,Ws是W中的串行分量,Wp是W中的并行分量,f=Ws/W是串行分量比率,则Amdahl加速定律 所以即使使用无穷多

文档评论(0)

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

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档