本申请涉及工程中的高性能数值计算,特别是涉及一种面向分布式计算的自动多重子结构数据处理方法。
背景技术:
1、自动多重子结构方法在结构动力学分析、结构优化设计、振动控制、电磁学、流固耦合问题等工程领域中具有广泛应用,能够提供高效、准确的动力学分析与优化设计解决方案。传统的单机计算方式因受限于硬件资源,已经逐渐无法满足日益增长的计算复杂性和精度要求。自动多重子结构方法在应用时,往往涉及大规模稀疏矩阵的求解,这需要大量内存来存储数据和执行计算,而单台计算机的内存容量难以满足这一需求。同时,单机计算的处理速度有限,无法高效地完成这些复杂的计算任务,从而导致仿真时间过程,影响工程决策的效率。
2、目前与本发明最为接近的技术是slepc稀疏特征方程求解器。slepc作为一种被广泛认可的分布式计算软件,涵盖了多种类型方程的求解算法。然而,对于线性广义特征方程的求解,slepc并未提供自动多重子结构的求解算法。在实际应用中,使用slepc默认的krylov子空间算法来求解有限元特征方程,其所需的计算时间往往是自动多重子结构算法的数倍甚至数十倍,难以满足高效仿真的需求。
技术实现思路
1、基于此,有必要提供一种面向分布式计算的自动多重子结构数据处理方法,该方法包括:
2、s1:估算二叉消去树中各节点作为根节点时的子树计算量;每个所述节点分别代表不同的子结构;
3、s2:基于各节点的子树计算量,使用静态映射算法将各节点分别映射到不同的进程中,并将节点标记为全局节点或局部节点;
4、s3:在各进程中,按照先局部节点后全局节点的顺序进行节点计算,且各节点将自身计算得到的子结构模态数据传输给其父节点;
5、s4:全部节点计算完成后,各进程将其中节点计算得到的子结构模态数据传输至根进程,根进程按照节点在所述二叉消去树中的位置组装得到缩聚的刚度矩阵以及缩聚的质量矩阵;
6、s5:根进程求解广义特征方程在给定区间内的缩聚特征值和缩聚特征向量,并将缩聚特征向量传递给每个进程;
7、s6:各进程基于所述缩聚特征向量、进程内节点的子结构模态数据分别计算各进程中节点的局部特征向量;将所有进程中的局部特征向量归约至根进程中,得到广义特征方程的全局特征向量。
8、优选的,s1中,子树计算量的计算公式为:
9、;
10、;
11、其中,表示节点 i作为根节点时的子树计算量;表示节点 i的运算次数估计值;表示节点 j的运算次数估计值,;表示节点 i的子孙节点集合; n表示节点的大小。
12、优选的,s2中,所述静态映射算法包括:
13、步骤1:建立容器,将二叉消去树的根节点放入所述容器;
14、步骤2:将容器中的各节点按照子树计算量从大到小排序;
15、步骤3:将排序后的所有节点依次循环分配给各进程;
16、步骤4:基于各进程中子树计算量的总和判断节点分配是否恰当,若恰当,则退出静态映射算法;若不恰当,则执行步骤5;
17、步骤5:取出容器中子树计算量最大的节点,将其标记为全局节点,并将其孩子节点放入容器,返回步骤2。
18、优选的,进行静态映射算法后,
19、根节点以及部分节点被标记为全局节点,而剩余的节点被标记为局部节点;
20、所有的局部节点将根据其在静态映射算法中的分配结果分配给不同的进程;
21、所有的全局节点则按照子树计算量从大到小排序,并依次循环分配给各进程。
22、优选的,s3包括:
23、在各进程内部,先计算所有的局部节点;
24、记录每个所述全局节点的依赖关系的数量ndep,所述依赖关系为需要在其他进程中的孩子节点传输数据;
25、各节点将自身计算得到的子结构模态数据传输给其父节点,同时,所有全局节点均监测是否有在其他进程中的孩子节点传输数据给自己;
26、当一个进程获取到其他进程传输的数据后,立即将对应的全局节点的依赖关系的数量ndep减1,且当任意一个全局节点的依赖关系的数量ndep为0时,立即计算该全局节点;
27、否则继续等待其孩子节点传输数据。
28、优选的,所述子结构模态数据包括:缩聚模态向量和约束模态矩阵;
29、缩聚模态向量的计算公式为:
30、;
31、其中,表示节点 i的缩聚模态向量;表示节点 i的刚度矩阵;表示节点 i的质量矩阵;表示节点 i的缩聚特征值;
32、约束模态矩阵的计算公式为:
33、;
34、其中,表示节点 i与节点 k之间的约束模态矩阵;表示节点 i与节点 k之间的耦合刚度矩阵,;表示节点 i的祖先节点集合。
35、优选的,数据的传输采用的是mpi的无阻塞通讯。
36、优选的,s5中,根进程采用thick restart lanczos算法求解广义特征方程在给定区间内的缩聚特征值和缩聚特征向量;其中,表示缩聚的刚度矩阵, x表示缩聚特征向量,表示缩聚特征值;表示缩聚的质量矩阵;表示缩聚特征值的最小值;表示缩聚特征值的最大值。
37、优选的,s5中,根进程使用mpi广播函数mpi_bcast将所述缩聚特征向量传递给每个进程。
38、优选的,s6中,进程中节点的局部特征向量的计算公式为:
39、;
40、其中,表示节点 i的局部特征向量;表示节点 i的缩聚模态向量;表示节点 i对应的缩聚特征向量;表示节点 i与节点 k之间的约束模态矩阵,;表示节点 i的祖先节点集合;表示节点 k的局部特征向量。
41、有益效果:该方法实现了适用于有限元仿真分析、计算流体力学、电磁学等领域的大规模稀疏广义特征方程的快速求解,能够有效满足现代工程仿真对计算精度和效率的高要求。
1.一种面向分布式计算的自动多重子结构数据处理方法,其特征在于,包括:
2.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,s1中,子树计算量的计算公式为:
3.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,s2中,所述静态映射算法包括:
4.根据权利要求3所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,进行静态映射算法后,
5.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,s3包括:
6.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,所述子结构模态数据包括:缩聚模态向量和约束模态矩阵;
7.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,数据的传输采用的是mpi的无阻塞通讯。
8.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,s5中,根进程采用thick restart lanczos算法求解广义特征方程在给定区间内的缩聚特征值和缩聚特征向量;其中,表示缩聚的刚度矩阵,x表示缩聚特征向量,表示缩聚特征值;表示缩聚的质量矩阵;表示缩聚特征值的最小值;表示缩聚特征值的最大值。
9.根据权利要求1所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,s5中,根进程使用mpi广播函数mpi_bcast将所述缩聚特征向量传递给每个进程。
10.根据权利要求6所述的面向分布式计算的自动多重子结构数据处理方法,其特征在于,s6中,进程中节点的局部特征向量的计算公式为: