首页/文章/ 详情

仿真干货|解析Abaqus & AMD的兼容与并行效率问题

4小时前浏览7

在日常的交流和观察过程中,许多用户反馈在Abaqus有限元仿真中遇到了AMD处理器相关的兼容性和并行效率问题,例如:

  •  AMD处理器性价比相较Intel更高,我做有限元仿真可以入手吗?但很多人说兼容性不好;

  •  我们今年上了AMD新集群跑Abaqus,很多算例计算速度还不如5年前的Intel集群,甚至核用得越多,计算速度越慢;

  • ……

Abaqus & AMD,兼容和并行效率的那些事~的图1

Abaqus & AMD,兼容和并行效率的那些事~的图2


综上所述,问题可主要归纳为两大类:

  1. AMD处理器运行Abaqus时出现非法指令(Illegal instruction)报错

  2. 多核并行计算时出现效率衰减,核数超过16核后计算速度显著降低


本文将通过对这些问题的系统性分析,从技术角度阐述根本原因和解决方案,帮助大家优化计算过程。


一、兼容性问题根源分析

问题分析:

通过对比测试发现,Abaqus安装过程依赖特定的动态链接库,尤其是安装目录中的Intel MKL(Math Kernel Library)矩阵运算的动态链接库由于历史版本Abaqus主要针对Intel处理器优化,这些库在Intel处理器上正常运行,但在AMD处理器环境下可能触发指令集冲突,导致计算中断。问题根源于Abaqus开发者早期未充分考虑AMD架构的兼容性,高版本软件虽支持AMD处理器,但默认库文件未做适配更新。例如,用户在实际测试中观察到,同一Abaqus安装包在Intel集群上顺利运行,但在AMD平台则报错Illegal instruction。

Abaqus & AMD,兼容和并行效率的那些事~的图3

解决方案:

通过逐行比对新旧版本依赖库,替换不兼容的MKL库文件,识别并更新为兼容版本,使AMD平台成功运行原报错算例。


二、并行效率衰减机制研究

问题分析:

    在兼容性问题解决后,测试发现AMD平台存在并行效率异常:以100万自由度的模型为例(Abaqus/Standard求解器),单节点内核数扩展至32核时,计算耗时较16核反而增加。


   经测试排查发现,在并行效率问题上,该直接求解器默认是混合并行模式,也就是在单个节点内部的时候,强制采用共享内存并行,节点之间是MPI通信,该模式在核心较少时(如8-16核)效率尚可,但在高核数AMD服务器上(如64核以上)出现效率下降。这是因为共享内存并行在单节点内管理数据时,核心数超过临界点(16核)后,内存带宽和通信开销成为瓶颈,导致计算速度变慢。如下图,对比测试显示,32核共享并行计算时间比16核更长。


Abaqus & AMD,兼容和并行效率的那些事~的图6

Abaqus & AMD,兼容和并行效率的那些事~的图7

解决方案:

启用混合并行模式,结合消息传递接口(MPI)分布式并行与多线程共享并行。具体操作包括将计算任务分解为多个part,并平均分配到4个不同节点上,同时通过节点间高速通信降低延迟。测试数据证实,在相同核数下,跨节点混合模式显著减少计算时间,主要得益于分布式并行减少了单节点资源争用。



Abaqus & AMD,兼容和并行效率的那些事~的图8



三、总结

综上所述, 本次效率提升有以下几点原因:


1、模型被分解为多个Part,可使得单元操作并行化;


2、全局矩阵求解分解为多个Part,充分发挥了单个节点的共享内存并行效率,规避单节点大于16核之后共享内存并行效率低的问题;


3、神工坊®集群具有现代化的HPC系统,集群计算机之间配备有Infiniband,提供了高带宽、低延迟和可靠的数据交换,这将使得MPI通信损耗降得很低。


由于AMD平台的核数一般较多,以AMD EPYC™ 7002 Series双路、128核的服务器为例,通常调度器默认是用完一个节点,再用另一个节点。其所导致的后果就是——核越多越慢,花费更高的成本却得到了更差的服务 。


Abaqus在AMD平台的性能和兼容性优化关键在依赖库适配与并行模式配置。软件安装过程需针对性替换兼容库文件,以避免指令冲突;并行计算时则应灵活切换混合模式,匹配硬件架构特点。这些优化需深入高性能计算(HPC)基础知识,对技术能力要求较高,但能显著提升计算资源利用率和仿真效率。错误配置则可能导致资源浪费,例如在单节点高核数环境下,计算成本增加10倍但速度反而下降,而优化后成本减半、效率翻倍。


