CN112035995A - 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 - Google Patents
基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 Download PDFInfo
- Publication number
- CN112035995A CN112035995A CN201910654061.2A CN201910654061A CN112035995A CN 112035995 A CN112035995 A CN 112035995A CN 201910654061 A CN201910654061 A CN 201910654061A CN 112035995 A CN112035995 A CN 112035995A
- Authority
- CN
- China
- Prior art keywords
- grid
- gpu
- boundary
- flux
- calculation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000005516 engineering process Methods 0.000 title claims abstract description 29
- 238000004088 simulation Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 title claims description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 80
- 230000004907 flux Effects 0.000 claims abstract description 72
- 230000006870 function Effects 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims abstract description 9
- 210000004027 cell Anatomy 0.000 claims description 74
- 238000004891 communication Methods 0.000 claims description 19
- 238000000354 decomposition reaction Methods 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 9
- 230000000903 blocking effect Effects 0.000 claims description 3
- 210000003888 boundary cell Anatomy 0.000 claims description 3
- 238000009792 diffusion process Methods 0.000 claims description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims 2
- 238000012360 testing method Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000012530 fluid Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 241001229889 Metis Species 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102220564795 Protein Lines homolog 1_K20M_mutation Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/28—Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
-
- 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
- G06F17/13—Differential equations
-
- G01V20/00—
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Data Mining & Analysis (AREA)
- Fluid Mechanics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,包括以下步骤:1、网格和物理场信息发送至GPU显存;2、利用第一核函数以网格单元为计算单元与GPU线程对应,计算内部网格单元面通量和体积源项;3、利用第二核函数以网格单元面为计算单元与GPU线程对应,计算边界网格单元面通量;4、利用第三核函数以单元为计算单元与GPU线程对应,进行时间推进计算;5、GPU将计算结果返回CPU;其中,2、3和4中均采用多个GPU对内部网格单元面的通量、边界网格单元面的通量或时间推进并行计算。其通过将内部网格单元面和边界网格单元面的通量计算分离,克服了单纯以网格单元或网格单元面为基本计算单元导致的计算效率偏低的问题。
Description
技术领域
本发明涉及流体力学技术领域,尤其涉及一种基于GPU计算技术的非结构网格潮汐潮流数值模拟方法。
背景技术
计算流体力学(CFD)作为一门利用计算机和数值方法求解流体动力学方程获得流动规律和解决流动问题的学科,涉及到计算几何、流体动力学、偏微分方程的数学理论、数值分析等各个方面。目前,CFD正向着高精度、大规模、多目标、实时性方向发展,对计算与存储量的需求日益增加,采用大型并行计算机进行并行计算是必然趋势。而随着图像处理器(Graphics Processing Unit,GPU)浮点运算性能的不断提升,大型并行计算机的构建往往采用CPU/GPU异构体系结构以提升性能。这一方面为CFD应用带来了低成本、快速求解等发展机遇,同时也给众多高性能计算研究人员带来算法设计等挑战。
应用非结构化网络建立水动力学模型目前已经得到了广泛的应用,随着海洋水动力模型的发展,对计算精度和效率都提出了新的要求,然而精度提升将导致网格数过多,计算量过大,在无大规模集群的情况下难以在较短时间内获得计算结果,无法达到预报要求。随着图形处理器(GPU)性能的高速发展,同时伴随CUDA、OPENCL等GPU结构的并行计算语言支持的扩展及日趋成熟,采用基于GPU的并行算法可以有效加快水动力模型计算速度,高效率的完成对高分辨率海洋环境水动力的数值模拟。
目前针对二维水动力学模型GPU并行算法设计从计算单元与CUDA线程映射方式上可以分为两类,一种是以单元为基本计算单元,将单元上的计算任务改写成CUDA Kernel函数映射到CUDA线程,这种方式计算过程中存在单元面上通量的重复计算,但由于是kernel并发,重复计算都是并发同步执行,因而不会对效率产生较大影响,但对于水动力学模型离散计算需要将平面积分转换成了沿控制单元面的线积分,同时由于计算区域存在边界,数值算法上对于内部单元面和边界单元面往往需要不同的通量计算方式,这将导致以单元为基本计算单元的kernel存在计算分支,会极大的减弱性能。另一种是以单元面为基本计算单元,将单元面上的计算任务改成CUDA Kernel函数映射到CUDA线程。一个公共边的计算结果可以给相邻两个控制单元调用,计算量减少了一半。然而在并行设计过程中,容易出现多个线程同时对同一数据进行操作,如果程序设计不合理,将会导致不同线程对数据操作的混乱,因此需要采用对数据加锁的方式来实现对数据的原子操作,在非结构网格离散计算过程中由于网格序号的无规律性,将会导致大量的原子操作存在,影响kernel执行效率。
另一方面针对二维水动力模型的GPU优化都是在单个GPU上进行,没有考虑在分布式GPU集群上的优化。
发明内容
本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。
本发明还有一个目的是提供一种基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,通过将内部网格单元面和边界网格单元面的通量计算分离,克服了单纯以网格单元或网格单元面为基本计算单元导致的计算效率偏低的问题;同时实现了二维水动力模型在分布式GPU集群上的优化,进一步提高了计算效率。
为实现上述目的和一些其他的目的,本发明采用如下技术方案:
一种基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,包括以下步骤:
S1、CPU将CPU上的网格信息和物理场信息发送至GPU显存;
S2、利用第一核函数以及GPU中预存的网格信息和物理场信息以网格单元为基本计算单元与GPU线程对应,计算内部网格单元面通量和网格单元上的体积源项;
S3、利用第二核函数以及GPU中预存的网格信息和物理场信息以网格单元面为基本计算单元与GPU线程对应,计算边界网格单元面通量;
S4、利用第三核函数以及S2和S3得到的网格单元面通量以单元为基本计算单元与GPU线程对应,进行时间推进计算;
S5、所述GPU将S4得到的计算结果返回至CPU;
其中,S2、S3和S4中均采用多个GPU对所述内部网格单元面的通量、边界网格单元面的通量或时间推进进行并行计算。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,所述网格信息包括:内部网格单元面拓扑结构及所述内部网格单元面拓扑结构的几何信息,以及边界网格单元面拓扑结构及所述边界网格单元面拓扑结构的几何信息;
所述物理场信息包括单元及单元面的干湿状态、单元物理量以及边界物理量。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,所述第一核函数、第二核函数和第三内核函数均为采用CUDA语言编写的包含通量、源项、边界条件和时间推进的CUDA核函数。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,所述的通量包括:内部网格单元面通量、边界网格单元面通量、源项和时间项推进。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,所述第一核函数采用网格单元为基本计算单元与GPU线程对应,计算内部网格单元面通量和网格单元上的体积源项,实现内部网格单元面上通量计算的并行计算。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,所述第二核函数采用网格单元面为基本计算单元与GPU线程对应,计算边界网格单元面通量,实现所述边界单元面通量计算的并行计算。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,S2、S3和S4中采用多个GPU对所述内部网格单元面的通量、边界网格单元面的通量或时间推进进行并行计算前,还需将初始计算网格进行网格区域分解,并保证划分得到的每个网格单元只包含一个网格边界面;其中,所述网格区域分解指根据GPU数目将网格分解成相应的子区,具体划分方法为:
S1-1、将网格文件转化为图形文件;
S1-2、调用图切分软件包Metis中的图形分割工具pmetis和kmetis对所述图形文件进行网格分解。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,每个所述GPU计算一个所述子区,所述GPU通过核函数计算所述子区的干湿边界处理、边界计算、对流项、扩散项以及源项。
优选的是,所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,各个GPU间采用异步通信技术来实现数据通信与计算重叠,具体方法为:
S2-1、核函数计算前将需要通信的并行网格边界面流速从GPU上拷贝至CPU的内存;
S2-2、CPU利用MPI非阻塞通信并行网格边界面流速,同时核函数开始计算与并行边界无关的内部网格单元面通量;
S2-3、核函数根据接收到并已上传至GPU的并行边界流速进行并行网格边界面的离散计算。
本发明至少包括以下有益效果:
本发明的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法中,通过第一核函数和第二核函数分别计算内部网格单元面通量和网格单元上的体积源项以及边界网格单元面通量,实现了内部单元面和边界单元面的计算的分离,使得较之现有的以单元或单元面为基本计算单元进行计算的效率大大提高。
通过采用多个GPU对所述内部单元的通量或边界单元的通量进行并行计算,实现了二维水动力模型在分布式GPU集群上的优化,进一步提高了计算效率。
通过将数值计算均在GPU上完成的方式,使得计算过程中无需GPU与CPU之间进行传输数据,从而为获得高效并行提供了前提条件。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1是本发明提供的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法的流程图;
图2是本发明提供的网格分解的原理图;
图3为本发明提供的GPU间采用异步通信技术来实现数据通信与计算重叠的流程图;
图4为本发明实施例中计算范围及水深情况示意图;
图5为本发明实施例中计算范围的整体网格图;
图6为本发明实施例中计算范围的局部网格图;
图7为本发明实施例中监测点的示意图;
图8为本发明实施例中1号监测点的潮位对比图;
图9为本发明实施例中2号监测点的潮位对比图;
图10为本发明实施例中3号监测点的潮位对比图;
图11为本发明实施例中4号监测点的潮位对比图。
具体实施方式
下面结合附图对本发明做详细说明,以令本领域普通技术人员参阅本说明书后能够据以实施。
如图1所示,一种基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,包括以下步骤:S1、CPU将CPU上的网格信息和物理场信息发送至GPU显存;
S2、利用第一核函数以及GPU中预存的网格信息和物理场信息以网格单元为基本计算单元与GPU线程对应,计算内部网格单元面通量和网格单元上的体积源项;
S3、利用第二核函数以及GPU中预存的网格信息和物理场信息以网格单元面为基本计算单元与GPU线程对应,计算边界网格单元面通量;
S4、利用第三核函数以及S2和S3得到的网格单元面通量以单元为基本计算单元与GPU线程对应,进行时间推进计算;
S5、所述GPU将S4得到的计算结果返回至CPU;
其中,S2、S3和S4中均采用多个GPU对所述内部网格单元面的通量、边界网格单元面的通量或时间推进进行并行计算。
在上述方案中,通过第一核函数和第二核函数分别计算内部网格单元面通量和网格单元上的体积源项以及边界网格单元面通量,实现了内部单元面和边界单元面的计算的分离,使得较之现有的以单元或单元面为基本计算单元进行计算的效率大大提高。
通过采用多个GPU对所述内部单元的通量或边界单元的通量进行并行计算,实现了二维水动力模型在分布式GPU集群上的优化,进一步提高了计算效率。
由于GPU和CPU各自拥有独立的物理内存,所以必须调用cudaMemcpy函数才能实现数据交互,而数据交互速度受带宽限制,往往成为GPU程序加速的瓶颈,因而通过将数值计算均在GPU上完成的方式,使得计算过程中无需GPU与CPU之间进行传输数据,从而为获得高效并行提供了前提条件。
一个优选方案中,所述网格信息包括:内部网格单元面拓扑结构及所述内部网格单元面拓扑结构的几何信息,以及边界网格单元面拓扑结构及所述边界网格单元面拓扑结构的几何信息;
所述物理场信息包括单元及单元面的干湿状态、单元物理量以及边界物理量。
一个优选方案中,所述第一核函数、第二核函数和第三内核函数均为采用CUDA语言编写的包含通量、源项、边界条件和时间推进的CUDA核函数。
在上述方案中,CUDA以内核函数(kernel)为基本单元,在GPU上根据流处理器能力启动众多的线程来并发执行;针对所采用的数值计算方法,对于单GPU采用CUDA语言将通量、源项、边界条件、时间推进的计算编写为内核函数,移植至GPU上运行计算以提高计算效率。
一个优选方案中,所述的通量包括:内部网格单元面通量、边界网格单元面通量、源项和时间项推进。
一个优选方案中,所述第一核函数采用网格单元为基本计算单元与GPU线程对应,计算内部网格单元面通量和网格单元上的体积源项,实现内部网格单元面上通量计算的并行计算。
在上述方案中,将计算中的基本计算单元与CUDA线程对应,对于内部单元通量计算主要涉及内部单元面通量、单元上的源项、时间项推进的计算,在kernel并发时以单元为基本计算单元与线程对应,计算内部单元面通量和单元上的体积源项,这样可实现单元上通量计算的并发。
一个优选方案中,所述第二核函数采用网格单元面为基本计算单元与GPU线程对应,计算边界网格单元面通量,实现所述边界单元面通量计算的并行计算。
在上述方案中,对于边界单元面的计算处理往往与内部单元面不同,因此采用第二kernel进行处理,考虑边界单元面计算只是单纯的通量计算添加到对应的边界单元里,因而采用以单元面为基本单元计算面通量并与CUDA线程对应,实现边界单元面通量计算的并发。
一个优选方案中,S2、S3和S4中采用多个GPU对所述内部网格单元面的通量、边界网格单元面的通量或时间推进进行并行计算前,还需将初始计算网格进行网格区域分解,并保证划分得到的每个网格单元只包含一个网格边界面;其中,所述网格区域分解指根据GPU数目将网格分解成相应的子区,具体划分方法为:
S1-1、将网格文件转化为图形文件;
S1-2、调用图切分软件包Metis中的图形分割工具pmetis和kmetis对所述图形文件进行网格分解。
在上述方案中,需要根据节点数目将网格划分成相应的子区。通过相关参数控制将网格文件转化为图形文件,然后调用Metis提供的图形分割工具pmetis和kmetis工具进行网格分解,可以实现对任意形状网格和混合网格的区域分解。例如对于如图2所示的非结构网格,以字母c开头表示单元编号,而直接由数字开头的表示界面编号。单元的内部界面与两个单元相邻,由此可以将单元界面转化为图形文件中的边,而单元编号转好为边的两个节点,如非结构网格界面6两侧单元c1和c6,对应图中图形数据中边6和节点c1和c6,所有网格边界面与单元转化后,就可以得到图中所示的图形数据。如网格文件中单元c1与单元c6,c5,c2相邻,转化后,可以看到节点c1与节点c6,c5,c2相邻,由此可以得到图形数据,之后便可调用Metis图形分割工具进行分割,最终得到图形数据中每个节点所属区域的序号,将该序号映射到非结构网格中便可得到原始非结构网格每个计算单元所属的分解区域序号,该网格拓扑信息将用于后续水动力模型离散求解。
一个优选方案中,每个所述GPU计算一个所述子区,所述GPU通过核函数计算所述子区的干湿边界处理、边界计算、对流项、扩散项以及源项。
一个优选方案中,各个GPU间采用异步通信技术来实现数据通信与计算重叠,具体方法为:
S2-1、核函数计算前将需要通信的并行网格边界面流速从GPU上拷贝至CPU的内存;
S2-2、CPU利用MPI非阻塞通信并行网格边界面流速,同时核函数开始计算与并行边界无关的内部网格单元面通量;
S2-3、核函数根据接收到并已上传至GPU的并行边界流速进行并行网格边界面的离散计算。
在上述方案中,在分布式系统环境下,由于节点间GPU显存无法直接通信,因此需特殊的设计保证节点间计算负载的均衡,以及节点间数据通信效率,分布式系统环境下的并行计算,计算效率取决于进行间通信时间所占整体计算时间的比重。因而利用异步通信技术来实现节点间数据通信与计算重叠,实现了将并行边界面的数据交换与内部单元面的离散计算并发执行,从而达到了掩盖数据交换通信时间的目的。
实施例
算例测试:渤海潮汐潮流模拟
1)算例描述
以烟台和大连连线为开边界,计算渤海范围内潮波传递和潮流运动情况。计算范围和地形如图4所示。网格节点数60307,单元数117142,最大网格空间步长9758m,最小网格空间步长40m,如图5所示。
利用本发明所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法对CUDA并行程序计算效率与计算结果进行测试和分析,主要分为两部分内容:
(1)测试GPU计算与CPU以及其他软件计算结果对比;
(2)测试GPU计算效率。
2)CPU测试环境
(1)计算平台:
宝德PR8800G八路并行计算机
8颗Intel Xeon Processor E7-8867 v3(2.5GHz/16C/45M/165W/9.6G)
24X16GB/DDR4/2133MHz/ECC/REG/2RANK
5 X 900GB/SAS/10000RPM/2.5寸/企业级
(2)操作系统
Red Hat Enterprise Linux Server release 7.2(Linux version 3.10.0-327.el7.x86_64)
3)GPU测试环境
TH-1A系统gpu_test计算分区Tesla M2050和Tesla K20m显卡。
4)计算结果
如图6所示为采用GPU并行程序计算得到不同点位的潮位与商业水动力计算软件MIKE以及CPU计算结果的对比,可以看到本程序采用GPU计算得到的潮位结果与商业水动力计算软件MIKE及本程序CPU版本计算结果一致,说明本程序GPU计算结果的准确。
GPU计算与CPU以及其他软件计算时间统计如下表1所示:
表1 GPU计算与CPU以及其他软件计算时间统计表
计算平台 | 计算时间(秒) |
32核(Intel Xeon 5670 CPU) | 576 |
40核(Intel Xeon E7-8867 v3 CPU) | 240 |
1个GPU(Intel Xeon 5670+Tesla M2050) | 717 |
1个GPU(Intel Xeon 5670+Tesla K20m) | 578 |
由表1可见,采用K20m计算基本和32核计算效率相当。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里所示出与描述的图例。
Claims (9)
1.一种基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,包括以下步骤:
S1、CPU将CPU上的网格信息和物理场信息发送至GPU显存;
S2、利用第一核函数以及GPU中预存的网格信息和物理场信息以网格单元为基本计算单元与GPU线程对应,计算内部网格单元面通量和网格单元上的体积源项;
S3、利用第二核函数以及GPU中预存的网格信息和物理场信息以网格单元面为基本计算单元与GPU线程对应,计算边界网格单元面通量;
S4、利用第三核函数以及S2和S3得到的网格单元面通量以单元为基本计算单元与GPU线程对应,进行时间推进计算;
S5、所述GPU将S4得到的计算结果返回至CPU;
其中,S2、S3和S4中均采用多个GPU对所述内部网格单元面的通量、边界网格单元面的通量或时间推进进行并行计算。
2.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,所述网格信息包括:内部网格单元面拓扑结构及所述内部网格单元面拓扑结构的几何信息,以及边界网格单元面拓扑结构及所述边界网格单元面拓扑结构的几何信息;
所述物理场信息包括单元及单元面的干湿状态、单元物理量以及边界物理量。
3.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,所述第一核函数、第二核函数和第三内核函数均为采用CUDA语言编写的包含通量、源项、边界条件和时间推进的CUDA核函数。
4.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,所述的通量包括:内部网格单元面通量、边界网格单元面通量、源项和时间项推进。
5.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,所述第一核函数采用网格单元为基本计算单元与GPU线程对应,计算内部网格单元面通量和网格单元上的体积源项,实现内部网格单元面上通量计算的并行计算。
6.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,所述第二核函数采用网格单元面为基本计算单元与GPU线程对应,计算边界网格单元面通量,实现所述边界单元面通量计算的并行计算。
7.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,S2、S3和S4中采用多个GPU对所述内部网格单元面的通量、边界网格单元面的通量或时间推进进行并行计算前,还需将初始计算网格进行网格区域分解,并保证划分得到的每个网格单元只包含一个网格边界面;其中,所述网格区域分解指根据GPU数目将网格分解成相应的子区,具体划分方法为:
S1-1、将网格文件转化为图形文件;
S1-2、调用图切分软件包Metis中的图形分割工具pmetis和kmetis对所述图形文件进行网格分解。
8.如权利要求7所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,每个所述GPU计算一个所述子区,所述GPU通过核函数计算所述子区的干湿边界处理、边界计算、对流项、扩散项以及源项。
9.如权利要求1所述的基于GPU计算技术的非结构网格潮汐潮流数值模拟方法,其中,各个GPU间采用异步通信技术来实现数据通信与计算重叠,具体方法为:
S2-1、核函数计算前将需要通信的并行网格边界面流速从GPU上拷贝至CPU的内存;
S2-2、CPU利用MPI非阻塞通信并行网格边界面流速,同时核函数开始计算与并行边界无关的内部网格单元面通量;
S2-3、核函数根据接收到并已上传至GPU的并行边界流速进行并行网格边界面的离散计算。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910654061.2A CN112035995A (zh) | 2019-07-19 | 2019-07-19 | 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 |
NL2023815A NL2023815B1 (en) | 2019-07-19 | 2019-09-11 | Numerical simulation method for unstructured grid tides and tidal currents based on gpu computation technology |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910654061.2A CN112035995A (zh) | 2019-07-19 | 2019-07-19 | 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035995A true CN112035995A (zh) | 2020-12-04 |
Family
ID=68290404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910654061.2A Pending CN112035995A (zh) | 2019-07-19 | 2019-07-19 | 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112035995A (zh) |
NL (1) | NL2023815B1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836872A (zh) * | 2021-01-29 | 2021-05-25 | 西安理工大学 | 一种基于多gpu的污染物对流扩散方程高性能数值求解方法 |
CN113706706A (zh) * | 2021-10-28 | 2021-11-26 | 自然资源部第一海洋研究所 | 数据的处理方法、装置及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035995A (zh) * | 2019-07-19 | 2020-12-04 | 交通运输部天津水运工程科学研究所 | 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094410A1 (zh) * | 2012-12-20 | 2014-06-26 | 中国科学院近代物理研究所 | 颗粒流动仿真系统和方法 |
WO2017084105A1 (zh) * | 2015-11-20 | 2017-05-26 | 田川 | 一种数值模拟等离子体放电的系统及方法 |
NL2023815A (en) * | 2019-07-19 | 2019-10-22 | Tianjin Research Inst Water Transp Engineering Mot | Numerical simulation method for unstructured grid tides and tidal currents based on gpu computation technology |
-
2019
- 2019-07-19 CN CN201910654061.2A patent/CN112035995A/zh active Pending
- 2019-09-11 NL NL2023815A patent/NL2023815B1/en active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094410A1 (zh) * | 2012-12-20 | 2014-06-26 | 中国科学院近代物理研究所 | 颗粒流动仿真系统和方法 |
WO2017084105A1 (zh) * | 2015-11-20 | 2017-05-26 | 田川 | 一种数值模拟等离子体放电的系统及方法 |
NL2023815A (en) * | 2019-07-19 | 2019-10-22 | Tianjin Research Inst Water Transp Engineering Mot | Numerical simulation method for unstructured grid tides and tidal currents based on gpu computation technology |
Non-Patent Citations (3)
Title |
---|
ZHAO XU-DONG: "A GPU accelerated finite volume coastal ocean model", JOURNAL OF HYDRODYNAMICS, vol. 29, no. 4, 14 July 2017 (2017-07-14), pages 679, XP085130956, DOI: 10.1016/S1001-6058(16)60780-1 * |
徐添豪: "基于非结构网格的可压缩粘性流动数值方法的GPU实现", 中国优秀硕士学位论文全文数据库基础科学辑, no. 3, 15 March 2017 (2017-03-15), pages 002 - 482 * |
赵旭东;赵杨;孙家文;于永海;孙昭晨;梁书秀;: "基于GPU加速的潮流模型及其在岛群二维水动力数值模拟中的应用", 海洋环境科学, vol. 36, no. 05, 20 October 2017 (2017-10-20), pages 781 - 790 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836872A (zh) * | 2021-01-29 | 2021-05-25 | 西安理工大学 | 一种基于多gpu的污染物对流扩散方程高性能数值求解方法 |
CN112836872B (zh) * | 2021-01-29 | 2023-08-18 | 西安理工大学 | 一种基于多gpu的污染物对流扩散方程高性能数值求解方法 |
CN113706706A (zh) * | 2021-10-28 | 2021-11-26 | 自然资源部第一海洋研究所 | 数据的处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
NL2023815A (en) | 2019-10-22 |
NL2023815B1 (en) | 2020-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Peterka et al. | Scalable parallel building blocks for custom data analysis | |
Khaleghzadeh et al. | A novel data-partitioning algorithm for performance optimization of data-parallel applications on heterogeneous HPC platforms | |
Xiong et al. | Efficient parallel implementation of the lattice Boltzmann method on large clusters of graphic processing units | |
CN102609393B (zh) | 一种线性方程组的数据处理方法及装置 | |
CN112035995A (zh) | 基于gpu计算技术的非结构网格潮汐潮流数值模拟方法 | |
CN105022670A (zh) | 一种云计算平台中的异构分布式任务处理系统及其处理方法 | |
Loring et al. | Improving performance of m-to-n processing and data redistribution in in transit analysis and visualization | |
Zhang et al. | Parallel computation of a dam-break flow model using OpenACC applications | |
Pöppl et al. | SWE-X10: Simulating shallow water waves with lazy activation of patches using ActorX10 | |
Alt et al. | Profile driven partitioning of parallel simulation models | |
Deng et al. | CPU/GPU computing for an implicit multi-block compressible Navier-Stokes solver on heterogeneous platform | |
Wang et al. | FineQuery: Fine-grained query processing on CPU-GPU integrated architectures | |
Xu et al. | Parallelizing a high-order CFD software for 3D, multi-block, structural grids on the TianHe-1A supercomputer | |
CN114970395A (zh) | 基于二维圣维南方程的大规模流体模拟方法及系统 | |
Liu et al. | Massively parallel CFD simulation software: CCFD development and optimization based on Sunway TaihuLight | |
Wang et al. | An adaptive elasticity policy for staging based in-situ processing | |
Biswas et al. | Global load balancing with parallel mesh adaption on distributed-memory systems | |
Kerbyson et al. | Performance modeling of deterministic transport computations | |
Hu et al. | Real-time simulation and optimization of elastic aircraft vehicle based on multi-GPU workstation | |
Freitas et al. | Parallelization of a Large-Scale Watersheds Hydrological Model using CPU and GPU | |
Lastovetsky et al. | How pre-multicore methods and algorithms perform in multicore era | |
Loring et al. | Improving Performance of M-to-N Processing and Data Redistribution in In Transit | |
CN112528456B (zh) | 一种异构节点计算系统及方法 | |
Igounet et al. | A study on mixed precision techniques for a GPU-based SIP solver | |
Dong et al. | Study and Verification of Large-Scale Parallel Mesh Generation Algorithm for Centrifugal Pump |
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 |