CN111651208A - 面向异构众核并行计算机的模态并行计算方法及系统 - Google Patents

面向异构众核并行计算机的模态并行计算方法及系统 Download PDF

Info

Publication number
CN111651208A
CN111651208A CN202010382704.5A CN202010382704A CN111651208A CN 111651208 A CN111651208 A CN 111651208A CN 202010382704 A CN202010382704 A CN 202010382704A CN 111651208 A CN111651208 A CN 111651208A
Authority
CN
China
Prior art keywords
matrix
core
equation
group
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010382704.5A
Other languages
English (en)
Other versions
CN111651208B (zh
Inventor
喻高远
金先龙
马志强
李俊杰
王倩
廖鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202010382704.5A priority Critical patent/CN111651208B/zh
Publication of CN111651208A publication Critical patent/CN111651208A/zh
Application granted granted Critical
Publication of CN111651208B publication Critical patent/CN111651208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Abstract

本发明提供了一种面向异构众核并行计算机的模态并行计算方法及系统,包括如下步骤:步骤S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;步骤S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流。本发明通过分层策略实现了计算过程和数据通信的分层,将大量数据通信限定在各核组内部,充分发挥国产异构众核并行计算机核组内通信速率较高的优势。

Description

面向异构众核并行计算机的模态并行计算方法及系统
技术领域
本发明涉及计算机技术领域,具体地,涉及面向异构众核并行计算机的模态并行计算方法及系统。
背景技术
随着交通运输业、能源勘探与开发业和航空航天业等的发展,对于大型、特大型装备的需求越来越多,如:高速动车组、3000m超深钻机、大飞机、跨江隧道等。这些特殊装备系统的研制往往涉及大规模复杂动力学系统的计算,而模态分析则是其最耗费时间的计算环节,也是其余计算环节的基础,需借助大规模有限元模型进行高性能计算,故而对传统串行有限元计算方法和工具形成了挑战。传统串行计算是以牺牲大型、特大型装备局部关键细节进行简化建模来保证计算效率,因而造成局部关键细节预测能力和大量密集模态的丢失,计算精度较低,无法满足其系统级高精度高效率数值分析的需求。随着并行计算机的快速发展,利用并行计算机研究和开发相应的并行算法则为大型、特大型装备系统模态的求解提供了切实可行的途径,正逐步成为各国学者的研究热点。
在硬件方面,异构众核分布式存储并行计算机具备计算能力强、性能功耗比高等优点,已成为当前超级计算机的重要发展方向,典型的异构众核处理器包括Intel的MIC、Nvidia和AMD的GPU、Godson-T以及神威众核处理器等。目前国内外基于神威众核处理器架构的模态并行求解算法尚未见有关研究,而基于神威众核处理器架构的并行计算机-“神威太湖之光”在峰值性能、持续性能、性能功耗比3项关键指标均居于世界第一。因此,利用基于神威众核处理器架构的并行计算机进行模态并行计算研究对于提高大型、超大型装备系统模态的计算规模、计算精度和计算效率具有重要意义。考虑到“神威太湖之光”并行计算机核组内通信时间远小于核组间通信,且其访存能力较弱,故利用“神威太湖之光”并行计算机提高并行效率的关键在于处理好大规模数据的存储以及各计算核心间的通信和协作问题。
经对现有技术文献的检索发现,模态分析的数学实质可以归结为大型稀疏矩阵的广义特征值问题,该类问题的求解大多基于子空间类投影技术,主要包括Davidson类子空间方法和Krylov类子空间方法等。Davidson类子空间方法主要用于求解对角占优的对称矩阵特征值问题,其问题适应性不如Krylov类子空间方法。Krylov类子空间方法可以追溯到20世纪50年代提出的Lanczos算法和Arnoldi算法。后来国内外诸多学者在Lanczos算法和Arnoldi算法的基础上进行了一系列重启动改进,比较著名的是:Arnoldi/Lanczos算法、Krylov-Schur算法、加速子空间迭代法等。三种算法在数学上具有等价性,是目前Krylov类子空间算法中的主流算法。与前两种算法相比,加速子空间迭代法更容易收敛,且代码实现难度较低。国内外尚无基于国产神威异构并行计算机和加速子空间迭代法的模态并行计算的相关研究。
发明内容
本发明针对现有技术的不足,提出一种面向国产神威异构众核并行计算机的模态并行计算方法及系统。
根据本发明提供的一种面向异构众核并行计算机的模态并行计算方法,包括如下步骤:
步骤S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
步骤S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
步骤S3:令各核组通过核组间相互通信及核组内通信,利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
步骤S4:各核组同步进行第一指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
步骤S5:核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和第二指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后返回矩阵运算步骤继续执行。
优选地,所述步骤S1中,所述子区域是指经分区软件对有限元模型刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数相等。
优选地,所述步骤S3中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算。
优选地,所述步骤S3中,所述预处理线性方程组如下式(1)所示:
(K-σM)x=M (1)
其中,
K表示大规模、超大规模装置系统的整体刚度矩阵;
M表示大规模、超大规模装置系统的整体质量矩阵;
σ表示表示广义特征方程的移位值;
x表示广义特征方程的特征向量。
优选地,所述步骤S4中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示:
AA*ν=λj*BB*ν (2)
其中,
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
λj表示第j次迭代所求得的特征值;
ν表示该特征值对应的特征向量。
优选地,所述步骤S4中,所述第一指定矩阵运算如下式(3)~(7)所示;
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
As为所述步骤S3中预处理方程的求解结果;
Y为中间计算结果;
Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(9)计算所得;式(8)表示将VV/LL’后的值作为新的向量空间VV,重新对VV进行赋值;
VV为v构成的向量空间;
LL为BBB做Cholesky分解产生的上三角矩阵LL;
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
*表示矩阵乘法;
’表示矩阵转置;
Y’表示矩阵Y的转置矩阵;
E表示与Y同阶的单位矩阵;
BBB表示中间计算矩阵,用以储存数据。
优选地,所述步骤S5中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述第二指定矩阵运算是指公式(6)至(8)。
根据本发明提供的一种面向异构众核并行计算机的模态并行计算系统,包括如下模块:
模块S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
模块S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
模块S3:令各核组通过核组间相互通信及核组内通信,利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
模块S4:各核组同步进行第一指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
模块S5:核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和第二指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后返回矩阵运算模块继续执行。
优选地,所述模块S1中,所述子区域是指经分区软件对有限元模型刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数相等;
所述模块S3中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算;
所述模块S3中,所述预处理线性方程组如下式(1)所示:
(K-σM)x=M (1)
其中,
K表示大规模、超大规模装置系统的整体刚度矩阵;
M表示大规模、超大规模装置系统的整体质量矩阵;
σ表示表示广义特征方程的移位值;
x表示广义特征方程的特征向量;
所述模块S4中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示:
AA*ν=λj*BB*ν (2)
其中,
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
λj表示第j次迭代所求得的特征值;
ν表示该特征值对应的特征向量;
所述模块S4中,所述第一指定矩阵运算如下式(3)~(7)所示;
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
As为所述模块S3中预处理方程的求解结果;
Y为中间计算结果;
Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(9)计算所得;式(8)表示将VV/LL’后的值作为新的向量空间VV,重新对VV进行赋值;
VV为v构成的向量空间;
LL为BBB做Cholesky分解产生的上三角矩阵LL;
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
*表示矩阵乘法;
’表示矩阵转置;
Y’表示矩阵Y的转置矩阵;
E表示与Y同阶的单位矩阵;
BBB表示中间计算矩阵,用以储存数据。
优选地,所述模块S5中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述第二指定矩阵运算是指公式(6)至(8)。
与现有技术相比,本发明具有如下的有益效果:
1、无论大规模、超规模装置系统的模态刚度矩阵还是质量矩阵均可通过多文件流的方式存储在相应的各个核组主核上,各个核组所属从核可以同步访问主核数据进行计算,从而利用国产神威异构众核并行计算机的体系结构特点降低各核组主核访存数据总量以提高模态并行计算效率;
2、通过分层策略实现了计算过程和数据通信的分层,将大量数据通信限定在各核组内部,充分发挥国产异构众核并行计算机核组内通信速率较高的优势;
3、各核组并行求解预处理方程,计算结果分布式存储在各核组主核上,与之有关的矩阵向量运算数据皆对应存储在各核组主核上,有利于减小矩阵向量运算时的全局通信;
4、采用一个核组对于等效广义特征方程进行求解,可充分利用广义特征方程两端系数矩阵阶数较小的特点,避免不必要的全局通信。
5、本发明通过计算过程和通信的分层,进而最大程度地限定全局通信量,各计算过程所涉及的数据均可通过多文件流读取的形式存储在对应的核组主核上,各核组从核可同时访问主核数据进行计算,并将计算结果回传至主核,可充分利用“神威太湖之光”国产异构众核并行计算机体系结构特点提高大规模、超大规模装置系统级模态的并行计算效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的面向异构众核并行机的模态并行计算流程示意图;
图2为本发明实施例中的加速子空间算法流程示意图;
图3为本发明实施例中的基于神威异构众核处理器的矩阵向量乘法实现原理代码示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种面向异构众核并行计算机的模态并行计算方法,包括如下步骤:
步骤S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
步骤S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
步骤S3:令各核组通过核组间相互通信及核组内通信,利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
步骤S4:各核组同步进行第一指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
步骤S5:核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和第二指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后返回矩阵运算步骤继续执行。
具体地,所述步骤S1中,所述子区域是指经分区软件对有限元模型刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数相等。
具体地,所述步骤S3中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算。
具体地,所述步骤S3中,所述预处理线性方程组如下式(1)所示:
(K-σM)x=M (1)
其中,
K表示大规模、超大规模装置系统的整体刚度矩阵;
M表示大规模、超大规模装置系统的整体质量矩阵;
σ表示广义特征方程的移位值;
x表示广义特征方程的特征向量。
具体地,所述步骤S4中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示:
AA*ν=λj*BB*ν (2)
其中,
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
λj表示第j次迭代所求得的特征值;
ν表示该特征值对应的特征向量。
具体地,所述步骤S4中,所述第一指定矩阵运算如下式(3)~(7)所示;
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
As为所述步骤S3中预处理方程的求解结果;
Y为中间计算结果;
Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(9)计算所得;式(8)表示将VV/LL’后的值作为新的向量空间VV,重新对VV进行赋值;
VV为v构成的向量空间;
LL为BBB做Cholesky分解产生的上三角矩阵LL;
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
*表示矩阵乘法;
’表示矩阵转置;
Y’表示矩阵Y的转置矩阵;
E表示与Y同阶的单位矩阵;
BBB表示中间计算矩阵,用以储存数据。
具体地,所述步骤S5中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述第二指定矩阵运算是指公式(6)至(8)。
本发明提供的面向异构众核并行计算机的模态并行计算系统,可以通过本发明给的面向异构众核并行计算机的模态并行计算方法的步骤流程实现。本领域技术人员可以将所述面向异构众核并行计算机的模态并行计算方法,理解为所述面向异构众核并行计算机的模态并行计算系统的一个优选例。
根据本发明提供的一种面向异构众核并行计算机的模态并行计算系统,包括如下模块:
模块S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
模块S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
模块S3:令各核组通过核组间相互通信及核组内通信,利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
模块S4:各核组同步进行第一指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
模块S5:核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和第二指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后返回矩阵运算模块继续执行。
具体地,所述模块S1中,所述子区域是指经分区软件对有限元模型刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数相等;
所述模块S3中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算;
所述模块S3中,所述预处理线性方程组如下式(1)所示:
(K-σM)x=M (1)
其中,
K表示大规模、超大规模装置系统的整体刚度矩阵;
M表示大规模、超大规模装置系统的整体质量矩阵;
σ表示广义特征方程的移位值;
x表示广义特征方程的特征向量;
所述模块S4中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示:
AA*ν=λj*BB*ν (2)
其中,
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
λj表示第j次迭代所求得的特征值;
ν表示该特征值对应的特征向量;
所述模块S4中,所述第一指定矩阵运算如下式(3)~(7)所示;
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
As为所述模块S3中预处理方程的求解结果;
Y为中间计算结果;
Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(9)计算所得;式(8)表示将VV/LL’后的值作为新的向量空间VV,重新对VV进行赋值;
VV为v构成的向量空间;
LL为BBB做Cholesky分解产生的上三角矩阵LL;
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
*表示矩阵乘法;
’表示矩阵转置;
Y’表示矩阵Y的转置矩阵;
E表示与Y同阶的单位矩阵;
BBB表示中间计算矩阵,用以储存数据。
具体地,所述模块S5中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述第二指定矩阵运算是指公式(6)至(8)。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
如图1所示,一种面向国产异构众核并行计算机的模态并行计算流程图:首先经分区软件将生成的大规模、超大规模装置系统的刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的刚度矩阵和质量矩阵数据单独保存于一个文件中;接着各核组主核同步读取各子区域对应的刚度矩阵和质量矩阵数据;然后各核组通过核组间相互通信及核组内通信利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;接着各核组同步进行指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;最后核组0利用QZ法求解等效广义特征方程,若迭代结束则输出结果,否则核组0进行Cholesky分解和指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后重新进行指定矩阵运算。调用的超级计算机的计算单元是核组,调用多少个核组,核组会依次从0,1,2……依次编号。所述组集指组合或者组成,就是各个核组把数据传递至0号核组后,数据是分散在对应的存储空间上,运算时将这些数据组合成一个大的数据组。
本实例中考虑系统刚度矩阵和质量矩阵阶数为n的装置模态并行求解,求解模态阶数为m。并行计算的硬件条件为:启动p台核组机,每个核组机内具有65个处理器内核,包含1个主核和64个从核,核组机间通过高性能网络互联,主核与从核之间通过DMA方式批量访问主存,测试使用的从核数量为64。
下面按照系统求解的先后顺序依次作详细介绍:
第一步,利用分区软件将n阶模态刚度矩阵、质量矩阵平均剖分为p个子区域,并将每个子区域的模态刚度矩阵、质量矩阵数据信息单独保存在一个文件中。各子区域的编号分别为:子区域0、子区域1、…、子区域p。各核组主核的编号分别为:主核0、主核1、…、主核p。
第二步,各核组主核按照主核编号依次读取对应分区编号的模态刚度矩阵、质量矩阵数据文件,并存在核组主核对应的内存空间中。其中:主核0负责读取子区域0对应的数据文件;主核1负责读取子区域1对应的数据文件;…;主核p负责读取子区域p对应的数据文件。
第三步,各核组通过相互通信利用并行SuperLU算法联立求解预处理方程,如式(1)所示,并将计算结果分布式存储在预定义的对应各核组主核向量As中。
(K-σM)x=M (1)
第四步,各核组通过相互通信利用加速子空间迭代法形成等效广义特征方程,如式(2)所示,AA为方程左端等效矩阵,BB为方程右端等效矩阵,λj为第j次迭代所求得的特征值,ν为该特征值对应的特征向量。。
AA*ν=λj*BB*ν (2)
加速子空间迭代法的计算流程如图2所示,等效广义特征方程的形成如图2(2)中步骤(a)~(d)所示,具体来讲:首先,按照主核向量As中存储方式各核组随机初始化向量Q,并依次定义好相应的向量Y、AA、BB、VV、EE、BBB、LL;接着各核组64个从核依次访问主核读取数据,同步进行式(3)~(5)的计算;最后,各核组相互通信并将最终计算结果数据传递至核组0,核组0通过组集各核组传递数据形成等效广义特征方程。
Y=As*Q (3)
AA=Y’*(As*Y) (4)
BB=Y’*(E*Y) (5)
第五步,核组0按照图2(2)步骤(d)利用QZ法求解等效广义特征方程,并按照步骤(e)进行模态特征值求解结果精度判定。若满足要求,则按照图2(4)输出结果;若不满足要求,则核组0中64个从核按照图2(2)步骤(f)~(h)依次计算式(6)~(7)。并将计算结果VV中数据结果依次传递至其余核组,VV为v构成的向量空间,LL为BBB做Cholesky分解产生的上三角矩阵LL。其余核组同步进行式(8)中所属部分数据计算,形成向量Q中的各核组对应部分的数据后,重新进行第四步的运算
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (6)
VV=VV/LL’ (7)
Q=Y*VV (8)
各核组进行式(3)~(8)的矩阵向量运算时,采用64从核依次对应主核循环访问小于64KB的数据进行计算并将计算结果返回至原数据位置,考虑到式(3)~(8)皆为矩阵向量运算,以核组0中对应式(3)中数据运算为例,基于神威异构众核处理器的矩阵向量乘法实现原理代码示意图如图3所示。
优选例2:
一种面向异构众核并行计算机的模态并行计算方法,本发明程序算法对应的异构众核计算机处理器部分由多个核组进行,包括如下步骤:
第一步,经分区软件将通过有限元程序生成的大规模、超大规模装置系统的刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
第二步,进行并行计算的各核组主核同步读取各子区域对应的刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
第三步,各核组通过核组间相互通信及核组内通信利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
本发明程序算法对应的异构众核计算机处理器部分由多个核组进行,核组内的数据传递称之为核组内通信,各个核组之间的数据传递称之为核组间通信;
第四步,各核组同步进行指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
第五步,核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后从第四步重新开始执行。
所述第一步中,所述子区域是指经分区软件对大规模、超大规模装置系统的刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数大致相等。
所述第三步中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算。
所述第三步中,所述预处理线性方程组的形式如下所示,K为大规模、超大规模装置系统的整体刚度矩阵,M为大规模、超大规模装置系统的整体质量矩阵。
(K-σM)x=M (1)
其中,σ表示广义特征方程的移位值,x表示广义特征方程的特征向量。
所述第四步中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示,所述方程左端等效矩阵AA为左端矩阵AA进行指定矩阵运算后所得,所述方程右端等效矩阵BB为右端矩阵BB进行指定矩阵运算后所得。其中:λj为第j次迭代所求得的特征值,ν为该特征值对应的特征向量。
AA*ν=λj*BB*ν (2)
所述第四步中,所述指定矩阵运算如式(3)~(7)所示。其中As为所述第3步中预处理方程的求解结果,Y为中间计算结果;Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(8)计算所得,VV为v构成的向量空间,LL为BBB做Cholesky分解产生的上三角矩阵LL。
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
AA方程左端等效矩阵
*表示矩阵乘法
’表示矩阵转置
Y’表示矩阵Y的转置矩阵
E表示与Y同阶的单位矩阵
BBB为中间计算矩阵,用以储存数据所述第五步中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述指定矩阵运算是指式(6)~(8)。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种面向异构众核并行计算机的模态并行计算方法,其特征在于,包括如下步骤:
步骤S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
步骤S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
步骤S3:令各核组通过核组间相互通信及核组内通信,利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
步骤S4:各核组同步进行第一指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
步骤S5:核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和第二指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后返回矩阵运算步骤继续执行。
2.根据权利要求1所述的面向异构众核并行计算机的模态并行计算方法,其特征在于,所述步骤S1中,所述子区域是指经分区软件对有限元模型刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数相等。
3.根据权利要求1所述的面向异构众核并行计算机的模态并行计算方法,其特征在于,所述步骤S3中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算。
4.根据权利要求1所述的面向异构众核并行计算机的模态并行计算方法,其特征在于,所述步骤S3中,所述预处理线性方程组如下式(1)所示:
(K-σM)x=M (1)
其中,
K表示大规模、超大规模装置系统的整体刚度矩阵;
M表示大规模、超大规模装置系统的整体质量矩阵;
σ表示广义特征方程的移位值;
x表示广义特征方程的特征向量。
5.根据权利要求1所述的面向异构众核并行计算机的模态并行计算方法,其特征在于,所述步骤S4中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示:
AA*ν=λj*BB*ν (2)
其中,
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
λj表示第j次迭代所求得的特征值;
ν表示该特征值对应的特征向量。
6.根据权利要求1所述的面向异构众核并行计算机的模态并行计算方法,其特征在于,所述步骤S4中,所述第一指定矩阵运算如下式(3)~(7)所示;
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
As为所述步骤S3中预处理方程的求解结果;
Y为中间计算结果;
Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(9)计算所得;式(8)表示将VV/LL’后的值作为新的向量空间VV,重新对VV进行赋值;
VV为v构成的向量空间;
LL为BBB做Cholesky分解产生的上三角矩阵LL;
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
*表示矩阵乘法;
’表示矩阵转置;
Y’表示矩阵Y的转置矩阵;
E表示与Y同阶的单位矩阵;
BBB表示中间计算矩阵,用以储存数据。
7.根据权利要求6所述的面向异构众核并行计算机的模态并行计算方法,其特征在于,所述步骤S5中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述第二指定矩阵运算是指公式(6)至(8)。
8.一种面向异构众核并行计算机的模态并行计算系统,其特征在于,包括如下模块:
模块S1:通过有限元程序生成有限元模型刚度矩阵、质量矩阵数据,将生成的有限元模型刚度矩阵、质量矩阵数据剖分为N个子区域,并将每个区域的有限元模型刚度矩阵和质量矩阵数据单独保存于一个文件中,其中N为单个核组的整数倍;
模块S2:令进行并行计算的各核组主核同步读取各子区域对应的有限元模型刚度矩阵和质量矩阵数据,各核组间无数据通信交流,核组内各从核间无数据通信交流;
模块S3:令各核组通过核组间相互通信及核组内通信,利用并行SuperLU算法并行求解预处理线性方程组,得到该方程组的求解结果后,分布式存储至各核组主核指定的向量存储空间;
模块S4:各核组同步进行第一指定矩阵运算,并将计算结果传递至核组0,核组0主核通过组集各核组传递数据形成等效广义特征方程;
模块S5:核组0利用QZ法求解等效广义特征方程;若迭代结束则输出结果,否则核组0进行Cholesky分解和第二指定矩阵运算,并将求解结果传递至各核组主核指定向量存储空间后返回矩阵运算模块继续执行。
9.根据权利要求8所述的面向异构众核并行计算机的模态并行计算系统,其特征在于,所述模块S1中,所述子区域是指经分区软件对有限元模型刚度矩阵、质量矩阵数据直接剖分所得,这些子区域的方程阶数相等;
所述模块S3中,所述并行SuperLU算法并行求解预处理线性方程组的数据分布式存储在各核组主核上,中间计算结果也以矩阵和向量积的形式分布式存储在各核组主核上,从核仅用于计算;
所述模块S3中,所述预处理线性方程组如下式(1)所示:
(K-σM)x=M (1)
其中,
K表示大规模、超大规模装置系统的整体刚度矩阵;
M表示大规模、超大规模装置系统的整体质量矩阵;
σ表示广义特征方程的移位值;
x表示广义特征方程的特征向量;
所述模块S4中,所述等效广义特征方程符合广义特征方程的一般形式,如下所示:
AA*ν=λj*BB*ν (2)
其中,
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
λj表示第j次迭代所求得的特征值;
ν表示该特征值对应的特征向量;
所述模块S4中,所述第一指定矩阵运算如下式(3)~(7)所示;
As=(K-σM)-1 (3)
Y=As*Q (4)
AA=Y’*(As*Y) (5)
BB=Y’*(E*Y) (6)
BBB=((VV’*BB*VV)’+(VV’*BB*VV))/2 (7)
VV=VV/LL’ (8)
Q=Y*VV (9)
其中,
As为所述模块S3中预处理方程的求解结果;
Y为中间计算结果;
Q在进行第一次运算时随机生成,进行其余循环运算时Q由式(6)~(9)计算所得;式(8)表示将VV/LL’后的值作为新的向量空间VV,重新对VV进行赋值;
VV为v构成的向量空间;
LL为BBB做Cholesky分解产生的上三角矩阵LL;
AA表示方程左端等效矩阵;
BB表示方程右端等效矩阵;
*表示矩阵乘法;
’表示矩阵转置;
Y’表示矩阵Y的转置矩阵;
E表示与Y同阶的单位矩阵;
BBB表示中间计算矩阵,用以储存数据。
10.根据权利要求9所述的面向异构众核并行计算机的模态并行计算系统,其特征在于,所述模块S5中,所述Cholesky分解是由64从核同步进行运算,求解结果存储在对应的核组主核上,所述第二指定矩阵运算是指公式(6)至(8)。
CN202010382704.5A 2020-05-08 2020-05-08 面向异构众核并行计算机的模态并行计算方法及系统 Active CN111651208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010382704.5A CN111651208B (zh) 2020-05-08 2020-05-08 面向异构众核并行计算机的模态并行计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010382704.5A CN111651208B (zh) 2020-05-08 2020-05-08 面向异构众核并行计算机的模态并行计算方法及系统

Publications (2)

Publication Number Publication Date
CN111651208A true CN111651208A (zh) 2020-09-11
CN111651208B CN111651208B (zh) 2023-06-20

Family

ID=72352281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010382704.5A Active CN111651208B (zh) 2020-05-08 2020-05-08 面向异构众核并行计算机的模态并行计算方法及系统

Country Status (1)

Country Link
CN (1) CN111651208B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764917A (zh) * 2020-12-29 2021-05-07 福建万润新能源科技有限公司 多单元系统间无主从并机运行与任务协同方法
CN117311948A (zh) * 2023-11-27 2023-12-29 湖南迈曦软件有限责任公司 Cpu与gpu异构并行的自动多重子结构数据处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527031A (zh) * 2008-08-20 2009-09-09 深圳先进技术研究院 一种光线投射多核并行体绘制方法
CN102707952A (zh) * 2012-05-16 2012-10-03 上海大学 嵌入式异构多核处理器上基于用户描述的程序设计方法
CN104714850A (zh) * 2015-03-02 2015-06-17 心医国际数字医疗系统(大连)有限公司 一种基于opencl的异构共同计算均衡方法
CN107329810A (zh) * 2016-04-28 2017-11-07 飞思卡尔半导体公司 用于多核处理器的信号机
CN110347967A (zh) * 2019-07-12 2019-10-18 上海交通大学 异构众核处理器的任意带状线性方程组两级分区两次缩聚并行计算的方法及系统
CN110362785A (zh) * 2019-06-13 2019-10-22 上海交通大学 基于多文件流的任意对角线性方程组并行求解方法和系统
CN110516316A (zh) * 2019-08-03 2019-11-29 电子科技大学 一种间断伽辽金法求解欧拉方程的gpu加速方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527031A (zh) * 2008-08-20 2009-09-09 深圳先进技术研究院 一种光线投射多核并行体绘制方法
CN102707952A (zh) * 2012-05-16 2012-10-03 上海大学 嵌入式异构多核处理器上基于用户描述的程序设计方法
CN104714850A (zh) * 2015-03-02 2015-06-17 心医国际数字医疗系统(大连)有限公司 一种基于opencl的异构共同计算均衡方法
CN107329810A (zh) * 2016-04-28 2017-11-07 飞思卡尔半导体公司 用于多核处理器的信号机
CN110362785A (zh) * 2019-06-13 2019-10-22 上海交通大学 基于多文件流的任意对角线性方程组并行求解方法和系统
CN110347967A (zh) * 2019-07-12 2019-10-18 上海交通大学 异构众核处理器的任意带状线性方程组两级分区两次缩聚并行计算的方法及系统
CN110516316A (zh) * 2019-08-03 2019-11-29 电子科技大学 一种间断伽辽金法求解欧拉方程的gpu加速方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764917A (zh) * 2020-12-29 2021-05-07 福建万润新能源科技有限公司 多单元系统间无主从并机运行与任务协同方法
CN112764917B (zh) * 2020-12-29 2023-06-20 福建万润新能源科技有限公司 多单元系统间无主从并机运行与任务协同方法
CN117311948A (zh) * 2023-11-27 2023-12-29 湖南迈曦软件有限责任公司 Cpu与gpu异构并行的自动多重子结构数据处理方法
CN117311948B (zh) * 2023-11-27 2024-03-19 湖南迈曦软件有限责任公司 Cpu与gpu异构并行的自动多重子结构数据处理方法

Also Published As

Publication number Publication date
CN111651208B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN108241890B (zh) 一种可重构神经网络加速方法及架构
Khaleghzadeh et al. A novel data-partitioning algorithm for performance optimization of data-parallel applications on heterogeneous HPC platforms
CN101706741B (zh) 一种基于负载平衡的cpu和gpu两级动态任务划分方法
Gerhold Overview of the hybrid RANS code TAU
CN111178519A (zh) 卷积神经网络加速引擎、卷积神经网络加速系统及方法
CN105528191B (zh) 数据累加装置、方法及数字信号处理装置
CN106201651A (zh) 神经形态芯片的模拟器
JP6784780B2 (ja) 大規模再生可能エネルギーのデータについて確率モデルを構築する方法
CN101717817B (zh) 对基于随机上下文无关文法的rna二级结构预测进行加速的方法
CN110390383A (zh) 一种基于幂指数量化的深度神经网络硬件加速器
CN111651208B (zh) 面向异构众核并行计算机的模态并行计算方法及系统
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN111640296B (zh) 交通流预测方法、系统、存储介质及终端
Dzafic et al. High performance power flow algorithm for symmetrical distribution networks with unbalanced loading
CN104536831B (zh) 一种基于多目标优化的多核SoC软件映射方法
Augonnet et al. A hierarchical fast direct solver for distributed memory machines with manycore nodes
CN115168283A (zh) 一种数据融合模块加速器及方法
CN109446478A (zh) 一种基于迭代和可重构方式的复协方差矩阵计算系统
Zhao et al. BaPipe: Exploration of balanced pipeline parallelism for DNN training
CN116303219A (zh) 一种网格文件的获取方法、装置及电子设备
Heuveline et al. Parallel smoothers for matrix-based geometric multigrid methods on locally refined meshes using multicore CPUs and GPUs
CN116128019A (zh) Transformer模型的并行训练方法及装置
Deng et al. CPU/GPU computing for an implicit multi-block compressible Navier-Stokes solver on heterogeneous platform
Mi et al. Balancing computation and communication in distributed sparse matrix-vector multiplication
Du et al. Providing GPU capability to LU and QR within the ScaLAPACK framework

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant