lecnote_4.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lecnote_4

第四讲 并行程序性能分析基础 概念 计算并行性(parallelism) 计算性能(performance) 并行程序性能分析方法 加速比 Amdahl定律:11+12 1+11 1+12 Gustafson定律:1+11 如何使得1+1→2? 计算性能及相关概念 计算性能(performance)指什么:完成任务的速度、对用户的响应时间、 ?? ? 在高性能计算(HPC:High Performance Computing)中度量计算性能时,经常出现的词汇 Efficiency:效率 Speedup:加速比 Throughput:吞吐率 Scalability:伸缩性 Fault-tolerance:容错性 Availability:可获得性 Reliability:可靠性 Robustness:鲁棒性 HPC 并行计算:speedup、efficiency、scalability 容错计算:fault-tolerance、reliability、availability、robustness 实时计算:speedup、efficiency、scalability 并行计算中的performance 高性能的并行程序就是好的并行程序 完成的快 给你更多的机器,能够完成的更快、或者处理更大规模的数据 Latency:计算任务已经确定了(算法、被处理的数据),需要多长时间来完成 计算平台的硬件处理速度 软件:系统软件、应用程序 Throughput:单位时间里能够完成的计算量 上限:计算平台中处理器的数量、各自的运算速度 其他影响因素:数据存储和访问的速度、系统软件、应用程序 度量并行程序的性能:Speedup 并行程序设计的一个更本目标就在于:开发应用程序,使得计算平台的吞吐率接近其上限 减少延迟:并发线程(体系结构里有指令和数据的预取策略),一个线程的数据没有准备好,做其他已经准备好的线程 提高吞吐率:有多个处理器、或者执行内核时,同时开发它们的数据处理能力 加速比(speedup)通常是指所获得计算速度的提高: 求解相同的问题(相同的数据,相同的数学计算方法),与串行程序比(只使用了一个执行内核),并行程序(一般使用了多个执行内核)的运算速度提高了多少倍 串行运算的时间?并行运算的时间 加速比的计算 串行计算时,只有一个进程,这个进程内只有一个线程 并行计算 线程并行:一个进程,进程里同时创建多个线程,每个线程分别处理不同的数据、或者执行不同的运算指令 在POSIX线程模型中,每个线程都可以直接访问整个进程的地址空间,从而实现子任务数据的交换 (在CELL BE线程模型中,SPE上运行的线程可以通过DMA访问整个进程的地址空间) 进程并行:同时运行多个进程,每个进程分别处理不同的数据、或者执行不同的运算指令 同一台机器上的不同进程,可以通过管道(Pipe)进行通信 不同机器上的进程,可以通过套接字 (socket)进行通信 加速比度量一个系统的性能(latency, throughput) 在CELL BE处理器上、Intel Core 2处理器上,完成一个MPEG计算,分别用了多少时间:为了说明CELL BE处理器的性能 在PE2950服务器上、北京大学计算网格上,完成人类基因组的一次可变剪接计算,分别用了多少时间:说明北京大学计算网格的性能 加速比度量一个程序开发运行平台处理器计算能力的程度:这是并行程序设计的重点 串行程序与并行程序运行在同一个计算平台上 计算平台提供多个执行内核时,各个执行核本身的性能(主频、主存数据访问机制等)是相同的 在并行程序设计中,如何观测加速比 给定一个数据规模,在这个平台上最快多长时间能完成计算 给定一个数据规模,在这个平台上,使用不同数量的执行内核,分别需要多长时间完成计算 并行进程/线程的数量代表使用的处理器内核数量:条件是平台可提供的处理器内核数量不小于并行进程/线程的数量 不同数据规模情况下,上述两项如何变化 理想情况下:对任意的数据规模,加速比总是与使用的处理器执行核数量相同 加速比:为何1+12 并行算法的运算量≥串行算法的运算量:在素数问题的并行算法中,增加 计算一个待搜索区域的边界 如果采用VERSION2(每次计算一个区域的素数前,先看看是否需要使用未排序的素数)和VERSION3(先求一组素数,使得后面区间的计算只需要这一组素数即可),增加对各个子任务所求素数进行排序的操作 并非所有的运算都可以并行,总是存在一些超级计算步,其中只有一个子任务:在素数问题中 要先求出一组素数,后面的搜索才可能并行 在每个超级计算步上,让各个处理器/执行核都承担相同的计算量是很困难的:部分处理器/执行核在一段时间里处于空闲状态 各个超级计算步上,并行子任务的数量不同 各个子任务本身的

文档评论(0)

dagekd + 关注
文档贡献者

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

1亿VIP精品文档

相关文档