这也会造成一种现象:某仿真平台主打单位核时低廉,但是用户租用他们的平台跑仿真软件,实际上付出了将近10倍的钱,工作效率却没有提升。平台反而成为“自来水”推荐给其他同事使用,仅仅是因为表面上的价格便宜。


而SimForge™高性能仿真云平台以超算HPC集群作为硬件支撑,实现了跨节点大规模并行计算,可以满足复杂结构模型和算法仿真时对大量计算资源的需求,缩短了大规模仿真用时,为工业设计的高效运行提供保证。对平台上的仿真软件进行了高性能适配,同时根据用户需求进行兼容性适配,真正做到按需最大化每一核时的价值。欢迎广大工程师同行注册试用——

1. 专业GPU并行渲染,操作丝滑如本地仿真

SimForge™ 高性能仿真云平台实现了多 GPU 的分时共享,同时支持大规模仿真数据的多 GPU 服务端并行渲染,让10亿+网格可视化无压力。



2. "超算级资源池+工业级软件栈"的垂直整合架构

SimForge™ 拥有亚洲最大的价值2亿的商业仿真软件授权,搭建了“传统商软+开源/国产软件+自研定制软件”的“工业级软件栈”,配合超算资源支持,单体软件并行最高可达2048核。

性能测试|有限元软件分析——以Abaqus隐式静力学求解为例的图11

3. 打破工程仿真信息孤岛,在线协同范式升级

实时同步操作界面:区别于大部分仿真云平台只有子母账号管理功能,SimForge 在账号管理功能之外,是可以实现实时同步操作的。

跨设备与跨账号无缝协同:关注到不同用户对账号信息保密需求不同,SimForge支持——“相同账号不同设备,同时登录协同操作”,“不同账号同时进入作业协同操作”两种使用情景。

性能测试|有限元软件分析——以Abaqus隐式静力学求解为例的图12

4. 实时计费,精准结算,风险可控

SimForge™ 采用实时计费,精准结算的模式,让用户在使用过程中能够清晰了解费用情况,风险可控。无论是短期的集中计算任务,还是长期的研发项目,都能根据实际使用情况灵活计费,避免了资源浪费和不必要的成本支出,以及日常软硬件维护的烦恼。

性能测试|有限元软件分析——以Abaqus隐式静力学求解为例的图13





HPCAbaqus结构基础网格处理后处理分析通信云计算求解技术科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-08-06
最近编辑:4小时前
神工坊(高性能仿真)
神工坊,提供高性能仿真解决方案...
获赞 292粉丝 49文章 137课程 5
点赞
收藏
作者推荐

技术分享|结构网格自适应(SAMR)——一种高效的多尺度问题解决方案

