面向反应堆堆芯组件数值模拟的有限元撕裂对接法及系统技术方案

技术编号:28296135 阅读:13 留言:0更新日期:2021-04-30 16:20
本发明专利技术公开一种面向反应堆堆芯组件数值模拟的有限元撕裂对接法及系统。n个计算节点中每个计算节点均设有上述有限元撕裂对接系统,每个计算节点拥有g块类GPU加速器。本发明专利技术采用了负载均衡策略,使得各进程的稠密矩阵内存大小趋于平均值,充分利用集群资源,加快求解速度。采用HIP编程,使得有限元撕裂对接法运行在NvidiaCUDA平台和AMDROMc平台。在迭代求解过程的稠密矩阵向量乘阶段中,采用动态分配矩阵策略,使得不同处理器分配到合适的计算量,以充分利用计算资源,加快求解速度。在向量内积阶段,采用了向量内积加速策略和通信计算重叠策略,通过引入通信线程,减少通信等待时间,加快向量内积速度。

【技术实现步骤摘要】
面向反应堆堆芯组件数值模拟的有限元撕裂对接法及系统
本专利技术涉及有限元撕裂对接过程处理技术,特别涉及一种面向反应堆堆芯组件数值模拟的有限元撕裂对接法及系统。
技术介绍
核反应堆里的堆芯组件,在高温、辐照、流体、压力等环境下,会出现堆芯组件变形和燃料棒磨损的情况,从而导致装卸料困难,组件破损、疲劳损伤等一系列问题,影响反应堆的安全运行。又由于堆芯组件排列特殊等问题,理论分析方法十分困难,所以需要采用有限元法对其进行数值模拟。有限元撕裂对接法(FiniteTearingandInterconnectingDDmethod,FETI)是求解反应堆结构力学问题的有效方案,主要用于处理偏微分方程离散化得到的大规模问题,是堆芯组件大规模数值模拟所需的重要方法,同样也适用于电磁学、航空技术和机械制造等领域。有限元撕裂对接法最初是由C.Farhart和F.X.Roux在结构力学领域提出,它是一种非重叠的区域分解方法,将一个模型划分为许许多多的非重叠子域,并且每个子域都是独立的。为了保证子域之间的连续性,FETI方法增加了一组未知量(拉格朗日乘子LM),在实际求解的时候,一般先采用Krylov子空间迭代法求得LM,然后在每个子域内求解子域方程。然而,原始FETI方法的计算效率不高。为了解决这个问题,Farhat等人在2001年提出了FETI-DP方法(adual–primalunifiedFETImethod),它不再需要第二组拉格朗日乘数,并将以前开发的所有一层和两层FETI方法统一为一个单一的双重对偶。FETI-DP比FETI方法更健壮,计算效率更高,适用于求解二阶和四阶问题。2006年,Dost′al等人提出了TFETI方法(TotalFETI)。该方法是FETI方法的变体,其中Dirichlet边界条件也和LM(拉格朗日乘数)相互关联,然而粗略问题仍然是制约FETI方法可扩展性的重要因素。为了减少粗略问题的影响,提高可扩展性,Klawonn和Rheinbach等人在2010年提出了HFETI方法(HybridFETImethod)。该方法结合了FETI方法和FETI-DP方法,将许多子域聚集到一个群集中,可以看作是三级区域分解方法。首先需要建立一个FETI-DP系统来处理所有群集。然后每个群集由多个子域组成,需要使用传统的FETI方法来处理每个群集中的子域。同样,在2012年,Kozubek等人提出了类似的方法——HTFETI方法(HybridTotalFETImethod)。该方法结合了FETI方法和TFETI方法,将TFETI方法用于每个群集中的子域,将带有投影的FETI方法用于群集。HTFETI方法能够有效的降低粗略问题。然而,在FETI的迭代求解中,稀疏矩阵向量操作消耗了大量的时间,因此Riha等人在2016年提出了LSC方法(LocalSchurComplementmethod),将稀疏矩阵向量操作使用更高效的稠密矩阵向量乘法(GEMV)代替,相当于一个以空间换时间的策略。这种稠密的BLAS2级操作具有连续的内存访问权限,因此对于受内存限制的应用程序具有更好的性能。同时,稠密矩阵向量乘适合用GPU加速器来处理。因此Vavrik等人在2018年使用CUDA编程将稠密矩阵向量乘交由GPU处理。然而目前的有限元撕裂对接方法,仍然存在下列问题迫切需要解决的问题:1)目前已知的支持异构并行的有限元撕裂对接求解器使用的是CUDA编程,然而使用CUDA编程实现的求解器只能在NvidiaCUDA平台上运行,不支持其它类型的GPU加速器;2)当采用GPU计算稠密矩阵向量乘的时候,CPU处于空闲状态,没有充分利用集群的计算资源;3)在实际进行反应堆堆芯组件数值模拟的时候,各进程组装的稠密矩阵内存大小相差很大,甚至计算时间和内存大小相差达6倍,这使得计算量少的进程花了大量时间在等待别的进程,增加了求解时间。
技术实现思路
本专利技术的一个目的是解决现有有限元撕裂对接法存在的问题,提出一种面向反应堆堆芯组件数值模拟的有限元撕裂对接系统,充分利用集群资源,加快求解速度,减少通信等待时间,提高可移植性。一种面向反应堆数值模拟的有限元撕裂对接系统,包括输入模块、区域划分模块、矩阵组装模块、资源收集模块、负载均衡模块、迭代求解模块、本地求解模块。所述的输入模块,用于获取网格文件数据,并进行初始化参数设置。所述的区域划分模块,用于对网格划分为多个区域,并对每个区域划分为多个子区域。所述的矩阵组装模块,用于在各子区域生成对应的有限元矩阵。所述的资源收集模块,用于收集各进程的稠密矩阵大小信息,并进行占有内存比较。所述的负载均衡模块,用于调用负载均衡策略,对各进程的稠密矩阵进行重分配。所述的迭代求解模块,用于采用现有迭代方法求解各区域边界节点的位移;并调用向量内积加速策略和通信计算重叠策略。所述的本地求解模块,用于求解各区域内部节点的位移。n个计算节点中每个计算节点均设有上述有限元撕裂对接系统,每个计算节点拥有g块类GPU加速器。本专利技术的另一个目的是提供一种面向反应堆堆芯组件数值模拟的有限元撕裂对接方法,具体步骤如下:步骤1:获取反应堆堆芯组件的几何模型数据,并将几何模型数据通过现有软件进行网格划分,生成网格文件。步骤2:每个计算节点通过输入模块获取反应堆堆芯组件的网格文件,初始化相关参数:有限元方法、迭代方法、最大迭代数、迭代精度、堆芯组件材料参数、堆芯组件边界条件等。所述的有限元方法可以为FETI或者HTFETI。步骤3:n个计算节点中每个计算节点开启g个进程,每个进程开启T个线程,通过区域划分模块将输入模块获取的网格划分为g*n个区域,每个区域分配一个进程;同时每个区域进一步划分为s个子区域。步骤4:各进程根据分配到的区域以及选用的有限元方法,通过矩阵组装模块在各个子域生成对应的有限元矩阵,每个子域均会生成一个稠密矩阵。因此,每个进程会生成s个稠密矩阵。步骤5:利用资源收集模块收集各进程的稠密矩阵信息,进程i的稠密矩阵占用内存大小为Li,令Lmin=min{L1,L2,L3...Ln*g},Lmax=max{L1,L2,L3...Ln*g}。如果X表示阈值,则认为该反应堆堆芯组件在有限元处理过程中出现了负载不均衡现象,需采用负载均衡策略进行调整,进入步骤6;反之则认为有限元处理过程中负载均衡,直接进入步骤7。步骤6:通过负载均衡模块启用负载均衡策略,将各进程的矩阵占用内存大小,都调整至平均值附近,具体是:6-1根据各进程的稠密矩阵内存大小,计算出稠密矩阵平均内存大小;6-2将各进程的稠密矩阵内存大小与平均值相比较,如果大于平均值,则认为该进程的计算量较大,需要别的进程帮助,设为被帮助者;如果小于平均值,则认为该进程的计算量较小,可以帮助别的进程,设为帮助者;6-3将进程分为两组,帮助者为一组,被帮助者为一组,对每一组按照稠密矩阵内存大小排序,对应选出一个帮助者与一个被帮助本文档来自技高网
...

