更高效的数值模拟
新西伯利亚国立大学使用 Intel® Parallel Studio、Intel® Advisor 和 Intel® Trace Analyzer and Collector 将模拟工具的性能提升了 3 倍
点击此处注册并下载免费的 Intel® Parallel Studio XE 30天试用版
新西伯利亚国立大学是俄罗斯主要的科研和教育中心之一,也是西伯利亚最大的大学之一。当该大学的研究人员寻求开发和优化一个用于模拟带氢电离的磁流体动力学 (MHD) 问题的数值模拟软件工具(这是天体物理对象模拟 (AstroPhi) 项目的一部分)时,他们需要在基于 Intel® Xeon Phi™ 处理器的硬件上优化该工具的性能。该团队转向了 Intel® Advisor 和 Intel® Trace Analyzer and Collector。其结果是性能提升了 3 倍,将计算一个问题所需的标准时间从一周缩短到仅两天。
“与市场上其他可用架构相比,使用 Intel® Xeon Phi™ 处理器的 Intel® Advanced Vector Extensions 为我们提供了最大的代码性能。”
— Igor Kulikov
助理教授
新西伯利亚国立大学
保持教育的相关性
新西伯利亚国立大学提供约 120 个学士、硕士、博士和博士后课程,涵盖技术、经济和人文学科。大学教职员工致力于研究和教学,并致力于使大学的教育项目与现代社会的挑战保持相关性。新西伯利亚国立大学与研究机构、大学以及工业、商业和国家部门密切合作。
数学建模在现代天体物理学中起着关键作用。它是研究宇宙中非线性演化过程的通用工具。高分辨率模拟复杂的**天体物理过程需要最强大的超级计算机。该大学的 AstroPhi 项目开发了用于配备 Intel Xeon Phi 处理器的海量并行超级计算机的天体物理代码。这个有价值的项目帮助学生学习为海量并行超级计算机创建数值模拟代码。学生们还了解现代 HPC 硬件架构——为他们开发未来的百亿亿次级超级计算机做好准备。
数值方法
该团队使用数值方法设计了该项目(图 1)。这种高阶方法的优点包括:
- 无人工粘性
- 伽利略不变解
- 熵非递减保证
- 简单的并行化
- 潜在的“无限”可扩展性(弱可扩展性)
前三个优点是现实模拟天体物理问题中所有重要物理效应的关键因素。该方法的简单性,加上少量 MPI 发送/接收操作,提供了有效的并行化——以及在弱可扩展性方面潜在的“无限”可扩展性。
海量并行架构
该团队共同设计了基于 Intel Xeon Phi 处理器的海量并行架构的新求解器。这些可启动的处理器旨在帮助消除节点瓶颈并简化代码现代化,提供了团队处理要求最高的高性能计算应用所需的能效。
该团队基于 Intel® Advanced Vector Extensions 512 (Intel® AVX-512) 指令集构建了求解器,该指令集提供 512 位 SIMD 支持,并允许程序在 512 位向量中打包八个双精度或 16 个单精度浮点数,或八个 64 位整数,或 16 个 32 位整数。与 SSE 相比,这使得单条指令可以处理 2 倍于 AVX/AVX2 所能处理的数据元素数量,是 SSE 的 4 倍。
“使用 Intel Xeon Phi 处理器的 Intel Advanced Vector Extensions 512 为我们提供了与市场上其他可用架构相比最大的代码性能,”新西伯利亚国立大学助理教授 Igor Kulikov 说。
代码优化
AstroPhi 项目的一个关键方面是优化代码以在 Intel Xeon Phi 处理器上获得最大性能。在优化之前,团队在向量依赖性和向量大小方面遇到了一些问题(图 2)。代码优化的目标是消除向量依赖性并优化内存加载操作,有效地使向量和数组大小适应 Intel Xeon Phi 架构。该团队使用了 Intel Advisor 和 Intel Trace Analyzer and Collector,这是 Intel® Parallel Studio XE 的一部分,用于优化。
Intel Parallel Studio XE 是一个全面的软件开发套件,通过利用不断增加的处理器核心数量和向量寄存器宽度,帮助开发人员在当今和未来的处理器上最大化应用程序性能。
Intel Advisor 是一款软件工具,基于这样的事实:对于现代处理器来说,对软件进行向量化(使用 AVX* 或 SIMD* 指令)和线程化对于实现处理器的全部性能潜力至关重要。使用此工具,团队能够执行一种屋顶线分析,突出显示性能不佳的循环,并显示每个循环的性能余量,从而确定哪些循环可以改进以及哪些值得改进。
新西伯利亚国立大学助理教授 Igor Chernykh 解释道:“Intel Advisor 使我们更容易找到瓶颈的原因并决定下一步的优化步骤。它提供了数据,帮助我们在投入大量精力实现之前预测性能增益。”
Intel Advisor 按潜在增益对循环进行排序,通过在源代码中显示消息,使编译器报告更易于阅读,并为项目团队提供有效向量化的技巧。它还提供了关键数据,如迭代次数、数据依赖性和内存访问模式,使向量化安全高效。
Intel Trace Analyzer and Collector 在代码优化方面也发挥了作用。这款图形化工具帮助团队理解 MPI 应用程序的行为,快速找到瓶颈,提高正确性——并最终在 Intel® 架构上最大化该工具的性能。它包括 MPI 通信分析和调优功能,有助于改善弱扩展和强扩展。
结果
图 4 显示了优化后代码的示例。
在所有改进和优化之后,该团队实现了 190 GFLOPS 的性能和 0.3 FLOP/byte 的算术强度,掩码利用率为 100%,内存带宽为 573 GB/s。
Kulikov 解释道:“使用 Intel Advisor 和 Intel Trace Analyzer and Collector,我们能够消除向量依赖性,优化加载操作,并为 Intel Xeon Phi 架构调整向量和数组大小。这次优化提供了运行 3 倍更多天体物理测试变体的机会。”