CN115795939A - 一种基于非结构网格的二维洪水过程多gpu模拟方法 - Google Patents
一种基于非结构网格的二维洪水过程多gpu模拟方法 Download PDFInfo
- Publication number
- CN115795939A CN115795939A CN202211368197.5A CN202211368197A CN115795939A CN 115795939 A CN115795939 A CN 115795939A CN 202211368197 A CN202211368197 A CN 202211368197A CN 115795939 A CN115795939 A CN 115795939A
- Authority
- CN
- China
- Prior art keywords
- sub
- grid
- edge
- region
- area
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于非结构网格的二维洪水过程多GPU模拟方法,该方法主要包括将三角形网格离散的计算区域划分为多个子区域;基于翼边数据结构对每个子区域进行运算生成第一类子区域网格拓扑关系;根据每个子区域与其相邻子区域在内部边界网格处数据交互生成第二类内边界网格拓扑关系;采用C++11的Thread类创建多线程,每个线程读取对应的控制参数及子区域地形、拓扑数据并初始化模型;根据内边界网格拓扑关系采用GPU间点对点通讯方式对相邻子区域进行水力要素信息的交互传输;在每个线程控制的GPU上求解二维浅水方程;本发明在非结构网格下对二维洪水过程进行多GPU加速模拟,与现有CPU多核并行和单GPU并行加速模拟方法相比,具有更高的计算效率。
Description
技术领域
本发明属于高性能数值模拟计算技术领域,涉及一种基于非结构网格的二维洪水过程多GPU模拟方法。
背景技术
洪水灾害危害巨大,世界上大部分国家每年均会受到洪水灾害的侵袭,从而造成严重的生命财产损失。为应对频发的水灾害问题,采用数值模型对洪水过程进行模拟预测,及时获取洪水可能造成的危害程度,将有利于减小甚至避免洪水造成的损失。由于洪水灾害具有尺度广、淹没面积大的特点,因此,以求解二维浅水方程为主的二维洪水模型在洪水灾害过程的预报模拟方面得到了广泛应用。
目前已有诸多学者建立了求解二维浅水方程的二维洪水模型,并且在计算稳定性及计算精度方面均取得了令人满意的结果。在计算效率方面,已有学者将CPU多核并行、自适应网格、单GPU并行等提升计算效率的加速技术应用到模型中,但面对大尺度的洪水过程模拟,这类方法的计算效率仍然较低。针对该问题,已有学者在结构网格离散的计算区域上实现了多GPU模拟,计算效率显著提升,但结构网格难以处理复杂的地形边界,并且在实现多GPU时必不可少的区域分解过程也受到一定限制,不能根据计算区域的实际情况进行灵活分解。因此,在确保模型计算稳定性及精度的前提下,如何实现非结构网格下的二维洪水过程多GPU模拟是该领域的一个难点问题。
发明内容
本发明的目的是提供一种基于非结构网格的二维洪水过程多GPU模拟方法,解决了现有技术中非结构网格下二维洪水过程模拟尺度小且模拟效率低的问题。
为了解决现有技术问题,本发明所采用的技术方案是,一种基于非结构网格的二维洪水过程多GPU模拟方法,包括如下步骤:
步骤1、采用非结构三角形网格对计算区域进行空间离散;
步骤2、对计算区域依据任务所用GPU数量分解出相应的子区域数量;
步骤3、基于翼边数据结构对每个子区域进行运算生成第一类子区域网格拓扑关系;
步骤4、根据每个子区域与其相邻子区域在内部边界网格处数据交互生成第二类内边界网格拓扑关系;
步骤5、采用C++11的Thread类创建多线程模型,每个线程控制一个GPU,每个GPU上运算一个子区域;
步骤6、通过读取控制参数、每个子区域地形数据、拓扑数据对多线程模型初始化;
步骤7、通过第二类内边界网格拓扑关系采用GPU间点对点通讯方式(P2P)对相邻子区域进行水力要素信息的交互传输;
步骤8、基于第一类子区域网格拓扑关系,在多线程模型的每一个线程控制的GPU上并行求解二维浅水方程得到洪水传播过程;二维浅水方程如下:
式中:t为时间,s;q为变量矢量包括水深h,两个方向上的单宽流量qx和qy;u、v为x、y方向上的流速;f、g为x、y方向上的通量矢量;S为源项矢量,包括降雨下渗源项i、底坡源项及摩阻力源项;zb河床底面高程,单位:m;Cf为床面摩擦系数,Cf=gn2/h1/3,其中n为曼宁系数;
步骤9、对多线程模型的每个线程同步,并比较每个计算子区域中计算得到的局部时间步长dt,选取最小的dt用于下一时间步的全局时间步长;
步骤10、判断模拟过程是否结束,若是,则结束模拟;若否,则返回步骤7。
进一步,步骤2中依据计算任务所用GPU数量分解出相应的子区域数量。区域分解的具体方法如下:
步骤2.1,依据数据交互量最小的原则,在计算区域中选择适当的边作为区域分割边,计算区域将沿该边被分解,此外该边将被用于两块共用该边的子区域间的数据交互;
步骤2.2,对计算区域网格进行分类。以逆时针方向作为网格拓扑构建的方向,遍历计算区域所有网格,若网格位于当前子区域的区域分割边的左边,则该网格属于当前子区域,便将该网格加入到该子区域的网格数据队列中。
进一步,所述步骤3的基于翼边数据结构对每个子区域进行运算生成第一类子区域网格拓扑关系过程:
基于翼边数据结构及相邻两个三角形共用一条边的原则,将每个子区域的网格拓扑关系保存在两个数据结构中,一是网格数据结构,该结构包含组成该网格的每条边的编号;二是边数据结构,该结构包含该边左边网格编号及右边网格编号;
进一步,所述步骤4中根据每个子区域与其相邻子区域在内部边界网格处数据交互生成第二类内边界网格拓扑关系过程:
步骤2完成后,计算区域已被分解为多个子区域,在其基础上依据相邻子区域的边界分割处的三角形网格共用一条边的原则,构建一个存储边界网格信息交互的数据结构,该结构包含当前边的编号,当前边相邻的网格编号,该网格位于该边相邻的子区域中。
本发明的有益效果是:
一种基于非结构网格的二维洪水过程多GPU模拟方法,该方法能够实现在非结构网格下的二维洪水过程大尺度高效模拟,同时计算过程稳定、结果精度较高,可实现对大尺度洪水过程的高效精确模拟,得到较为详细的洪水淹没过程,为洪水风险的分析提供有力的数据支撑。
附图说明
图1是本发明基于非结构网格的二维洪水过程多GPU模拟方法的某处非结构三角形网格计算区域分解图;
图2是本发明基于非结构网格的二维洪水过程多GPU模拟方法的结构流程图;
图3是本发明基于非结构网格的二维洪水过程多GPU模拟方法的模拟水深分布结果图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
如图1-2所示,一种基于非结构网格的二维洪水过程多GPU模拟方法,包括如下步骤:
步骤1、对预测洪水区域采用非结构三角形网格计算建立空间离散洪水区域;
步骤2、根据技术任务数量对空间离散洪水区域分解子区域;
步骤3、基于翼边数据结构建立每一个子区域的网格拓扑关系;
步骤4、建立每个子区域与其相邻子区域在边界网格处数据交互的拓扑关系;
步骤5、采用C++11的Thread类创建线程,每一个线程控制一个GPU,每一个GPU上运算一个子区域;
步骤6、读取模型参数控制文件,同时每个线程读取对应的子区域地形文件及网格拓扑文件并初始化模型;
步骤7、在一个时间步长内,拷贝子区域内部边界的水力要素变量到相邻的线程;相邻线程需等待当前线程拷贝传输的数据完成后,再继续执行;数据传输方式采用GPU间点对点通讯方式(P2P);
步骤8、在每个线程内,各子区域上的洪水传播过程通过在各线程控制的GPU上并行求解二维浅水方程得到;
步骤9、同步每一个线程,并比较每个计算子区域中计算得到的局部时间步长dt,选取最小的dt用于下一时间步的全局时间步长;
步骤10、判断是否模拟结束,若是,则结束模拟;若否,则返回步骤7;
步骤2中依据计算任务所用GPU数量分解出相应的子区域数量。区域分解的具体方法如下:
步骤2.1,依据数据交互量最小的原则,在计算区域中选择适当的边作为区域分割边,计算区域将沿该边被分解,此外该边将被用于两块共用该边的子区域间的数据交互;
步骤2.2,对计算区域网格进行分类。以逆时针方向作为网格拓扑构建的方向,遍历计算区域所有网格,若网格位于当前子区域的区域分割边的左边,则该网格属于当前子区域,便将该网格加入到该子区域的网格数据队列中。
步骤3的具体方法如下:
基于翼边数据结构及相邻两个三角形共用一条边的原则,将每个子区域的网格拓扑关系保存在两个数据结构中,一是网格数据结构,该结构包含组成该网格的每条边的编号;二是边数据结构,该结构包含该边左边网格编号及右边网格编号;
步骤4的具体方法如下:
步骤2完成后,计算区域已被分解为多个子区域,在其基础上依据相邻子区域的边界分割处的三角形网格共用一条边的原则,构建一个存储边界网格信息交互的数据结构,该结构包含当前边的编号,当前边相邻的网格编号,该网格位于该边相邻的子区域中。
步骤7的具体方法如下:
基于步骤4得到的网格数据交互拓扑信息对相邻的子区域进行水力要素信息的交互,需要交互的水力要素信息有网格的水位、地形高程、x和y方向的流速,交互的方式采用GPU间点对点通讯方式(P2P)来完成。
步骤8的具体方法如下:
采用Godunov格式的有限体积法数值求解二维浅水方程,通过一阶显示格式进行时间推进,网格间界面通量采用HLLC黎曼求解器求解。
二维浅水方程为:
式中:t为时间,s;q为变量矢量包括水深h,两个方向上的单宽流量qx和qy;u、v为x、y方向上的流速;f、g为x、y方向上的通量矢量;S为源项矢量,包括降雨下渗源项i、底坡源项及摩阻力源项;zb河床底面高程,单位:m;Cf为床面摩擦系数,Cf=gn2/h1/3,其中n为曼宁系数。
步骤9的具体方法如下:
在一个时间步长执行完成后,首先需要同步各个线程,然后比较每个计算子区域中计算得到的局部时间步长dt,选取最小的dt用于下一时间步的全局时间步长。
Claims (4)
1.一种基于非结构网格的二维洪水过程多GPU模拟方法,其特征在于,
包括如下步骤:
步骤1、采用非结构三角形网格对计算区域进行空间离散;
步骤2、对计算区域依据任务所用GPU数量分解出相应的子区域数量;
步骤3、基于翼边数据结构对每个子区域进行运算生成第一类子区域网格拓扑关系;
步骤4、根据每个子区域与其相邻子区域在内部边界网格处数据交互生成第二类内边界网格拓扑关系;
步骤5、采用C++11的Thread类创建多线程模型,每个线程控制一个GPU,每个GPU上运算一个子区域;
步骤6、通过读取控制参数、每个子区域地形数据、拓扑数据对多线程模型初始化;
步骤7、通过第二类内边界网格拓扑关系采用GPU间点对点通讯方式对相邻子区域进行水力要素信息的交互传输;;
步骤8、基于第一类子区域网格拓扑关系,在多线程模型的每一个线程控制的GPU上并行求解二维浅水方程得到洪水传播过程;所述二维浅水方程如下:
式中:t为时间,q为变量矢量包括水深h,两个方向上的单宽流量qx和qy;u、v为x、y方向上的流速;f、g为x、y方向上的通量矢量;S为源项矢量,包括降雨下渗源项i、底坡源项及摩阻力源项;zb河床底面高程,单位:m;Cf为床面摩擦系数,Cf=gn2/h1/3,其中n为曼宁系数;
步骤9、对多线程模型的每个线程同步,并比较每个计算子区域中计算得到的局部时间步长dt,选取最小的dt用于下一时间步的全局时间步长;
步骤10、判断模拟过程是否结束,若是,则结束模拟;若否,则返回步骤7。
2.根据权利要求1所述的基于非结构网格的二维洪水过程多GPU模拟方法,其特征在于,所述步骤2中对计算区域依据任务所用GPU数量分解出相应的子区域数量过程:
步骤2.1,依据数据交互量最小的原则,在计算区域中选择适当的边作为区域分割边,计算区域将沿该区域分割边被分解,此外该区域分割边将被用于两块共用该边的子区域间的数据交互;
步骤2.2,对计算区域网格进行分类,以逆时针方向作为网格拓扑构建的方向,遍历计算区域所有网格,若网格位于当前子区域的区域分割边的左边,则该网格属于当前子区域,便将该网格加入到该子区域的网格数据队列中。
3.根据权利要求1所述的一种基于非结构网格的二维洪水过程多GPU模拟方法,其特征在于,所述步骤3的基于翼边数据结构对每个子区域进行运算生成第一子区域网格拓扑关系过程:
基于翼边数据结构为相邻两个三角形共用一条边的原则,将每个子区域的网格拓扑关系保存在两个数据结构中,一是网格数据结构,该结构包含组成该网格的每条边的编号;二是边数据结构,该结构包含该边左边网格编号及右边网格编号。
4.根据权利要求1所述的一种基于非结构网格的二维洪水过程多GPU模拟方法,其特征在于,所述步骤4的中根据每个子区域与其相邻子区域在内部边界网格处数据交互生成第二子区域拓扑关系过程:
步骤2完成后,计算区域已被分解为多个子区域,在其基础上依据相邻子区域的边界分割处的三角形网格共用一条边的原则,构建一个存储边界网格信息交互的数据结构,该结构包含当前边的编号,当前边相邻的网格编号,该网格位于该边相邻的子区域中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211368197.5A CN115795939B (zh) | 2022-11-03 | 2022-11-03 | 一种基于非结构网格的二维洪水过程多gpu模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211368197.5A CN115795939B (zh) | 2022-11-03 | 2022-11-03 | 一种基于非结构网格的二维洪水过程多gpu模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115795939A true CN115795939A (zh) | 2023-03-14 |
CN115795939B CN115795939B (zh) | 2023-06-13 |
Family
ID=85435162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211368197.5A Active CN115795939B (zh) | 2022-11-03 | 2022-11-03 | 一种基于非结构网格的二维洪水过程多gpu模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795939B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012097175A1 (en) * | 2011-01-14 | 2012-07-19 | Dassault Systemes Solidworks Corporation | Direct rendering of cad models on the gpu |
US20140136171A1 (en) * | 2012-11-13 | 2014-05-15 | Chevron U.S.A. Inc. | Unstructured Grids For Modeling Reservoirs |
CN106981093A (zh) * | 2017-05-17 | 2017-07-25 | 上海同岩土木工程科技股份有限公司 | 一种分区约束耦合的三维地层并行建模方法 |
CN108717731A (zh) * | 2018-05-14 | 2018-10-30 | 天津大学 | 一种基于局部几何特征的高效离散测地线并行方法 |
CN111768502A (zh) * | 2020-07-08 | 2020-10-13 | 西安理工大学 | 一种基于gpu加速技术的非结构网格二维洪水模拟系统 |
CN114997006A (zh) * | 2022-05-27 | 2022-09-02 | 中国科学院地球环境研究所 | 基于多gpu并行框架的河流泥沙输移过程数值模拟方法 |
-
2022
- 2022-11-03 CN CN202211368197.5A patent/CN115795939B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012097175A1 (en) * | 2011-01-14 | 2012-07-19 | Dassault Systemes Solidworks Corporation | Direct rendering of cad models on the gpu |
US20140136171A1 (en) * | 2012-11-13 | 2014-05-15 | Chevron U.S.A. Inc. | Unstructured Grids For Modeling Reservoirs |
CN106981093A (zh) * | 2017-05-17 | 2017-07-25 | 上海同岩土木工程科技股份有限公司 | 一种分区约束耦合的三维地层并行建模方法 |
CN108717731A (zh) * | 2018-05-14 | 2018-10-30 | 天津大学 | 一种基于局部几何特征的高效离散测地线并行方法 |
CN111768502A (zh) * | 2020-07-08 | 2020-10-13 | 西安理工大学 | 一种基于gpu加速技术的非结构网格二维洪水模拟系统 |
CN114997006A (zh) * | 2022-05-27 | 2022-09-02 | 中国科学院地球环境研究所 | 基于多gpu并行框架的河流泥沙输移过程数值模拟方法 |
Non-Patent Citations (2)
Title |
---|
R VACONDIO等: "A non-uniform efficient grid type for GPU-parallel Shallow Water Equations models", 《ENVIRONMENTAL MODELLING & SOFTWARE》, vol. 88 * |
李陈: "基于剖面的三维复杂地质体建模技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115795939B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111768502A (zh) | 一种基于gpu加速技术的非结构网格二维洪水模拟系统 | |
Murotani et al. | Development of hierarchical domain decomposition explicit MPS method and application to large-scale tsunami analysis with floating objects | |
CN101158985A (zh) | 一种超维度河流动力学自适应并行监测的方法 | |
CN108460195B (zh) | 海啸数值计算模型基于gpu并行的快速执行方法 | |
CN109614638B (zh) | 一种非直接建模的城市风环境cfd模拟方法 | |
CN103679807A (zh) | 一种带边界约束的散乱点云重构方法 | |
CN106600570A (zh) | 一种基于云计算的海量点云滤波方法 | |
CN102521854A (zh) | 一种适用于二维流场的并行流线放置方法 | |
CN111813563B (zh) | 匹配于高性能计算机体系结构的非结构网格数据管理方法 | |
Dawes et al. | A practical demonstration of scalable, parallel mesh generation | |
CN110990926B (zh) | 一种基于面积修正率的城市地表建筑水动力学仿真方法 | |
CN110765694B (zh) | 一种基于简化型浅水方程组的城市地表水流数值模拟方法 | |
CN106844963B (zh) | 模拟开挖至运行全过程的拱坝三维网格模型自动剖分方法 | |
Freitas et al. | A distributed-memory parallel technique for two-dimensional mesh generation for arbitrary domains | |
CN115795939B (zh) | 一种基于非结构网格的二维洪水过程多gpu模拟方法 | |
CN117078876A (zh) | 一种三维流场模拟方法、系统及电子设备 | |
CN114970395A (zh) | 基于二维圣维南方程的大规模流体模拟方法及系统 | |
Wang et al. | An improving algorithm for generating real sense terrain and parameter analysis based on fractal | |
CN114997006A (zh) | 基于多gpu并行框架的河流泥沙输移过程数值模拟方法 | |
Xu et al. | Parallelizing a high-order CFD software for 3D, multi-block, structural grids on the TianHe-1A supercomputer | |
Shchur et al. | Evolution of time horizons in parallel and grid simulations | |
KR102026153B1 (ko) | 행위자 기반 모형을 포함하는 다중 규모 모형을 이용한 남조류 이송·확산 거동의 수치모의 방법 | |
DAmbrosio et al. | Lava flow modeling by the sciara-fv3 parallel numerical code | |
CN112836872A (zh) | 一种基于多gpu的污染物对流扩散方程高性能数值求解方法 | |
CN116597109B (zh) | 一种复杂三维曲面共型网格生成方法 |
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 |