【技术保护点】
1.一种面向反应堆堆芯组件数值模拟的有限元撕裂对接法,其特征在于包括以下方法:/n步骤1:获取反应堆堆芯组件的几何模型数据,并将几何模型数据进行网格划分,生成网格文件;/n步骤2:每个计算节点获取反应堆堆芯组件的网格文件,并初始化相关参数;/n步骤3:n个计算节点中每个计算节点开启g个进程,每个进程开启T个线程,将反应堆堆芯组件的网格划分为g*n个区域,每个区域分配一个进程;同时每个区域进一步划分为s个子区域;/n步骤4:各进程根据分配到的区域以及选用的有限元方法,在各个子域生成对应的有限元矩阵,每个子域均会生成一个稠密矩阵;/n步骤5:收集各进程的稠密矩阵信息,比较后判断在有限元处理过程中负载均衡现象;若认为负载不均衡则进入步骤(6),反之进入步骤(7);/n步骤6:启用负载均衡策略,将各进程的矩阵占用内存大小调整至平均值附近;具体是:/n6-1根据各进程的稠密矩阵内存大小,计算出稠密矩阵内存大小的平均值;/n6-2将各进程的稠密矩阵内存大小与平均值相比较,如果大于平均值,则认为该进程的计算量较大,设为被帮助者;如果小于平均值,则认为该进程的计算量较小,设为帮助者;/n6-3将进程分为两组,帮助者为一组,被帮助者为一组,对每一组按照稠密矩阵内存大小排序,对应选出一个帮助者与一个被帮助者;/n6-4被帮助者发送1个稠密矩阵给帮助者;/n6-5重复步骤6-4直到当前被帮助者的稠密矩阵内存小于平均值,然后换下一个被帮助者,或者帮助者的稠密矩阵内存大于平均值,然后换下一个帮助者,进入步骤6-4;/n6-6重复步骤6-4至6-5,直到所有被帮助者的内存均小于平均值,或者所有帮助者的稠密矩阵内存大于平均值;/n步骤7:各进程进行迭代求解,在迭代求解的每一步迭代中向量内积运算采用向量内积加速策略和通信计算重叠策略,稠密矩阵向量乘采用HIP编程使其在类GPU加速器上计算,并采用动态矩阵分配策略;/n步骤8:各进程将上述迭代求解结果,通过本地求得内部节点的位移,从而得到所有节点的位移。/n...

