CN112446004A - 非结构网格dilu预条件子众核并行优化算法 - Google Patents
非结构网格dilu预条件子众核并行优化算法 Download PDFInfo
- Publication number
- CN112446004A CN112446004A CN201910799250.9A CN201910799250A CN112446004A CN 112446004 A CN112446004 A CN 112446004A CN 201910799250 A CN201910799250 A CN 201910799250A CN 112446004 A CN112446004 A CN 112446004A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- core
- blocks
- many
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种非结构网格DILU预条件子众核并行优化算法,包括以下步骤:S1、对所有的从核进行编号,建立众核通信模型;S2、对数组进行分块、编号,各核按块拷入数据,同时按块拷入相应的和;S3、依次确定各块的依赖关系;S4、根据依赖关系,第0块遍历计算一遍,将0号块的值全部更新,同时生成数据数组,发送至后面的块;S5、根据依赖关系,其余块接收来自前在先块的数据,遍历计算后,更新块内数据,同时生成数据数组,发送至后面的块;S6、当某一从核完成更新并将数据发送给需要的核之后,重新拷入新的块。本发明对科学计算领域常见的预条件子并行问题进行代码级优化,极大减少预处理时间,提高优化效率,对大规模线性方程组求解的性能提升效果更加显著。
Description
技术领域
本发明涉及一种非结构网格DILU预条件子众核并行优化算法,属于计算机技术领域。
背景技术
在对自然科学实际问题进行数值模拟时,最后都归结为求解一个大型稀疏矩阵方程组。在迭代求解中,迭代矩阵的收敛性和收敛速度的改善不仅取决于迭代方法和迭代矩阵中参数的选取,而且和方程组自身的某些变化密切相关,特别是预条件子的引入,大大加快了迭代的收敛性和收敛速度。因此,对预条件子的研究具有深刻意义。
DILU预条件子是一类典型的预条件子,通过其预处理,迭代矩阵具有很好的收敛效果。但由于其存在数据相关性,DILU预条件子并行化比较困难。目前对具有数据相关性的非结构网格下稀疏矩阵预条件子并行优化,其主要方法是采用分层方案。但是该分层方案仅适合稀疏矩阵非零元素不要太少、层数不要太多、每层并行度不要太少、数据相关性不要太强等情况。对于极其没有规律的非结构网格问题下的稀疏矩阵,其数据相关性比较强,往往没有比较好的普遍适用的并行优化算法,在网格规模增大时,该问题对计算效率带来的负面影响呈倍数增长,有时甚至成为应用系统的主要瓶颈之一。因此,如何解决大规模求解中,预处理开销时间过长问题带来的性能瓶颈,,成为本领域技术人员努力的方向。
发明内容
本发明的目的是提供一种非结构网格DILU预条件子众核并行优化算法,该非结构网格DILU预条件子众核并行优化算法对科学计算领域常见的预条件子并行问题进行代码级优化,极大减少预处理时间,提高优化效率,对大规模线性方程组求解的性能提升效果更加显著。
为达到上述目的,本发明采用的技术方案是:一种非结构网格DILU预条件子众核并行优化算法,包括以下步骤:
S1、对所有的从核进行编号,将从核阵列分为第一核组、第二核组和第三核组,建立众核通信模型,其中,所述第一核组为通信、计算核,用于计算数据,并将数据发送给其它需要的核,所述第二核组和第三核组为路由、存储核,用于数据转发传输以及对缓冲数据进行存储,其中,第二核组用于接收列发送消息,第三核组用于接收行发送消息;
S2、对网格单元中需要计算的物理量wPtr数组进行分块,并对块进行编号,各核按块拷入wPtr数组,同时按块拷入相应的rDPtr数组和lowerPtr数组;
S3、按照块的编号及编号位于矩阵中行、列坐标值I与U的对应关系,依次确定各块的依赖关系,针对每一块,确定以下信息:块的编号、由哪个编号的从核负责计算、依赖于前面哪几个块、更新后面哪几个块;
S4、根据依赖关系,第0块遍历计算一遍,将0号块的数据全部更新,同时根据块内更新后的数据生成数据数组,发送至后面的块;
S5、根据依赖关系,其余块接收来自前在先块的数据,遍历计算后,更新块内数据,同时根据块内更新后的数据生成数据数组,发送至后面的块;
S6、当某一从核完成更新并将数据发送给需要的核之后,重新拷入新的块。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明非结构网格DILU预条件子众核并行优化算法,对科学计算领域常见的预条件子并行问题进行代码级优化,极大减少预处理时间,提高优化效率,对大规模线性方程组求解的性能提升效果更加显著,且该算法具有普遍适用性,天然适用于非结构网格,适用于任何具有数据相关性问题的预条件子处理,对于数据依赖性特别强类型的稀疏矩阵,也能够具有比较明显的加速效果。
附图说明
附图1为本发明众核通信模型示意图;
附图2为本发明模型示意图;
附图3为本发明非结构网格DILU预条件子众核并行优化算法流程图。
具体实施方式
实施例:一种非结构网格DILU预条件子众核并行优化算法,包括以下步骤:
S1、对所有的从核进行编号,将从核阵列分为第一核组、第二核组和第三核组,建立众核通信模型,其中,所述第一核组为通信、计算核,用于计算数据,并将数据发送给其它需要的核,所述第二核组和第三核组为路由、存储核,用于数据转发传输以及对缓冲数据进行存储,其中,第二核组用于接收列发送消息,第三核组用于接收行发送消息;
S2、对网格单元中需要计算的物理量wPtr数组进行分块,并对块进行编号,各核按块拷入wPtr数组,同时按块拷入相应的rDPtr数组和lowerPtr数组;
S3、按照块的编号及编号位于矩阵中行、列坐标值I与U的对应关系,依次确定各块的依赖关系,针对每一块,确定以下信息:块的编号、由哪个编号的从核负责计算、依赖于前面哪几个块、更新后面哪几个块;
S4、根据依赖关系,第0块遍历计算一遍,将0号块的数据全部更新,同时根据块内更新后的数据生成数据数组,发送至后面的块;
S5、根据依赖关系,其余块接收来自前在先块的数据,遍历计算后,更新块内数据,同时根据块内更新后的数据生成数据数组,发送至后面的块;
S6、当某一从核完成更新并将数据发送给需要的核之后,重新拷入新的块。
实施例进一步解释如下:
在科学计算领域,普遍存在离散访存问题和数据依赖问题。在网格规模较大时,离散宽度也呈倍数增加,离散访存问题越突出,与此同时,一个数值的更新依赖于另一个数值的更新。如果简单地进行众核并行化处理,那么可能一个从核的计算依赖于另一个从核的计算完成,同时所有数据都需要重排,增加了额外时间开销,重排时间可能比单核计算还要长。
因此,提出另外一种并行优化方案,基于分块的众核流水线并行,具体算法如下:
Step1:建立众核通信模型,红色核为通信、计算核,用于计算数据,并将数据发送给其它需要的核;黄色和蓝色核为路由、存储核,用于数据转发传输,以及对一些数据进行存储;
Step2:对wPtr数组进行分块,各核按块拷入wPtr数据,同时按块拷入相应的rDPtr和lowerPtr,wPtr数组表示网格单元中要计算的物理量,例如速度,压力;lowerPtr数组表示周边网格对该网格单元施加的影响因子;rDPtr数组表示网格单元自身的一个物理系数,这三个数组是构成DILU通用方程的重要参数。
Step3:wPtr值的更新,实际上按照如下的过程进行:
开始时,第0块w数据,进行计算与更新。
首先:我们看一下块的依赖关系:
块编号 | 由哪个编号从核负责计算 | 依赖于前面哪几个块 | 更新后面哪几个块 |
0 | 2 | 无 | 1,3,5,10 |
根据这样的依赖关系,我们知道0号块不需要接收其它核发送的消息,因此,当它遍历计算一遍后,0号块的值就能够完全得到更新,同时,这些更新值就要更新后面的块。根据上面的依赖关系,它需要发送给4个块。
然后,第1块w数据,它最多依赖于第0块,所以它收到第0块发给它的数据后,那么它就可以进行计算与更新。
首先:我们看一下1号块的依赖关系:
块编号 | 由哪个编号从核负责计算 | 依赖于前面哪几个块 | 更新后面哪几个块 |
1 | 3 | 0 | 2,3,15,47 |
根据这样的依赖关系,我们知道1号块在收到0号块发送的数据后,它就不需要再等其它块发给它数据了,此时,它可以自己更新自己的块,因此,当它遍历计算一遍后,1号块的值就能够完全得到更新,同时,这些更新值就要更新后面的块。根据上面的依赖关系,它需要发送给4个块。
然后,第2块w数据,它最多依赖于第1块,所以它收到第1块发给它的数据后,那么它就可以进行计算与更新。
首先:我们看一下2号块的依赖关系:
块编号 | 由哪个编号从核负责计算 | 依赖于前面哪几个块 | 更新后面哪几个块 |
2 | 4 | 1 | 3,68 |
根据这样的依赖关系,我们知道2号块在收到1号块发送的数据后,它就不需要再等其它块发给它数据了,此时,它可以自己更新自己的块,因此,当它遍历计算一遍后,2号块的值就能够完全得到更新,同时,这些更新值就要更新后面的块。根据上面的依赖关系,它需要发送给2个块。
以此类推,从而实现了计算过程。
因为在矩阵下三角部分,I数组表示的矩阵元素是列坐标,u数组表示的是矩阵元素所在的行坐标,对于同一i值,在于I(i)的值,不一定大于u(i)的值。矩阵元素在稀疏矩阵下三角部分中的存储,是按照列方向来存储的,因此如果对矩阵数据分块,那么自然后一个矩阵块的计算依赖于前一个矩阵块的计算。
在整个计算过程中,同一时刻,平均有6-8个核参与计算,其它核或者处于等待状态,或者处于数据读写状态,因此,等效并行度为6-8左右。同时,当某一从核完成更新,并且将数据发送给需要的核之后,该核可以重新拷入新的块,这样,实现了数据访问与计算时间重叠,从而实现了流水线并行化。
经过上述优化后,可以发现整个过程中,没有重排过程,没有对主存的离散访问,解决了离散访存问题,同时,通过合理的设置,其可以解决任意规模网格问题(理论上适用于千万以上规模网格)。综合其它一些优化,实际课题测试表明,即使在10万网格规模下,基本能够并行加速3.5倍以上,随着网格规模的增加,并行加速效果更好,能够有效地提高了此类问题的计算效率,优化效果显著。
采用上述非结构网格DILU预条件子众核并行优化算法时,其对科学计算领域常见的预条件子并行问题进行代码级优化,极大减少预处理时间,提高优化效率,对大规模线性方程组求解的性能提升效果更加显著,且该算法具有普遍适用性,天然适用于非结构网格,适用于任何具有数据相关性问题的预条件子处理,对于数据依赖性特别强类型的稀疏矩阵,也能够具有比较明显的加速效果。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
预条件子:英文为preconditioner,在大型稀疏矩阵线性方程组中,为了降低方程组求解中矩阵的条件数,提高收敛速度,常用预处理方法将原方进行等价转化,于是引入预条件子,可大大加快迭代的收敛性。因此,对预条件子的研究具有深刻意义。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种非结构网格DILU预条件子众核并行优化算法,其特征在于:包括以下步骤:
S1、对所有的从核进行编号,将从核阵列分为第一核组、第二核组和第三核组,建立众核通信模型,其中,所述第一核组为通信、计算核,用于计算数据,并将数据发送给其它需要的核,所述第二核组和第三核组为路由、存储核,用于数据转发传输以及对缓冲数据进行存储,其中,第二核组用于接收列发送消息,第三核组用于接收行发送消息;
S2、对网格单元中需要计算的物理量wPtr数组进行分块,并对块进行编号,各核按块拷入wPtr数组,同时按块拷入相应的rDPtr数组和lowerPtr数组;
S3、按照块的编号及编号位于矩阵中行、列坐标值I与U的对应关系,依次确定各块的依赖关系,针对每一块,确定以下信息:块的编号、由哪个编号的从核负责计算、依赖于前面哪几个块、更新后面哪几个块;
S4、根据依赖关系,第0块遍历计算一遍,将0号块的数据全部更新,同时根据块内更新后的数据生成数据数组,发送至后面的块;
S5、根据依赖关系,其余块接收来自前在先块的数据,遍历计算后,更新块内数据,同时根据块内更新后的数据生成数据数组,发送至后面的块;
S6、当某一从核完成更新并将数据发送给需要的核之后,重新拷入新的块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910799250.9A CN112446004B (zh) | 2019-08-28 | 2019-08-28 | 非结构网格dilu预条件子众核并行优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910799250.9A CN112446004B (zh) | 2019-08-28 | 2019-08-28 | 非结构网格dilu预条件子众核并行优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112446004A true CN112446004A (zh) | 2021-03-05 |
CN112446004B CN112446004B (zh) | 2023-07-07 |
Family
ID=74741796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910799250.9A Active CN112446004B (zh) | 2019-08-28 | 2019-08-28 | 非结构网格dilu预条件子众核并行优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112446004B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024082665A1 (zh) * | 2022-10-18 | 2024-04-25 | 华为技术有限公司 | 预条件子处理方法、装置、设备及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609393A (zh) * | 2012-02-08 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种线性方程组的数据处理方法及装置 |
EP2549379A1 (en) * | 2011-07-20 | 2013-01-23 | Renesas Electronics Corporation | Arithmetic and control unit, arithmetic and control method, program and parallel processor |
US20170046179A1 (en) * | 2015-08-13 | 2017-02-16 | Altera Corporation | Application-based dynamic heterogeneous many-core systems and methods |
CN109145255A (zh) * | 2018-06-11 | 2019-01-04 | 山东省计算中心(国家超级计算济南中心) | 一种稀疏矩阵lu分解行更新的异构并行计算方法 |
-
2019
- 2019-08-28 CN CN201910799250.9A patent/CN112446004B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2549379A1 (en) * | 2011-07-20 | 2013-01-23 | Renesas Electronics Corporation | Arithmetic and control unit, arithmetic and control method, program and parallel processor |
CN102609393A (zh) * | 2012-02-08 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 一种线性方程组的数据处理方法及装置 |
US20170046179A1 (en) * | 2015-08-13 | 2017-02-16 | Altera Corporation | Application-based dynamic heterogeneous many-core systems and methods |
CN109145255A (zh) * | 2018-06-11 | 2019-01-04 | 山东省计算中心(国家超级计算济南中心) | 一种稀疏矩阵lu分解行更新的异构并行计算方法 |
Non-Patent Citations (1)
Title |
---|
张爱民;安虹;姚文军;梁伟浩;江霞;李丰;: "基于Intel Xeon Phi的稀疏矩阵向量乘性能优化", 小型微型计算机系统, no. 04 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024082665A1 (zh) * | 2022-10-18 | 2024-04-25 | 华为技术有限公司 | 预条件子处理方法、装置、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112446004B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145255B (zh) | 一种稀疏矩阵lu分解行更新的异构并行计算方法 | |
US20070011637A1 (en) | Method and system for performing local geometrical operation on a hierarchical layout of a semiconductor device | |
Notay | An efficient parallel discrete PDE solver | |
CN111915011B (zh) | 一种单振幅量子计算模拟方法 | |
CN112597610B (zh) | 机械臂结构轻量化设计的优化方法、装置及设备 | |
Zhao et al. | Power grid analysis with hierarchical support graphs | |
WO2024007652A1 (zh) | 一种大型稀疏矩阵加速求解方法、系统及存储介质 | |
EP2058740A1 (en) | High-speed calculation process method of combination equation based on finite element method and boundary element method | |
CN111931939A (zh) | 一种单振幅量子计算模拟方法 | |
CN112632874A (zh) | 一种直升机流场数值模拟的优化方法及系统 | |
CN112446004A (zh) | 非结构网格dilu预条件子众核并行优化算法 | |
CN112560356A (zh) | 面向众核架构的稀疏矩阵向量乘众核优化方法 | |
CN108038304B (zh) | 一种利用时间局部性的格子玻尔兹曼方法并行加速方法 | |
Ina et al. | Iterative methods with mixed-precision preconditioning for ill-conditioned linear systems in multiphase CFD simulations | |
Altinkaynak | An efficient sparse matrix‐vector multiplication on CUDA‐enabled graphic processing units for finite element method simulations | |
CN115906684A (zh) | 面向申威架构的流体动力学多重网格求解器并行优化方法 | |
CN116226587A (zh) | 一种辐射流体力学方程组amg并行优化方法及系统 | |
Mayumi et al. | Left-preconditioned communication-avoiding conjugate gradient methods for multiphase CFD simulations on the K computer | |
Gonzaga de Oliveira | An evaluation of heuristic methods for the bandwidth reduction of large-scale graphs | |
Yamaguchi et al. | Low-order finite element solver with small matrix-matrix multiplication accelerated by ai-specific hardware for crustal deformation computation | |
CN112966456B (zh) | 一种提高量子计算效率的电路设计方法和系统 | |
CN112527394A (zh) | 基于指令序列与消息序列指引的深度依赖问题并行方法 | |
CN117056090B (zh) | 非结构隐式lusgs线程并行方法、设备、介质及系统 | |
CN118171710B (zh) | 一种稀疏矩阵乘法的npu加速方法 | |
Fedon-Magnaud et al. | Coarse mesh methods for the transport calculation in the cronos reactor code |
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 |