- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MIC程序性能优化
MIC体系结构及编程模式 MIC上的程序性能优化 体系结构:英特尔集成众核 (Many Integrated Core) 商标:Intel Xeon Phi Coprocessor 产品序列 Knights Ferry Knights Corner Knights Landing ??? Intel面向Exascale的战略产品,SC11发布,专为高性能计算设计 三个项目的成果 80核心的万亿级芯片研究计划 单芯片云计算机项目(SCC) 多核图形计算Larrabee项目 标量部件来自Pentium 512位向量部件 32 vector registers each Hold 16 singles or 8 doubles Pipelined one-per-clock throughput 4 clock latency, hidden by round-robin scheduling of threads L1 Cache私有,L2 Cache 共享(NUCA) 每核4个硬件线程 1.2S Xeon* vs. 1 Xeon Phi* (preproduction HW/SW Application running 100% on coprocessor unless otherwise noted) 2.2S Xeon* vs. 2S Xeon* + 2 Xeon Phi* (offload) 3.4 node cluster, each node with 2S Xeon* (comparison is cluster performance with and without 1 Xeon Phi* per node) (Hetero) 4.Intel Measured Oct. 2012 MIC首次大规模部署,德克萨斯高级计算中心(TACC) 10 PF(Xeon E5处理器 2+PF,Xeon Phi协处理器7+PF) 结点间互连:Mellanox FDR InfiniBand No. 7 @ top500 on 201211 MIC作为加速卡插在Host上,但通过软件虚拟化为类似一台 使用与Intel Xeon类似的开发语言与工具环境 大多数现存代码均可通过重新编译就可运行 MIC是一台网络化的Linux主机 代码全部运行在MIC卡上,无需offload指导语句 利用MPI/OpenMP并行开发MIC上众核间的并行性 适合内存需求量不大、非大规模并行的应用 MIC是一个加速器,Host将工作负载卸载到MIC上 Intel MKL自动卸载可自动在host和MIC上平衡负载 对Host/MIC协同计算支持好 原有代码必须修改,并有很多限制(例如指针) Offload模式的三方面开销 第一次连接到MIC卡的开销 将数据复制到offload区的开销 从offload区复制数据出来的开销 PCIe可能是性能瓶颈 该模式下并行区可能比native模式慢 将Host与MIC的核对等看待,MPI进程分布到多个MIC和Host上,支持大规模并行计算 现有MPI程序无须修改即可利用Host/MIC协同计算 为提高性能需要针对Host和MIC进行性能优化 PCIe可能是性能瓶颈 实现负载平衡很关键 MIC体系结构及编程模式 MIC上的程序性能优化 Parallel Scalability (many cores) Vectorization (wider vectors) Cache utilization (NUCA) 选择合适的编程模型与并行算法 充分发掘编译器的优化潜力 充分利用系统功能 进程绑定 线程绑定 使用大页面 代码优化 并行性开发 向量化 访存优化 编译器集成了程序性能优化领域大量成果 一般优化选项 O2、O3、fast 专门化的优化选项 ipo、 unroll、 opt-prefetch、 align、… 诊断选项 vec-report、 opt-report 不同编译选项及其参数对不同程序或问题规模有不同效果 使进程/线程在特定的Socket、CPU核或硬件线程上运行 避免进程/线程浮动,更好地利用Cache 进程级绑定 Intel MPI运行时的命令行选项binding Intel MPI的运行时环境变量I_MPI_PIN_DMAIN 线程级绑定 KMP_AFFINITY Granularity: thread/core Type: default/scatter/compact/explict 负载均衡 进程/线程混合并行 通信优化 线程级并行性开发 OpenMP嵌套并行 OpenMP Collapse语法 * * MIC的体系结构更多地继承了Larrabee:In-order x86核,宽向量指令
文档评论(0)