技术分享︱HSF-USTR 赋能百亿分辨率系统级高精度仿真

引言
冲击动力学仿真技术广泛应用于航空航天、国防装备、汽车工程等领域,用于研究结构在高速撞击和侵彻过程中的响应规律。随着高端装备复杂程度不断提升,大变形、复杂接触等工程问题对仿真精度提出了更高要求,提升网格分辨率成为提高计算结果可信度的重要途径。然而,当非结构网格规模从千万级扩展至百亿甚至千亿级时,传统 CAE 软件架构面临新的挑战。
超大规模网格首先带来了索引范围限制问题,当全局节点编号、单元编号以及相关数组偏移量超过32位整数(约21.47亿)表示范围时,传统数据结构难以继续扩展。同时,海量拓扑数据带来的内存压力、并行计算中的通信开销以及大规模网格构建效率等问题,也逐渐成为限制仿真规模提升的关键因素。
这些问题无法通过简单增加计算节点解决,而需要从软件架构层面对索引体系、数据结构、并行通信以及资源管理机制进行协同优化。
HSF-USTR 是基于 HSF 非结构框架构建的面向百亿级非结构网格仿真的高性能计算技术体系。针对超大规模工程仿真需求,围绕非结构网格加密、长整型索引适配、大规模并行通信、内存管理优化以及数据结构优化五个方向开展技术研究,并在长杆高速侵彻等工程算例中完成规模扩展和性能验证。
本文围绕上述技术方向,介绍百亿级非结构网格仿真面临的关键挑战,以及 HSF-USTR 的技术解决方案。

图 1 长杆高速侵彻算例并行加密结果对比
注:本文聚焦软件架构层面的技术分析,不涉及具体工程对象的物理结论讨论。
01 百亿级仿真的核心挑战

图 2 HSF-USTR 围绕五大技术门槛的系统级优化结构
从软件架构角度看,百亿级非结构网格仿真并非单纯扩大计算资源规模即可实现,而需要解决网格构建、索引管理、并行通信、内存使用以及数据访问效率等方面的系统性问题。
1.1 网格加密
百亿级网格规模无法依赖传统单机前处理方式一次生成,需要采用并行环境下的分布式多层级网格细分方法。
在加密过程中,各计算进程需要独立完成局部网格细化,同时保持新增节点、单元以及拓扑关系的一致性。因此,如何在无全局共享内存条件下实现大规模网格构建,是百亿级仿真的首要挑战。
1.2 长整型索引支持
传统有限元程序通常采用32位整数表示节点编号、单元编号以及数组偏移量。当网格规模扩展到百亿级时,全局编号和累计偏移量可能超过 231−1,导致传统索引体系无法满足需求。
然而,简单替换为64位整数并非直接可行,还会涉及MPI通信类型、第三方库接口兼容以及数据结构内存开销等问题。因此,需要设计适用于超大规模网格的长整型索引管理机制。
1.3 大规模并行通信
随着并行规模增加,进程间共享区域和Ghost区域比例逐渐提高,通信数据量和同步开销不断增加。同时,大规模计算中的并行I/O也
会带来额外压力。
因此,需要优化进程间数据交换机制,提高通信效率,降低通信开销对整体扩展性能的影响。
1.4 内存压力
三维非结构网格运行过程中,内存不仅包括节点坐标、单元拓扑等基础数据,还包含状态变量、接触搜索数据、Ghost区域副本以及MPI通信缓冲区等辅助数据。
随着网格规模增加,内存容量和访问效率逐渐成为限制大规模仿真的关键因素,需要从内存分配、数据布局以及访问方式等方面进行优化。
1.5 数据结构优化
非结构网格具有复杂的拓扑关系,传统通用数据结构在大规模场景下容易产生大量随机访问和查询开销,降低数据访问效率。
随着网格规模增长,需要针对节点、边、面等拓扑关系设计更加高效的数据组织和索引机制,提高拓扑构建、查询以及并行计算过程中的数据访问效率。
02 HSF-USTR 核心技术体系
2.1 分布式网格加密框架
针对复杂工程仿真中的高分辨率网格需求,HSF-USTR设计了多层级分布式网格加密框架,从粗网格出发,通过并行细分逐步扩展计算模型规模。
传统网格加密方法依赖全局数据管理,当网格规模扩展至百亿级时,单节点内存容量、拓扑构建效率以及数据同步成本成为主要限制因素。为此,HSF-USTR将网格细分过程并行化,由不同计算进程协同完成局部区域加密,并解决无全局共享内存条件下新增拓扑一致性维护问题。
图3中,为实现“局部加密 → 全局一致”的分布式网格构建流程,HSF-USTR设计了四个关键步骤——

