性能测试报告范例:LS-DYNA在华为 HPC 环境中的性能分析
摘要
LS-DYNA 是一款功能强大的非线性有限元分析软件,广泛应用于汽车、航空航天、土木工程等领域。它以模拟复杂物理现象,尤其是高速碰撞、爆炸和冲击等非线性动力学问题而著称。
- 创立与发展初期: LS-DYNA由John O. Hallquist博士创立,最初是作为Lawrence Livermore国家实验室的一个研究项目。随后,Hallquist博士于1987年创立了Livermore Software Technology Corporation (LSTC),并将LS-DYNA商业化。
- 被ANSYS收购: 2019年,ANSYS公司宣布收购LSTC,LS-DYNA也随之成为ANSYS产品家族的一员。
在本文中,我们通过比较华为 HPC 集群环境中的不同硬件组件,分析了可能影响 LS-DYNA 性能的不同领域。通过在最新的华为高性能计算集群解决方案上评估CPU、网络互联、系统和软件调整等组件,我们可以证明组件对LS-DYNA性能的敏感性,这可能有助于在LS-DYNA工作负载上实现更高的生产率。
LS-DYNA/MPP 版本能够在高性能计算集群环境中模拟和解决复杂的实际结构力学问题。我们将介绍华为HPC集群解决方案中使用的某些硬件系统组件对LS-DYNA性能的益处。
华为高性能计算集群解决方案
华为是全球领先的信息与通信技术(ICT)解决方案供应商。华为 HPC 基础设施旨在利用集群解决方案解决复杂的仿真问题,并加快解决问题的速度,在集群解决方案中部署强大、高效的系统,以解决科学、工程和数据分析问题。
华为提供完整的端到端高性能计算解决方案,包括数据中心基础设施、冷却解决方案、硬件资源、系统环境、集群管理、服务平台和高性能计算行业应用。华为拥有完整的产品组合,包括高集成度刀片服务器、高密度服务器和 “鲲鹏”系列大型 SMP 超级计算平台。此外,华为还支持各种存储设备、高速、低延迟 InfiniBand 和以太网网络交换机,以构建高性能计算集群。除基础设施外,华为还提供模块化数据中心、集装箱数据中心解决方案和液体冷却解决方案。在软件层面,华为与众多高性能集群软件厂商和应用软件厂商合作,对成熟的高性能计算商用产品和组件进行集成测试和优化,提供最适合用户服务的高性能解决方案。
软硬件配置
华为高性能计算集群解决方案采用华为高性能服务器、大容量存储以及创新的集群和设备管理软件,为轻松解决这些复杂问题提供了强大的高性能计算能力。
后续章节中的测试在两代基于英特尔的高性能计算集群上进行。一个是基于英特尔 “Broadwell”CPU的华为FusionServer X6000服务器集群,每台服务器包含4个XH321计算节点;另一个是基于 “Skylake”CPU的华为FusionServer E9000刀片机箱集群,每台机箱包含16个CH121 V5计算节点。
两个机箱均支持风冷和液冷集群的硬件配置相同。简而言之,我们使用了一个由 32 个节点组成的集群,每个节点都有双 Intel Xeon E5-2690 v4 CPU;所有节点都使用 EDR Infiniband 连接。
以下是每个计算节点使用的硬件和软件的详细信息。
英特尔 E5-2600v4 “Broadwell ”系列集群的硬件配置:
Xeon 6100 “Skylake” 系列集群的硬件配置:
软件配置
基准数据集
后续章节将介绍的基准数据集来自 TopCrunch(topcrunch.org)网站。TopCrunch 项目提供的网站列出了与工程仿真软件一起使用的高性能计算系统的总体性能。
- neon_refined_revised
一辆 1996 年普利茅斯霓虹汽车以 31.5 英里/小时的初始速度发生的正面碰撞。该模型由大约 50 万个元素组成,模拟时间为 30 毫秒。该模型由乔治-华盛顿大学国家碰撞分析中心(NCAC)创建。
- 3cars 3cars
数据集涉及一辆面包车撞上一辆紧凑型轿车的尾部,而紧凑型轿车又撞上一辆中型轿车。车辆模型由 NCAC 创建。模拟时间为 150ms。
- Caravan2m-ver10
大篷车模型由乔治华盛顿大学(GWU)国家碰撞分析中心(NCAC)创建。该模型由 240 万个元素组成,模拟时间为 120ms。运行时的写入量约为 200MB。
- Odb10m-ver16:
该 LS-DYNA 模型由 1000 万个元素组成,仿真时间为 120 毫秒。该模型由 GWU 的 NCAC 根据与美国交通部的 FHWA 和 NHTSA 签订的合同开发。
在两个集群上使用 LS-DYNA 进行了性能分析。对影响 LS-DYNA 性能的各种因素进行了评估。
性能指标
LS-DYNA 运行完成后,将在输出中报告所花费的时间。本研究中使用的指标称为性能评级(Performance Rating),主要是指每天可运行的仿真作业数量。性能评级值越高,表示性能越好,模拟生成的速度越快。我们可以看到,当 LS-DYNA 作业扩展到运行更多节点时,我们通常会预期 LS-DYNA 性能会随着仿真运行中使用的内核增多而提高;这也意味着,随着使用更多计算节点来处理仿真,耗时会大幅缩短。通过使用性能评级,我们可以很容易地看到 LS-DYNA 模拟的扩展情况,因为在图形中很难看到节点数越多运行时间的差异。
测试中启用了 BIOS Turbo 模式。与 SB 处理器相比,IVB 处理器的性能提高了 12-16%。熟悉LS-DYNA的人一定不会感到惊讶,因为IVB平台的内存带宽比SB平台增加了16%,而观察到的性能提升与之呈线性关系,这证明应用程序的性能不仅仅与CPU内核数量或时钟频率有关。
单节点性能
在本节中,我们将比较 Skylake CPU 不同 SKU 之间的性能差异,并以 Broadwell CPU 为基准进行比较。参与比较的 CPU 类型如下:
- Broadwell: Intel Xeon E5-2680 v4, 14 cores @ 2.4GHz, 35MB cache
- Skylake: Intel Xeon Gold 6140, 18 cores @ 2.3GHz, 24.75MB cache
- Skylake: Intel Xeon Gold 6148, 20 cores @ 2.4GHz, 27.5MB cache
我们运行了几个 HPC 基准测试,以显示两代 CPU 之间的差异。我们注意到,与 E5-2680v4 相比,Gold 6140 的高性能 LINPACK(HPL)性能提高了 103%,而 Gold 6148 的性能提高了 125%,这要归功于新增加的 AVX-512 指令集,它允许 HPL 中矩阵乘法使用的某些指令在每个时钟周期内达到 32 FLOP。相比之下,Broadwell一代的E5-2680v4处理器每个时钟周期只有16个FLOP。
我们运行的另一个工作负载是 STREAM 基准,用于测量系统内存带宽。Skylake 架构引入了 6 个内存通道,而 Broadwell 架构只有 4 个内存通道。与 Broadwell 架构相比,Skylake 的性能提高了约 50-61%。
我们运行的单节点 LS-DYNA 性能与 STREAM 实现的性能增益相同。基于这一发现,我们很自然地认为 LS-DYNA 对内存带宽非常敏感。内存通道的增加为 CPU 提供了额外的内存带宽操作。
内存速度
我们通过比较华为Skylake平台支持的两种不同内存速度,进一步了解内存子系统。我们在此比较的系统内存是 2400MHz 和 2666MHz DIMM。计算得出的两种 DIMM 之间的差异约为 11%,因为 2666MHz DIMM 比 2400MHz DIMM 快 11%。
当我们使用 LS-DYNA 测量性能差异时,LS-DYNA 只报告了单个节点上约 2% 的改进。只有部分速度差异转化为 LS-DYNA 性能增益。
Sub-NUMA 集群
Sub-NUMA 集群(SNC)是英特尔的一项新技术,类似于至强 2600v3/v4(或 Haswell/Broadwell)一代中的片上集群(COD)。在启用 SNC 的系统上,CPU 内核和插槽内存将被分成两个独立的 NUMA 域。与 COD 相比,SNC 的理念是提高远程 NUMA 区域之间的内存吞吐量。在本节中,我们想看看 BIOS 中的 Sub NUMA Cluster(SNC)模式对 LS-DYNA 性能是否有影响。
一般来说,SNC 会为需要良好 NUMA 本地性的应用带来一些好处。SNC 允许对远程 NUMA 域进行更好的内存访问,通过使用 SNC,我们可以看到单节点性能提高了 3%。
大规模CPU性能差异
当我们测量大规模性能时,CPU 性能差异似乎影响较小。在这里,我们比较了使用 E5-2690v4 CPU 和 E5-2697Av4 CPU 的运行情况。E5-2690v4 CPU 有 14 个内核,运行频率为 2.6GHz;E5-2697Av4 为 16 内核版本,运行频率为 2.6GHz。
在小型数据集 neon_refined_revised 上,单节点和 32 节点的性能相似,E5-2697Av4 集群的性能优于由 E5-2690v4 CPU 组成的集群。
我们认为,元素数量较多的数据集会提高 CPU 利用率。对于较大的数据集 caravan2m-ver10,LS-DYNA 数据集似乎可以在规模上表现出更好的速度,因为较大的数据集需要更多的 CPU 利用率,更好的 CPU 性能在较大的数据集上变得透明。E5-2697A v4 拥有更多缓存,每个节点增加 4 个内核,涡轮速度更快,因此计算得出额外内核数带来的性能优势为 14.2%。与使用 E5-2690v4 的集群相比,使用 E5-2697Av4 的集群在 16 个节点(448 个内核)时的性能增益高达 14%。
随着工作扩展到更多的 CPU 内核(这些内核也参与 MPI 通信),应用进程在 MPI 通信上花费的时间在整个运行时间中所占的比例会更大,这意味着 CPU/计算所占的比例会更小。在 32 个节点(896 个内核)的情况下,不同进程集群之间的性能差异会很小,因为 MPI 通信比计算更重要,对计算性能的影响也会变小。
CPU 涡轮加速
CPU 内核速度可配置为涡轮加速,以获得更好的性能。Gold 6148 处理器的规格书显示,基本时钟频率为 2.4GHz,即每秒 24 亿次。它是处理器晶体管打开和关闭进行操作的速率。每个处理器都有规定的基本时钟频率,CPU 运行时的热设计功率(TDP)为 150 瓦。
最大 Turbo 频率定义了处理器使用 Turbo boost 技术运行时的最高核心频率。对于 Gold 6148 CPU 而言,规格规定的最大涡轮频率为 3.7GHz。通常情况下,涡轮增压模式的速率取决于几个因素,如工作负载、CPU 并发活动内核数量、功耗和处理器温度。在 MPI 工作负载中,所有 CPU 内核都被用于并发处理工作负载,因此实际观察到的涡轮时钟速度会更低。在实际模拟中运行 LS-DYNA 时,测得的 CPU 内核运行频率在 2.7-2.8GHz 之间。
CPU扩展支持
LS-DYNA提供了一系列不同类型的可执行文件,以支持具有不同架构能力的系统。LS-DYNA提供的可执行文件之一是支持Broadwell系统的AVX2 CPU指令集和支持Skylake系统的AVX-512指令集的可执行文件。利用英特尔 AVX2 技术,处理器每个周期可执行 16 个浮点运算;利用英特尔 AVX512 指令,处理器每个周期可执行 32 个浮点运算。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
SSE2 与 AVX2
在使用 Broadwell CPU 的同一集群上对 SSE2 和 AVX2 进行比较时,我们发现在“Broadwell”CPU 上的性能高于 SSE2 可执行程序。与 SSE2 可执行文件相比,AVX2 的性能提高了 7-23%。值得注意的是,AVX2 指令在较低的时钟频率下运行,典型的时钟频率为正常时钟。使用 AVX2 时,浮点乘法和加法运算速度加快。在元素数量较多的数据集上,AVX2 的优势似乎更大。
在所有运行中,使用 AVX2 二进制可执行文件的 LS-DYNA 在 Broadwell 平台上的性能比 SSE2 版本高出 7% 到 23%。
在 Broadwell 平台上。在单节点基础上,AVX2比SSE2代码好14%。在 448 个内核(16 个节点)上,性能差距约为 7%。内核数越多,这一差距越小,在 448 个内核或 16 个节点时仅为 7%。
AVX2 和 AVX-512
在 Skylake 平台上,我们使用 Caravan2m 数据集比较了支持 AVX2 和 AVX512 的 LS-DYNA 二进制程序。我们发现,在 Skylake CPU 上,AVX2 的性能优于 AVX-512 和 SSE2 可执行文件。与 AVX-512 可执行文件相比,AVX2 的性能提高了 17%,尽管 AVX-512 的矢量化有所改进,但这一点还是令人惊讶。通过检查运行过程中的 “turbostat ”输出可以发现,AVX-512 指令的运行时钟频率低于 AVX2 和正常时钟频率。运行 AVX2 可执行程序时,报告的时钟频率范围为 2.3GHz-2.5GHz。运行 AVX512 可执行文件时,CPU 内核的时钟频率始终在 2.2-2.3GHz 之间。CPU 内核在运行 AVX512 指令时速度较慢,尽管改进后的矢量化技术可使每个周期处理的指令数量增加一倍。结果表明,AVX2 的性能要优于 AVX-512。
MPI 库
MPI 库负责在应用程序进程之间传递信息。通信中使用的算法不同会对可扩展性能产生实际影响。我们比较了 3 种流行的 MPI 实现,研究它们对可扩展性的影响。
在 CPU 核心数量较少的情况下,测试的 3 种 MPI 实现性能相似。随着节点和 CPU 内核的增加,我们发现 MPI 库的性能开始出现差异。在 8 个节点之后,MPI 实现的差异更加明显。在本研究中,Mellanox HPC-X MPI 工具包和英特尔 MPI 库在节点数较多的情况下性能明显优于 Platform MPI。Platform MPI 在节点数较少时表现更好,而 HPC-X 在大规模时表现更好。在 Caravan2m-ver10 的 32 个节点上,HPC-X 显示出 18% 的优势。为了提供更好的可扩展性,Platform MPI 在运行时使用了以下参数:-IBV -cpu_bind, -xrc LS-DYNA
版本
我们与 LS-DYNA 的最新版本进行了比较,发现从性能上看,LS-DYNA 的早期版本(如 R7.1.3)的性能略高于最新版本。正如本研究前文所述,AVX2二进制文件的性能要优于SSE2二进制文件。差异似乎很小,当两者都使用 AVX2 可执行文件时,R9.0.1 的性能比 R7.1.3 低约 4%。
域分解
随着计算系统性能和能力的提高,网格更精细的模型越来越常见。由于计算时间的增加,为了在更大的集群上高效地解决这些大型模型,LS-DYNA 的大规模并行处理(MPP)版本进行了改进,以解决这一问题。
在大规模运行 LS-DYNA 时,域分解是提高性能的一个重要方面。它的工作原理是将一个大问题分解成更小的部分,因此每个 MPI 进程负责计算一个大问题中自己的领域。决定进程之间如何分工的方法称为域分解,它还会影响进程与其他进程的通信方式,这将增加 MPI 进程之间的网络流量和 CPU 负载。域分解方法还将决定 MPI 进程是否同时完成相同数量的计算和通信交换。
pfile 中的关键字 “decomp ”描述了如何定义域分解方法。下面在 3cars 基准的 pfile 中定义一个分解方法:decomp { sy 2 }
我们可以看到,在 32 个节点(896 个内核)的情况下,效率提高了 36%。由于工作负载在 MPI 进程之间得到了更好的分配,因此可扩展性得到了提高。
集群网络互连
MPI 通信中使用的通信网络是 LS-DYNA 可扩展性的重要因素。在此,我们将对 EDR InfiniBand 和 FDR InfiniBand 进行比较。我们在相同的 InfiniBand 基础设施上进行测试,以创造一种环境,让 InfiniBand 连接的带宽造成差异。为了测试 FDR 速度,我们降低了 100Gbps EDR InfiniBand 交换机的速度,以 56Gbps FDR 速率 56Gbps 运行,从而进行比较。
图中的结果显示,在 FDR 运行速度降低的情况下,我们注意到 LS-DYNA 在 EDR 和 FDR 速度下的运行性能相同。当我们测量 MPI 配置文件中的 MPI 通信类型时,我们没有注意到使用 EDR InfiniBand 通常会带来好处的大型信息的使用。由此可以得出结论,LS-DYNA对网络带宽非常敏感。
值得注意的是,InfiniBand 对可扩展性能的影响不仅来自速度,还来自不同代 InfiniBand 适配器和交换机的架构设计,以及软件支持和驱动程序的实现。如果我们使用老一代 FDR InfiniBand 硬件进行比较,FDR InfiniBand 的可扩展性能很可能会受到影响。
MPI 调整
为了获得更好的 MPI 性能,我们添加了一些 MPI 调整参数,以帮助获得最佳的可扩展性能。与整体运行时间相比,neon_refined_revised 用于 MPI 通信的时间比例最高。我们使用的 neon_refined_revised 是对网络最敏感的情况。
使用 HPC-X MXM 支持的 UD 传输和内存优化有助于减少网络传输开销。其他调整参数包括关闭对 HCOLL 的支持以减少一些开销,以及增加 Mellanox MXM 点对点通信库中可使用 ZCOPY 的报文范围。
-mca coll_hcoll_enable 0 -x MXM_SHM_RNDV_THRESH=32768 -x MXM_ZCOPY_THRESH=inf -x MXM_UD_HARD_ZCOPY_THRESH=inf -x MXM_UD_MSS=8mb
结论
在本文中,我们确定了与 LS-DYNA 性能相关的几个方面。
- 由于增加了内存通道,Skylake一代的性能比Haswell一代更好,这对LS-DYNA性能有直接影响
- 在单个节点上,从2400MHz切换到2666MHz DIMM的性能增益为2%
- 在单个节点上,SNC提供了3%的优势 -与使用SSE2和AVX-512指令的可执行文件相比,AVX2可执行文件的性能更好
- R7.1.3可执行文件的性能比较新的LS-DYNA版本更好,大约提高了4%。
- Mellanox HPC-X 和英特尔 MPI 的规模性能均优于 Platform MPI
- EDR 和 FDR InfiniBand 在所有测试节点数上的性能基本相同
- 域分解方法会对 LS-DYNA 的可扩展性产生重大影响