2. 并行计算硬件与集群基础
LS-DYNA 的并行效率并不只由求解器算法决定,硬件拓扑往往才是决定“8 核能不能跑出 6 倍加速”的关键。理解 CPU 多核、NUMA、互连网络、GPU 加速卡以及存储层次在求解中的角色,是搭建或选购集群前必须完成的一步。本节从计算、通信、存储三条路径出发,说明各部件在 LS-DYNA 中的实际作用与选型原则。
CPU 多核:并行度的第一来源
LS-DYNA 的 SMP(共享内存并行)与 MPP(分布式内存并行)都依赖物理核心。选型时优先看物理核心数、主频、内存带宽与每核内存容量,而不是超线程逻辑核数。显式动力学以内存带宽敏感型计算为主,核心过多而内存通道不足时,加速比会明显衰减。经验上,双路服务器每路 8~12 通道内存、单核配 2~4 GB 内存是较稳妥的起点;接触、SPH、EFG 等算法对内存需求更高,应按模型规模上浮。
一个常见的判断方法是做并行扩展性测试:固定模型,分别用 16、32、64 核运行,记录 wall clock time。若 32 核相对 16 核加速比低于 1.6,说明通信或内存带宽已成为瓶颈,继续加核收益有限。
NUMA:被忽视的性能陷阱
现代多路服务器都是 NUMA(非统一内存访问)架构:每个 CPU 插槽及其直连内存构成一个 NUMA 节点,跨节点访问内存延迟显著高于本地访问。LS-DYNA 的 SMP 线程若被操作系统随意调度到不同节点,就会出现“线程在 CPU0、数据在 CPU1 内存”的远程访问,性能下降可达 20%~40%。
处理原则有三条:其一,用 numactl --cpunodebind=0 --membind=0 将进程绑定到单一节点,或按节点分配 MPP 进程;其二,在 BIOS 中确认 NUMA 未被关闭为 interleave 模式;其三,MPP 运行时让每个 rank 与其内存同节点。可通过 lstopo 或 numactl -H 查看拓扑,再据此规划进程与线程布局。
InfiniBand 与 RoCE:MPP 的通信命脉
MPP 求解时,每个时间步都要在 rank 之间交换边界节点力与坐标。通信延迟和带宽直接决定扩展性上限。InfiniBand 采用专用 HCA 与 RDMA,延迟可低至 1~2 μs,是大型集群的首选;RoCE v2 在无损以太网上实现 RDMA,成本更低,但必须正确配置 PFC/ECN 与 DCQCN,否则丢包会导致性能剧烈抖动。
选型时关注三点:单口带宽(HDR 200 Gb/s、NDR 400 Gb/s)、端口数与交换机收敛比、以及是否支持 GPUDirect RDMA。对于 64 节点以内的集群,HDR 200G 已能满足多数显式动力学模型;若模型接触面大、通信量大,应优先保证交换机无阻塞而非单纯提高单口速率。
GPU 加速卡:offload 而非替代
LS-DYNA 的 GPU 支持以 offload 模式为主:CPU 负责接触检测、单元计算等,GPU 承担显式积分中的大量浮点运算。选型看显存容量、显存带宽与双精度能力。显存不足会导致模型无法 offload,因此单卡显存应能容纳主要求解数组;显存带宽越高,offload 收益越明显。多卡时需确认 PCIe 拓扑与 NVLink 是否可用,避免 GPU 间通信成为新瓶颈。
共享存储与本地 NVMe:I/O 的两级分工
共享存储(Lustre、GPFS、NFS)负责输入文件、重启文件与结果文件的持久化,要求高吞吐与并发元数据能力;本地 NVMe 则用于暂存 d3plot、d3dump 等高频写入文件,减少对共享存储的冲击。典型做法是:作业启动时从共享存储读取 k 文件,运行中把结果写到本地 NVMe,结束后再回传共享存储。这样既保证数据安全,又避免 I/O 拖慢求解。
选型原则小结
- CPU:物理核心优先,内存通道数与容量匹配核心数,避免超线程虚高。
- NUMA:进程/线程与内存同节点绑定,跨节点访问是性能杀手。
- 网络:MPP 优先 InfiniBand;RoCE 需无损配置,否则延迟抖动大。
- GPU:显存容量决定能否 offload,带宽决定收益,多卡看互连。
- 存储:共享存储保数据,本地 NVMe 保速度,两级分工。
实际搭建时,可先用小模型做基准测试:固定 100 万单元模型,分别测试 32 核 SMP、2×16 MPP、GPU offload 三种配置的 wall clock time 与加速比,再结合预算决定最终方案。硬件选型没有唯一答案,但遵循上述路径,可以避免大多数“加钱不加速”的陷阱。