65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Intel® Xeon® 可扩展处理器上使用 HiFUN Solver 进行并行 CFD

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2020年4月29日

CPOL

10分钟阅读

viewsIcon

5487

最大化高性能计算平台以实现快速数值模拟

计算流体动力学 (CFD) 是一门科学分支,它利用高速计算机处理流体流动方程的数值解。而且,由于CFD解决方案基于大量数据,因此必须充分利用当今高性能计算 (HPC) 硬件平台的每一分性能。

CFD 使用Navier-Stokes 方程——描述流体流动的质量、动量和能量守恒的非线性偏微分方程。在CFD中,离散化是一种将 Navier-Stokes 方程转换为一组代数方程的技术。由于工业应用中涉及的几何复杂性和复杂的流动物理,代数系统的典型大小从几百万到超过十亿个方程不等。这意味着需要在大型 HPC 平台上进行真实的数值模拟,以便在足够短的时间内获取设计数据,从而影响设计周期。

本文中,我们将探讨来自 S&I Engineering Solutions (SandI) Pvt. Ltd. 的专有软件 HiFUN* 求解器,以此作为CFD应用的一个示例,展示它如何充分利用大规模并行超级计算平台的架构。1,2

实现可扩展性能

影响 HPC 应用程序性能的三个因素

  1. 单进程性能
  2. 负载平衡
  3. 算法可伸缩性3

为了达到负载平衡,离散化的计算域(也称为工作负载、网格或网格)应该被划分,以便分配给每个处理器核心的计算工作大致相同。然而,负载平衡不应导致分布式处理器之间过多的数据通信。这两个要求通常相互冲突,因此需要在它们之间取得平衡。使用 METIS2 进行域分解是实现 CFD 模拟负载平衡的常用方法。算法扩展是并行应用程序中另一个关键的性能因素。2 理想情况下,并行求解器的性能不应随着处理器数量的增加而降低。

限制 HiFUN 求解器等 CFD 应用并行性能的第三个因素是更快的处理器速度和更慢的内存访问速度之间的差距——这可能导致单进程性能下降。为了克服这个问题,许多计算机使用内存层次结构,其中立即计算所需的一小部分数据驻留在内存中,该内存具有最快的访问速度,称为缓存。这意味着充分利用引入缓存内存的数据非常重要——这需要在内存中进行良好的数据布局,以确保网格数据的空间局部性。尽管单进程性能问题在应用程序级别通过 Cuthill McKee 等排序算法得到了部分解决,但鉴于 CFD 求解器中涉及的计算操作性质各异,完全利用进程性能仍然是一项繁琐的工作。在这种情况下,英特尔®处理器技术的发展极大地提升了 CFD 应用的单进程性能。最新一代的英特尔®至强®处理器提供了大缓存、高内存带宽,增加了处理器和内存之间的数据通道数量,以及更高的内存速度。对于 CFD 应用来说,改进的单进程性能自然会带来改进的单节点性能。

为了探究处理器技术的进步如何转化为软件性能的提升,我们评估了 HiFUN 在 英特尔®至强®可扩展处理器 上的性能提升,并与前代产品进行了比较,评估了 HiFUN 的单节点和多节点性能。

HiFUN CFD 求解器

HiFUN 是一款最先进的通用 CFD 求解器,具有鲁棒、快速和精确的特点,能够在极具吸引力的周转时间内提供空气动力学设计数据。它的实用性源于其处理典型工业环境中复杂几何形状和复杂流体物理的能力。通过使用能够处理任意多面体体积的非结构化数据,HiFUN 能够相对轻松地模拟复杂几何形状。此外,采用无矩阵隐式过程可以快速收敛到稳态——使求解器既高效又鲁棒。

HiFUN 的准确性已在各种国际 CFD 代码评估活动中得到充分证明,例如 AIAA 阻力预测研讨会和 AIAA 高升力预测研讨会。HiFUN 已成功用于模拟从低亚音速到高超音速的各种流动问题。

评估并行性能

为了评估 HiFUN 求解器的并行性能,我们需要考虑以下指标

  1. 理想加速比:给定运行中使用的核心数量与参考核心数量(即研究中使用的最小核心数量)的比率。
  2. 实际加速比:当给定计算使用参考核心数量时每次迭代的时间与给定核心数量每次迭代的时间之比。
  3. 并行效率:实际加速比与理想加速比之比。
  4. 机器性能参数 (MPP):实际加速比与理想加速比之比。

前三个参数在并行计算文献中广为人知。第四个参数 MPP 提供了一种评估给定 CFD 应用程序不同计算平台的方法。1 预期 MPP 值较小的计算平台将提供比其他平台更好的计算性能。

HiFUN 求解器的一个重要优势是它能够扩展到数千个处理器核心。这在 SandI-Intel 联合研究中得到了充分证明,该研究表明 HiFUN 可以在 NASA Pleiades 超级计算机上扩展到超过 10,000 个英特尔至强处理器核心。研究中使用的配置是 NASA 梯形翼 (图1)图2图3 分别显示了使用 6350 万个体积的网格获得的加速比和并行效率曲线。从 图2 中可以看出,HiFUN 在 4,096 个处理器核心上表现出接近理想的加速比。值得注意的是,在 Pleiades 上使用 7,168 个处理器核心时,HiFUN 的并行效率约为 88%。此外,即使在 10,248 个处理器核心且网格规模仅为 6350 万个体积的情况下,HiFUN 也能提供约 75% 的合理并行效率。HiFUN 这种可扩展的并行性能对设计师来说是一个福音,因为他们可以期待周转时间独立于问题规模。

图 1 – NASA 梯形翼配置上的表面压力填充图

图 2 – 加速比曲线

图 3 – 并行效率曲线