图 3 分布式网格加密四步法
1. 局部网格加密
各计算进程独立完成负责区域内的单元细分、新节点生成以及拓扑关系更新,实现局部网格规模扩展。加密过程中复用已有 shared 点/边/面信息,减少全局拓扑重构带来的额外开销。
2. 共享实体识别
基于原有共享区域信息,识别加密后新增的共享实体关系,避免对全局网格进行遍历,提高并行加密效率。
3. 拓扑一致性维护
并行环境下,不同进程可能由于数据处理顺序和浮点计算误差导致共享节点排序不一致。HSF-USTR通过确定性排序机制,保证不同进程对共享节点具有一致的拓扑认知。
4. 全局编号同步
根据节点归属关系和全局偏移信息确定全局编号,并通过进程间通信完成同步,保证加密后网格编号体系的一致性。
此外,对于工程仿真中的点、线、面、体集合(subset),加密过程同样需要同步更新。若仅完成几何网格细分而未同步集合信息,可能导致载荷、约束以及接触条件施加位置错误,影响最终计算结果。

图 4 长杆高速侵彻算例的非结构网格可视化
如图4所示,基于分布式多层级加密方法,长杆高速侵彻算例由粗网格逐步扩展至高分辨率计算模型,实现了大规模非结构网格的构建与验证,为后续百亿级并行仿真提供网格基础。
在长杆高速侵彻算例测试中,网格规模由5k扩展至2000万级,进程数由8增加至256核时,加密耗时由60.21 s降低至2.32 s,并行效率达到80.9%,验证了分布式网格加密框架在大规模并行环境下的扩展能力。
2.2 混合长整型索引体系
传统索引体系无法满足百亿级网格规模需求,简单将所有索引替换为64位长整型虽然能够扩大编号范围,但会导致整体数据结构存储开销增加,并增加内存访问压力。针对这一问题,HSF-USTR设计了混合长整型索引体系,根据数据规模和使用场景选择不同索引位宽。
对于全局节点/单元编号、全局偏移量以及与整体规模相关的数据,采用64位长整型;对于局部拓扑关系、临时映射等短范围数据,继续采用32位整型(图5)。

图 5 混合长整型索引策略
通过按需分配索引位宽,避免了“一刀切”64位升级带来的额外内存消耗,在满足百亿级网格编号需求的同时,保持计算效率。
在实现过程中,HSF-USTR通过统一索引类型管理机制,对 label 和 llabel 进行区分,并完成相关数据结构和接口适配,保证长整型索引在网格构建、拓扑管理和并行计算过程中的一致性。
在算例验证中,分别采用32位和64位索引模式进行对比测试,计算结果保持一致,仿真精度和程序稳定性未发生变化。同时,在大规模网格测试中验证了长整型索引对节点编号、单元索引以及相关数据结构管理的支持能力,为百亿级非结构网格仿真提供可靠的索引基础。
2.3 shared/ghost 分层通信机制
百亿级非结构网格仿真中,随着并行规模不断扩大,计算任务逐渐由单进程计算转向大规模协同计算,通信开销成为影响扩展效率的重要因素。尤其是在非结构网格中,进程边界区域不断增加,shared 与 ghost 数据同步、全局一致性维护以及负载均衡等问题逐渐成为并行扩展的主要限制。
非结构网格并行划分后,各进程既包含独立计算区域,也包含与邻域进程相关的shared和ghost区域(图6)。shared区域用于维护跨进程共享实体一致性,ghost区域用于保存邻域计算所需的数据副本。

