集成众核平台上CFD程序性能评测技术研究
【摘要】:计算流体力学(Computational Fluid Dynamics,CFD)在航空航天型号设计、地面交通工具设计等方面广泛应用,是典型的高性能计算应用领域。为了提高CFD应用程序的性能,必须对CFD程序在高性能计算平台上的性能进行测试与分析,以更好地指导CFD程序的性能优化。本文针对一种新的高性能计算平台——Intel集成众核(Many Integrated Cores,MIC)体系结构,对CFD程序进行了性能测试与性能建模研究,主要工作和贡献如下:(1)选取了计算流体力学领域内的典型基准测试程序集NPB-MZ(NAS Parallel Benchmark-Multi Zone),在MIC架构协处理器上进行了实际性能测试,并将MIC上的性能数据与程序在Sandy Bridge处理器上的性能进行了对比,重点分析了Native模式下OpenMP及MPI/OpenMP混合并行的并行性能及其可扩展性。结果表明:虽然MIC架构上的众多核心和线程使程序获得了较高的加速比,但是MIC上程序的实际执行时间仍然大于在Sandy Bridge处理器上的执行时间,主要原因是MIC架构上程序的单线程性能过低。(2)分析了MIC架构上程序单线程性能存在的问题,发现未能充分利用512位宽向量单元是主要原因之一。使用了硬件计数器软件Likwid,测试了NPB-MZ在MIC上的向量化密度,并基于编译器的向量化报告功能,分析了程序关键代码不能被向量化的情况及原因。这些结果进一步揭示了CFD程序在MIC体系结构上的性能特征,论文在此基础上对CFD程序性能优化工作提出了建议,具有一定参考价值。(3)通过一个微基准程序Stanza Triad对Intel MIC的硬件预取技术进行了模拟。对于给定的数据访问模式,基于硬件预取建立的性能分析模型可以准确地获取其在MIC架构上的内存开销。并且通过该模型我们总结出非连续的访存模式是影响带宽效率和访存受限程序性能的决定因素的结论,为更好地发挥预取功能获得更好的带宽性能,程序员需要书写尽可能长的字节。基于以上结论,我们研究了模板计算对不同维进行分块的七种分块优化策略,并通过实验测试验证了如下结论:对模板计算的连续访问维和线程划分维进行分块会影响处理器硬件预取效果并降低程序并发性,最佳分块策略为对中间维进行分块。(4)建立了MIC架构上的屋顶模型。该模型将MIC的浮点性能和访存性能与模板计算的计算密度在一张图上综合表现出来,模型显示MIC上为获得最好性能所需的最小计算密度为3.05。该模型还将MIC架构的优化方法与其性能上限结合到一起,对模板计算的性能行为和优化方法有了更深入的理解。
【关键词】:Intel集成众核 CFD NPB-MZ 向量化 模板计算 性能评测 性能建模
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP311.11