【技术特征摘要】
1.一种面向反应堆堆芯组件数值模拟的有限元撕裂对接法,其特征在于包括以下方法:
步骤1:获取反应堆堆芯组件的几何模型数据,并将几何模型数据进行网格划分,生成网格文件;
步骤2:每个计算节点获取反应堆堆芯组件的网格文件,并初始化相关参数;
步骤3:n个计算节点中每个计算节点开启g个进程,每个进程开启T个线程,将反应堆堆芯组件的网格划分为g*n个区域,每个区域分配一个进程;同时每个区域进一步划分为s个子区域;
步骤4:各进程根据分配到的区域以及选用的有限元方法,在各个子域生成对应的有限元矩阵,每个子域均会生成一个稠密矩阵;
步骤5:收集各进程的稠密矩阵信息,比较后判断在有限元处理过程中负载均衡现象;若认为负载不均衡则进入步骤(6),反之进入步骤(7);
步骤6:启用负载均衡策略,将各进程的矩阵占用内存大小调整至平均值附近;具体是:
6-1根据各进程的稠密矩阵内存大小,计算出稠密矩阵内存大小的平均值;
6-2将各进程的稠密矩阵内存大小与平均值相比较,如果大于平均值,则认为该进程的计算量较大,设为被帮助者;如果小于平均值,则认为该进程的计算量较小,设为帮助者;
6-3将进程分为两组,帮助者为一组,被帮助者为一组,对每一组按照稠密矩阵内存大小排序,对应选出一个帮助者与一个被帮助者;
6-4被帮助者发送1个稠密矩阵给帮助者;
6-5重复步骤6-4直到当前被帮助者的稠密矩阵内存小于平均值,然后换下一个被帮助者,或者帮助者的稠密矩阵内存大于平均值,然后换下一个帮助者,进入步骤6-4;
6-6重复步骤6-4至6-5,直到所有被帮助者的内存均小于平均值,或者所有帮助者的稠密矩阵内存大于平均值;
步骤7:各进程进行迭代求解,在迭代求解的每一步迭代中向量内积运算采用向量内积加速策略和通信计算重叠策略,稠密矩阵向量乘采用HIP编程使其在类GPU加速器上计算,并采用动态矩阵分配策略;
步骤8:各进程将上述迭代求解结果,通过本地求得内部节点的位移,从而得到所有节点的位移。


2.根据权利要求1所述的一种面向反应堆堆芯组件数值模拟的有限元撕裂对接法,其特征在于步骤(5)判断在有限元处理过程中负载均衡现象具体是:
设进程i的稠密矩阵占用内存大小为Li,令Lmin=min{L1,L2,L3…Ln*g},Lmax=max{L1,L2,L3…Ln*g};如果X表示阈值,则认为该反应堆堆芯组件在有限元处理过程中出现了负载不均衡现象,需采用负载均衡策略进行调整,进入步骤6;反之则认为有限元处理过程中负载均衡,直接进入步骤7。


3.根据权利要求1或2所述的一种面向反应堆堆芯组件数值模拟的有限元撕裂对接法,其特征在于步骤(7)所述的向量内积加速策略为多线程并行求解各进程的局部向量内积。

【专利技术属性】
技术研发人员:张纪林张鋆宸王珏冯仰德聂宁明丁佳明
申请(专利权)人:杭州电子科技大学中国科学院计算机网络信息中心
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1