01背景与问题网格对于数值模拟十分重要。基于网格的离散是数值计算中最主流的空间离散方式,而网格的类型和质量直接影响计算的精度和效率。一般情况下,网格尺寸越小,数值离散引入的截断误差越小。但除此以外,网格的正交性、斜率,甚至与物理场特征的一致性也都或多或少会影响数值计算的误差。另一方面,网格拓扑也决定了数值计算程序底层数据结构,从而很大程度上决定了计算的效率。例如,根据一般经验,结构化网格计算效率约是非结构化网格的3倍。当然,除了以上因素,网格生成的难易程度也是影响实践中网格选择的重要因素。一些常用的网格形式列举如下:各种网格形式(素材来源于网络)随着数值模拟精度和效率要求不断提高,对网格生成的效率,以及网格相关计算精度和计算效率方面提出了更多挑战。根据笔者视角来看,最典型问题包括网格生成效率低、多尺度特征捕捉和先进硬件平台适配等问题。问题一:网格生成效率低手动生成高质量网格一直是非常费时费力的工作。美国工业软件公司ENVENIO发布了一份针对仿真行业的调查报告《TheCFDSurvey》,该调查采访了28个国家的116位仿真从业者,涉及不同规模的公司。调查结果中显示(如下图),不论规模大小,所有的公司都认为在网格生成上花费了太长的时间。一方面,随着计算机算力提升,人力成本相对越来越昂贵。另一方面,数值模拟精度要求越来越高,所需网格数量逐渐增长到超过人工可控的规模。因此,网格生成的自动化、大规模化、并行化是网格技术发展的大势所趋。仿真行业的调查结果[1]问题二:多尺度特征捕捉物理问题天然具有多尺度特性,精确捕捉关键跨尺度的特征对于实现高保真模拟至关重要。以流体力学为例,超声速空气流动中的激波、燃烧反应流中的火焰面、多相流中的两相界面以及几何曲率极大的区域等,都是对应场景中的关键跨尺度特征。因此,为了实现高保真模拟,同时保证计算量在可接受范围,对计算域进行精确而有针对性的网格加密是非常重要的。正如,流体力学模拟中经常对边界层和激波区域进行网格加密,结构力学模拟中经常对应力集中区域和断裂破坏点进行加密。不幸的是,在实际问题模拟中,大多数情况下无法预先判断跨尺度特征出现的区域和时机。在此情况下,必然要求网格具有跟随物理场变化而自适应加密的能力,进而引发网格加密规则等功能性问题,以及并行情况下动态负载均衡等性能问题。广泛存在的多尺度流动现象(素材来源于网络)问题三:先进处理器适配诚然,计算机计算能力的提升,对数值计算的精度和效率提升具有决定性作用。但随着半导体工业进入后摩尔定律时代,处理器单核心性能提升受限,处理体系架构从单核转向多核,再进一步转向众核。对基于传统网格类型的数值计算程序,特别是非结构网格程序,体系架构的复杂化为其计算效率的发挥设置了诸多障碍。例如,复杂的编程模型要求对传统网格体系下的数据结构和算法进行重新设计,工作量十分繁巨。再如,众核处理器访存带宽提升相对浮点性能提升而言存在严重滞后,使得传统网格下的数值计算程序严重访存受限。众核处理器(GPU)日益严峻的“访存墙”[5]02SAMR特点和优势SAMR的全称是(block)StructuredAdaptiveMeshRefinement(结构网格自适应)[2][3],是基于结构化网格块的自适应加密体系的通称。提到SAMR就不得不提自适应加密技术。实际上,自适应加密技术AMR(AdaptiveMeshRefinement)与网格类型并没有绑定关系,例如在非结构网格中也可以通过网格重构进行自适应加密。在数值计算实践中,基于笛卡尔网格(直角坐标网格)自适应加密易于生成且可以适应复杂几何,因此这种技术组合十分常见。狭义的AMR通常就是指代笛卡尔网格自适应加密,下文中不再加以区分。(笛卡尔)AMR网格示例(素材来源于网络)SAMR是AMR的一个特例,其主要的特点即加密单元是结构化的网格块。SAMR目前主要采用两种加密结构:第一种是Tree-based树型结构[4],即网格按照空间多叉树递归进行加密(下图左);第二种是Patch-based多层分块结构,即按照多级网格叠加进行加密(下图右)。Tree-based加密数据结构更加优美,一般网格块具有相同的分辨率,因此在算法实现上更加整洁和高效。Patch-based加密区域更加灵活,例如不用受到树形加密规则的约束,以及可以针对加密区域大小使用大小不同的网格块。Tree-basedPatch-based(素材来源于网络)SAMR网格具有局部结构化特点,同时能够通过高效的自适应能力捕捉多尺度特征。虽然笛卡尔形式网格在精确刻画边界上有一定不足,但是通过浸没边界法等非贴体网络边界模型也可以较好地实现边界条件。实际上,SAMR也完全可以使用曲线网格和贴体边界,只不过处理起来相对复杂一些。正因为SAMR相对其它网格有其独特性,在某些方面有其突出的优势,主要包括以下几个方面。优势一:网格自动生成主要采用笛卡尔网格的SAMR技术,网格结构比较简单,天然适合自动生成网格。几何特别复杂或没有水密性(存在空洞或毛刺)情况下,通过一定的处理,使用SAMR技术也能成功生成网格。这一特性,可以让前处理过程中的几何简化和几何清理工作量大大降低,从而进一步降低人力成本。在边界处,通过脱体网格在边界处加密和采用合适的边界模型,也可以得到较好的精度。优势二:高效自适应加密主要采用笛卡尔网格的SAMR,网格可以非常集约地集中在需要加密的位置,且自适应加密或粗化非常直接和便于实施。相对于传统结构化网格,可以更高效地利用网格,而不必按维度进行加密。相对于非结构网格,SAMR在保持局部结构化优势前提下,利用非常直接的等分和合并规则快速地实现网格重构,比非结构网格局部重构更为高效。优势三:更高的计算效率由于SAMR具有局部结构化特征,因此可以在适应复杂几何前提下,保证局部能够达到传统结构化网格的计算效率。更进一步,采用笛卡尔网格的SAMR,相对一般曲线结构网格,可以大大节约几何描述数据,对于缓解众核处理器内存带宽瓶颈十分有利。再次,SAMR可以在不影响数值计算精度的条件下,通过调整网格块分辨率,适应包括众核处理器在内的不同平台硬件配置(如缓存行长度、缓存大小等),以充分发挥硬件性能。在SAMR体系下,算法经过特殊设计也可以提升计算效率,例如在不同的加密层级采用不同的时间推进尺度,从而大大节约计算量。SAMR适配神威·太湖之光处理器架构体系03我们的SAMR框架神工坊团队发展了一套三维SAMR框架。该框架是一个基于octree[4]的多层分块(block)网格框架软件,并在此基础之上构建了多层分块数据容器。SAMR框架封装了八叉树多层分块网格的复杂算法和并行细节,只暴露简单的功能接口,基于这些接口可快速构建求解器。SAMR框架的主要功能与特性主要包括:复杂几何网格生成、网格自适应加密、动态逐层负载均衡、多层分块数据容器、迭代器与从核迭代器。SAMR框架网格切面示意图功能特性一:网格自动生成根据输入的几何模型(目前支持STL格式)文件,本框架可自动生成octree-block网格块。在此基础之上,根据octree-block网格块自动生成block内部网格。根据所采用的边界模型,可以选择性地对网格进行体素化,即对网格单元相对封闭几何表面的内外关系进行标记(对于非封闭几何(如平板),或者采用浸没边界条件,体素化过程并不是必须的)。STL几何模型功能特性二:网格自适应通过选取计算域物理场某个特征量作为加密依据,SAMR框架可以自动根据加密依据加密或粗化网格。例如在流动模拟中,选取速度梯度作为加密依据,速度梯度大则代表流场变化剧烈,通过加密该区域可以更精确解析流场。跟随特征的网格自适应示意图功能特性三:动态逐层负载均衡自适应网格的计算负载必然是动态变化的,而SAMR体系上多采用多时间尺度推进算法,因此动态逐层负载均衡是保证效率必备的功能。区别于一般负载均衡策略,逐层特指各加密层级必须都是负载均衡的。下图中,左图呈现的是非逐层的负载均衡,右图呈现的是逐层负载均衡。本框架针对负载均衡功能,采用了优化的任务分割策略和数据传输策略,实现了高效的动态负载均衡。一般负载均衡与逐层负载均衡策略的差异功能特性四:友好开发接口SAMR框架通过容器化封装,将网格、场和计算域等数据对象进行了容器化实现,屏蔽了底层复杂的众核并行与MPI分布式并行相关数据结构和算法。用户通过使用容器和容器提供的函数式编程接口(函数指针+迭代器),可以在SAMR框架上快速开发所需的物理模型或求解算法。算子定义示意图功能特性五:众核加速众核是当前高性能处理器普遍采用的架构体系,SAMR框架设计充分考虑了众核二级并行加速需求。目前,SAMR框架在典型应用测试中,基于国产神威·太湖之光超级计算机,实现了核心热点的20倍左右众核加速。未来,SAMR框架将考虑兼容GPU(CUDA)等其它平台。04一个应用例子为了充分验证当前框架的功能特性,我们选取了潜艇标模suboff绕流算例进行验证。该算例主要采用格子Boltzmann方法(LBM),基本调用了框架所有主要功能。算例网格量为2亿,并行规模为2000进程,LBM求解器,Re为40000。网格最大层数为8,自适应间隔50。2亿网格在2000进程下的自动生成过程仅不到十分钟,初始网格如图,图中显示为网格块(每个网格块为10*10*10的网格)。初始网格块模拟结果如下图所示。可以看到suboff周围以及尾迹区被有效加密,若使用均匀网格,要达到同等的计算精度,网格量将达到百亿级别。目前SAMR框架的功能基本实现,下一步将进行功能完善和性能优化工作。(本文作者:高飞)suboff流场局部参考文献[1]https://zhuanlan.zhihu.com/p/47164365[2]DubeyA,AlmgrenA,BellJ,etal.Asurveyofhighlevelframeworksinblock-structuredadaptivemeshrefinementpackages[J].JournalofParallel&DistributedComputing,2014,74(12):3217-3227.[3]SchornbaumF,URüde.Extreme-ScaleBlock-StructuredAdaptiveMeshRefinement[J].SIAMJournalonScientificComputing,2017,40(3).[4]BursteddeC,WilcoxLC,GhattasO.p4est:ScalableAlgorithmsforParallelAdaptiveMeshRefinementonForestsofOctrees[J].SiamJournalonScientificComputing,2011,33(3):1103-1133.[5]https://medium.com/riselab/ai-and-memory-wall-2cb4265cb0b8

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