并行程序的指令级并行优化探讨.pdfVIP

  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文档。上传文档
查看更多
在复杂的、非线性的交互影响。以最为典型的 MPI 并行程序为例,其性能是 MPI 并行效率和单任务执行效 率的综合反映,并且相互独立。其中,MPI 并行效率取决于通讯优化、大粒度并行、负载平衡等;单任务执 行效率取决于访存效率和流水线效率。每个并行程序的具体性能问题随着程序的不同而不同,也因目标平台 的不同而有所差别,需要通过性能测试去发现。 性能测试是理解程序行为的基础,对识别程序性能瓶颈,了解软、硬件资源利用情况及性能的发挥程度 有重要作用。在程序性能优化过程中,首先必须找出影响程序性能的主要原因,然后有针对性地对应用程序 代码和数据结构进行改进,其中关键在于获取程序性能数据。目前程序性能数据获取方法主要可以分为模型 分析(Model Analysis )、模拟(sinulation )和测试(Measurement )三大类,使用最为普遍的方式是性能测试 方法。性能测试方法在程序实际运行时收集性能数据,然后进行统计分析。基于硬件性能监视机制的性能测 试可以利用处理器中特殊的硬件装置的支持,在程序执行过程中,对机器内部行为进行监视与统计,获得与 体系结构紧密相关的性能数据。这类方法不仅获得的性能数据丰富、可靠,而且速度快、开销小,是目前使 用最为普遍的性能测试方法。 鉴于目前主流的高性能计算机多采用 Intel xeon 系列微处理器,本文以基于 JASMIN 框架实现的 Euler 程序为例,探讨并行程序在 xeon 平台上的性能问题和指令级性能优化方法。文章的其余部分安排如下:第 1 小节介绍实验平台和 xeon Nehalem 体系结构;第 2 小节详细介绍 Euler 程序性能优化的过程和方法;最后给 出结论。 1 Nehalem 体系结构和实验平台 1.1 调试机群软硬件配置 Intel Xeon 系列微处理器是目前高性能计算机采用最多的微处理器,在世界 top500 高性能计算机排行榜 中,80%左右的高性能计算机采用 Xeon 芯片,因此基于 Xeon 平台开展并行程序指令级性能优化研究具有普 遍性,可以推广到其它应用程序的优化过程中。本文实验采用的调试机群是一个由 4 个计算节点组成的小型 机群系统,每个计算节点包含 2 颗主频为 2.93GHz 的 Intel Xeon X5670 微处理器,48GB 共享内存;每颗 Xeon X5670 微处理器包含 6 个 core ,12MB 的共享 3 级 Cache ;每个 core 二级 cache 容量为 256KB ,一级数据 cache 和指令 cache 容量各 32KB 。 调试机群安装的操作系统是 Redhat linux ,内核版本为 2.6.18 。为方便并行程序的调试和优化,调试机群 配备了各种性能分析工具,包括 TAU 、oprofile 、Intel cluster studio/ parallel studio 等,详见表 1。 Table 1 Lists of performance analysis tools 表 1 性能分析工具一览表 名称 支持的性能分析方法 适用范围 oprofile Profile 串行程序, 可以列出所有进程的性能数据 gprof Profile 串行程序或 OpenMP 程序 串行程序及 MPI 并行 Open Speedshop Profile 硬件计数器 程序(不支持 JASMIN 程序) C/Fortran 程序, 用户必须按照 API 要求, 在源程序中插入相应的 PAPI 硬件计数器 PAPI 接口函数 TAU Profile 硬件计数器 Trace 串行程序及并行程序 Intel cluster studio/ parallel C

文档评论(0)

hnlhfdc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档