并行算法设计引论.ppt

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

并行算法设计引论 华南理工大学 陈虎 博士 tommychen74@ 参考文献 Ananth Grama, Introduction to Parallel Computing(并行计算导论), 2nd Edition, Pearson Education, 2003 Kai Hwang, Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw-Hill, 1993 任务图 将整个计算任务分解成若干小的任务,在将这些任务分配到不同处理器上,以获取并行性。 这些小任务之间可以完全独立运行,但是也可能存在相互依赖关系,构成任务依赖图(Task-dependency graph) 任务T1和T2可以并行 T3则需要等待T1, T2执行结束后,才能运行 关于任务图的一些概念 并发度,任意时刻可以并行执行的最大任务数 最大并发度 平均并发度 关键路径 从起始节点到结束节点之间的最长路径 粒度(granularilty),任务的大小 细粒度(fine-grained),大量的小任务; 粗粒度(coarse-grained), 少量的大任务 任务图的例子 从任务到线程的映射 目标: 相互独立的任务映射到不同的线程,以获取最大的并行度; 将相互交互的线程映射到同一个线程,减少线程之间的交互 将7个任务映射到4个线程 两种基本的任务映射策略 静态策略 在任务执行前,每个任务到线程的映射就已经确定 映射策略易于实现 对于任务负载事先可以确定的任务可以实现获取优化的任务划分策略。 动态策略 在任务执行期间分配任务到线程 映射策略实现比较复杂 对于任务负载实现难以确定的任务比较合适 任务分解技术 递归分解 将问题划分为一组独立的子问题,然后用相似的划分得到更小的子问题 例子——快速排序 选择一个主元x,将原有数组分成大于x和小于等于x的两个部分 对上述两个部分采取同样的策略,将问题继续分解 任务分解技术 数据分解 对原有数据集合分解,每个任务并行地处理一个子集合 例子,N个整数求和 将N个整数划分成P个不相交的集合,每个任务完成一个集合的求和操作 将P个任务的结果合并 任务分解技术 搜索分解 人工智能中,需要用搜索树来搜索优化结果,用每个任务完成一个搜索树的分支,一旦一个任务发现结果,其它未完成的任务可以立即结束。 例子——搜索树 并行算法的评价指标 执行时间 并行执行时间 串行执行时间 加速比 串行执行时间/并行执行时间 效率 加速比/处理器个数 成本 并行执行时间×所用处理器的数目 一个例子 用N个处理器计算N个数的和(N为2的整数次幂) 串行计算需要O(N)的时间 并行方法: 每个处理器获得一个数,两个处理器之一将其叠加,递归上述步骤 需要O(logN)的时间 加速比S=O(N/logN) 成本=O(N*logN) 加速比的进一步分析 加速比有可能超过处理器个数吗? 高速缓冲的原因 当问题规模变小的时候,每个处理器上的局部性数据变小,恰好可以被处理器的Cache容纳,使得小问题的解决速度提高 搜索树 并行算法使用宽度优先的策略进行搜索,串行算法采用深度有限策略进行,并行算法有可能检查更少的节点就发现需要的节点。 Amdahl定律 习题 对于以下两个并行计算图 计算最大并发度 请计算以下三种情况的加速比和效率 可用的处理器数目不受限制; 处理器数目等于最大并发度; 处理器数目等于最大并发度的一半; 习题 考察用P个处理器计算N个数的和 每个处理器上分配N/P个数 请给出: 并行计算时间 加速比 效率 习题 对于右边所示计算图,请用Amdahl定律计算 加速比的上限 当P=2时的加速比 * * 本课程得到 Intel?大学合作计划支持 课程网站: /uploadfile/Multicore/index.htm T1 T2 T3 T1 10 T2 10 T5 9 T3 10 T4 10 T6 6 T7 8 关键路径:T1-T5-T7 =27 总工作量:63 平均并发度=总工作量/关键路径长度 =2.33 T1 10 T2 10 T5 11 T3 10 T4 10 T6 6 T7 7 关键路径:T3-T6-T5-T7 =34 总工作量:64 平均并发度=总工作量/关键路径长度 =1.88 T1 10 T2 10 T5 11 T3 10 T4 10 T6 6 T7 7 P0 P1 P2 P3 P3 P3 P3 T1 10 T2 10 T3 10 T4 10 P0 P0 P1 P2 P2发现结果,提前结束P0和P1 n = number of processors

文档评论(0)

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

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

1亿VIP精品文档

相关文档