研究中使用的配置是第 6 届 AIAA 阻力预测研讨会中使用的 NASA 通用研究模型 (CRM)。如 图 4 所示,该配置代表一架带有机翼、机身、发动机短舱和支架的运输机。基于平均气动弦长的自由流马赫数、攻角和自由流雷诺数分别为 0.85、约 2.6° 和 500 万。分析的工作负载大约有 510 万个六面体体积。NASA CRM 表面计算出的压力分布如 图 4 所示。

图 4 – NASA CRM 配置上的表面压力填充图

在本研究中,我们选择了两代英特尔至强处理器来比较 HiFUN 求解器的单节点性能 (表 1)

  1. 英特尔至强 E5-2697 v4 处理器
  2. 英特尔至强可扩展处理器 Gold 6148

请注意,英特尔至强可扩展处理器有 20 个核心,而英特尔至强处理器有 18 个核心。由于两种处理器的单个处理器核心时钟频率几乎相同,仅根据增加的核心数量,并假设线性可扩展性,我们预计性能提升约为 11%。但是,如 图 5 所示,与英特尔至强处理器相比,HiFUN 求解器在英特尔至强可扩展处理器上显示出约 22% 的性能提升。我们可以将此归因于

  • 额外的处理器核心
  • 更大的L2缓存
  • 更高的内存速度
  • 英特尔至强可扩展处理器中可用内存通道数量增加带来的更高内存带宽。

表1. 研究中使用的处理器

特点 英特尔至强处理器 英特尔至强可扩展处理器
Processor 英特尔至强 E5-2697 v4 处理器 英特尔至强可扩展处理器 Gold 6148
每插槽核心数 英特尔至强 E5-2697 v4 处理器 >18 英特尔至强可扩展处理器 Gold 6148 >20
每插槽核心数 > 速度 2.3 GHz 2.4 GHz
缓存 (L2/L3) 256 KB/45 MB 1 MB/27 MB
内存大小 128 GB 192 GB
内存速度 2,400 MHz 2,666 MHz
内存通道 4 6

图 6 显示了两种处理器的 MPP。正如所料,英特尔至强可扩展处理器的 MPP 低于英特尔至强处理器——清楚地确立了其卓越的计算性能。在此阶段,我们应该注意到,英特尔至强可扩展处理器更高的核心密度带来了改进的节点内并行性能,并为给定数量的处理器核心提供了紧凑的并行集群。

图 5 – 英特尔至强可扩展处理器与英特尔至强处理器的性能比较

图 6 – 英特尔至强可扩展处理器与英特尔至强处理器的 MPP 比较

图 7 显示了使用 HiFUN 求解器获得的理想加速比和实际加速比曲线的比较。我们可以看到,随着节点数量的增加,实际加速比相对于理想加速比越来越高。我们也可以从 图 8 中看到这一点,其中并行效率曲线在节点数量大于或等于两个时显示出超线性。这是因为在可扩展性研究中,随着给定问题被分解成大量部分,每个处理器核心所需的内存减少意味着缓存利用率变得更好。但是,通常情况下,缓存利用率提高带来的性能提升会被随着问题被分解成大量部分而增加的处理器核心之间数据传输开销所抵消。

在我们的研究中,我们可以将 HiFUN 求解器利用缓存利用率提升的能力(从而实现超线性性能)归因于节点之间出色的互连和优化的 英特尔® MPI 库

图 7 – HiFUN 在基于多节点英特尔处理器的集群上的加速比

图 8 – HiFUN 在基于多节点英特尔处理器的集群上的并行效率

最大限度地利用 HPC 平台

总而言之,我们展示了最新一代英特尔至强可扩展处理器如何通过提供大缓存、更高的每 CPU 核心密度、更高的内存速度以及通过增加内存通道数量而实现更大的内存带宽,从而增强 HiFUN 求解器的单节点性能。更高的核心密度改进了节点内并行性能,并应允许用户为给定数量的处理器核心构建更紧凑的集群。最后,我们可以将 HiFUN 求解器在基于英特尔至强可扩展处理器的 HPC 平台上表现出的超线性性能归因于出色的节点间互连和优化的英特尔 MPI 库。

参考文献

  1. N. Balakrishnan,“HiFUN 求解器在 CRAY XC40 上的并行性能”,技术说明 No. CAd TN 2015:03,11 月
    2015.
  2. Manke J. W., "航空航天领域的并行计算", 特约社论, 并行计算, 第 27 卷, 2001, 第 329-336 页。
  3. George Karypis 和 Vipin Kumar,“用于非结构化图划分、网格划分和计算稀疏矩阵填充减少排序的软件包”,第 4.0 版,明尼苏达大学,计算机科学系/陆军
    高性能计算研究中心,明尼阿波利斯,MN-55455,1998 年。
    省略

性能测试中使用的软件和工作负载可能仅针对英特尔微处理器进行了性能优化。SYSmark 和 MobileMark 等性能测试是使用特定的计算机系统、组件、软件、操作和功能测量的。这些因素中的任何更改都可能导致结果有所不同。您应该查阅其他信息和性能测试,以帮助您全面评估您考虑的购买,包括该产品与其他产品结合时的性能。有关更完整的信息,请访问 http://www.intel.com/performance。

英特尔编译器对于非英特尔微处理器,在并非英特尔微处理器独有的优化方面,优化程度可能不同。这些优化包括 SSE2、SSE3 和 SSSE3 指令集以及其他优化。英特尔不保证任何非英特尔制造微处理器的任何优化的可用性、功能或有效性。本产品中依赖于微处理器的优化旨在与英特尔微处理器配合使用。某些非英特尔微架构特定的优化保留给英特尔微处理器。有关本通知涵盖的具体指令集的更多信息,请参阅适用的产品用户和参考指南。

© . All rights reserved.