图 6 shared/ghost 分层通信模型
传统通信方式通常依赖大量全局同步操作,当进程规模增加时,通信等待时间和同步开销会快速增长。针对这一问题,HSF-USTR设计了 shared/ghost 分层通信机制,将不同类型的数据交换进行分类管理,提高大规模并行环境下的数据交换效率。
该通信机制主要包括:
- shared/ghost 分层管理:shared 区域用于维护进程间共享实体信息,ghost 区域用于保存邻域扩展数据,两类通信任务分别管理,降低无效数据交换;
- 点对点通信优化:根据进程邻接关系建立通信路径,减少不必要的全局同步;
- 通信拓扑复用:基于已有邻接关系构建稀疏通信表,避免重复生成通信拓扑;
- 通信正确性校验:提供 checkCommunication() 接口,通过全局 ID 构造点/线/面/体场,自动检查 shared/ghost 数据交换一致性。
通过上述机制,HSF-USTR 降低了大规模并行计算中的通信开销,提高了超大规模非结构网格计算的扩展能力。
在长杆高速侵彻算例测试中(图7),HSF-USTR完成了百亿级网格规模下的强扩展和弱扩展验证:
- 强扩展测试:计算规模保持不变,进程数由512增加至8192,16倍强扩展并行效率达到52.19%,满足设计指标要求;
- 弱扩展测试:问题规模与进程数同步增长,在512倍扩展条件下整体效率达到60.38%,迭代计算效率达到85.67%。

(a) 长杆百亿网格强扩展并行效率测试(512→8192 进程)

(b) 长杆百亿网格弱扩展并行效率测试(4→2048 进程)
图 7 长杆算例在百亿网格规模下的并行扩展性测试
测试结果表明,HSF-USTR通信机制能够有效支撑百亿级非结构网格并行计算,在大规模进程扩展条件下保持较好的计算效率和稳定性。
2.4 面向百亿网格的内存管理
针对百亿级网格计算中的内存瓶颈,HSF-USTR从内存分配、数据布局和访问效率三个方面进行优化:
1. 大规模内存分配优化
针对网格初始化阶段大量动态内存申请问题,优化内存分配流程,减少频繁申请释放造成的额外开销;
2. 内存布局优化
通过重构数据存储方式、减少中间数据冗余,提高数据连续性,降低内存碎片;
3. 访问局部性优化
优化数据访问顺序,提高缓存利用效率,降低大规模计算中的内存访问成本。
以长杆高速侵彻算例为测试对象,在加密4层、23199744个单元、4进程并行条件下,优化前程序峰值内存达到19.6 GB。针对初始化阶段内存峰值过高问题,通过重构网格拓扑构建流程、优化数据结构以及减少临时内存分配等措施,优化后峰值内存降低至约11.5 GB,较优化前减少约40%。
测试结果表明(图8),内存管理优化有效降低了百亿级非结构网格计算中的资源压力,提高了程序运行稳定性,为超大规模工程仿真提供了内存支撑。
(a) 优化前:峰值 19.6 GB |
(b) 优化后:峰值 11.5 GB |
图 8 长杆高速侵彻算例内存峰值优化结果
2.5 数据结构优化
百亿级非结构网格中,拓扑数据规模随着网格细化快速增长,传统基于链式结构或通用容器的数据组织方式会引入大量随机访问和动态内存操作,导致网格初始化、拓扑搜索和并行构建阶段效率下降。
针对上述问题,HSF-USTR 对非结构网格容器数据结构进行了优化,主要包括:
1. 高效拓扑查找结构
传统 face/edge 映射依赖通用 map 结构,在大规模网格下存在:哈希冲突;内存离散访问;cache 利用率低;等问题。
采用 Robin Hood Hashing 替代原有 face/edge map,通过降低探测距离差异,提高大规模拓扑元素插入和查询效率。
2. 数据访问流程优化
针对网格初始化阶段大量重复查找操作:梳理拓扑建立流程;避免重计算;优化排序策略;减少无效数据访问,提高整体初始化效率。

图 9非结构网格容器数据结构优化结果
03 正确性与工程验证
3.1 加密后的正确性验证
百亿级仿真最大的挑战并不只是“算得动”,而是在规模扩大后仍然保持计算可信。
对于非结构网格而言,网格数量提升、并行进程增加以及拓扑关系复杂化,都可能引入新的数值风险。例如,并行加密过程中节点编号不一致,通信过程中共享数据不同步,或者网格尺度变化导致物理响应偏离真实趋势。因此,大规模计算框架需要建立从网格、拓扑到物理结果的完整验证链路。
HSF-USTR采用“结构一致性 + 物理一致性”的双重验证方式——
- 结构一致性:通过检查并行环境下节点编号、共享区域通信以及网格集合信息,保证分布式网格操作前后拓扑关系正确;
- 物理一致性:通过不同加密层级下的计算结果对比,验证网格分辨率提升是否带来稳定的物理响应收敛。
以长杆高速侵彻算例为例,测试覆盖L0~L4多个加密层级。随着网格逐步细化,等效应力和等效塑性应变曲线整体趋势保持一致,并在高加密层级逐渐收敛。相比粗网格,高分辨率模型能够更加准确地捕捉冲击区域的应力集中和局部破坏演化。
如图10所示,随着网格规模增加,关键物理响应并未出现非物理波动,而是表现出“加密—细节增强—结果稳定”的演化规律,验证了分布式加密框架和求解流程在工程尺度下的可靠性。
(a) ElementSet1:等效应力(L0-L4) |
(b) ElementSet1:等效塑性应变(L0-L4) |
(c) ElementSet2:等效应力(L0-L4) |
(d)ElementSet2:等效塑性应变(L0-L4) |
图 10 加密层级收敛性验证:ElementSet1/2 的等效应力与等效塑性应变时程曲线随 L0 → L4 加密层级呈现稳定收敛趋势。
3.2 百亿级长杆高速侵彻算例验证
单纯提升网格数量并不能代表大规模仿真的成功,真正困难的是让整个计算链路——网格生成、数据组织、并行通信和物理求解——同时适应规模增长。
在完成核心模块优化后,HSF-USTR选择长杆高速侵彻这一典型极端工况进行系统验证。
测试过程从千万级网格逐步扩展至百亿级规模:
- 在千万级网格加密阶段,进程规模由8扩展至256,加密时间由60.21 s降低至2.32 s;
- 在百亿级长杆算例中,模型由2319万网格逐步扩展至118.8亿网格,最高使用8192个进程。
最终测试结果表明,框架能够在百亿级规模下保持稳定运行:
- 16倍强扩展效率达到52.19%;
- 大规模扩展测试整体效率达到60.38%。
更重要的是,计算规模提升并没有牺牲物理分辨能力。百亿级模型单元特征长度达到毫米到厘米级范围,可以进一步解析侵彻过程中的应力传播、材料失效以及碎片演化过程。
如图11所示,随着网格分辨率提升,冲击区域、破坏带以及碎裂形态逐渐清晰,高分辨率模型能够更加完整地描述复杂动态响应过程。
(a) 长杆算例 L0 等效应力云图 |
(b) 长杆算例 L1 等效应力云图 |
(c) 长杆算例 L2 等效应力云图 |
(d) 长杆算例 L3 等效应力云图 |
(e) 长杆算例 L4 等效应力云图 |
图 11 长杆算例不同加密层级等效应力云图(L0-L4):高加密层级下碎片与剥落形态被更充分分辨,结果趋于收敛。
04 结语
百亿级非结构网格仿真的难点,并不只是将计算规模扩大,而是在规模增长过程中保持数据可管理、通信可扩展、计算可信赖。当网格规模从千万级迈向百亿级时,传统仿真软件依赖的索引体系、内存组织方式和并行模型都会面临新的挑战。
HSF-USTR围绕这些关键问题,从软件架构层面对非结构网格计算流程进行了重新设计。通过分布式网格加密突破超大规模模型构建限制,通过混合长整型索引解决百亿级编号管理问题,通过shared/ghost分层通信提升并行扩展能力,并结合内存与数据结构优化,提高大规模计算过程中的资源利用效率。
在长杆高速侵彻算例中,HSF-USTR完成了从千万级到百亿级网格规模的连续扩展验证,最高支持118.8亿网格计算,并在大规模并行环境下保持稳定的计算效率。同时,通过网格收敛、串并一致性以及物理场对比验证,证明了超大规模计算结果的可靠性。
从工程应用角度看,百亿级仿真的实现并非依赖单一算法突破,而是网格、数据、通信和计算多个层面的协同优化。HSF-USTR的实践表明,面向未来复杂装备和多物理场工程问题,需要从底层软件架构出发构建可扩展的高性能仿真平台,为更大规模、更高精度的工程计算提供基础支撑。


































全部评论 (0)