CN112147719B - 一种基于gpu并行计算的风暴潮集合数值预报方法以及装置 - Google Patents
一种基于gpu并行计算的风暴潮集合数值预报方法以及装置 Download PDFInfo
- Publication number
- CN112147719B CN112147719B CN202011054190.7A CN202011054190A CN112147719B CN 112147719 B CN112147719 B CN 112147719B CN 202011054190 A CN202011054190 A CN 202011054190A CN 112147719 B CN112147719 B CN 112147719B
- Authority
- CN
- China
- Prior art keywords
- forecast
- path
- data
- forecasting
- typhoon
- 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.)
- Active
Links
- 238000013277 forecasting method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000006870 function Effects 0.000 claims description 98
- 238000004364 calculation method Methods 0.000 claims description 85
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 39
- 238000009826 distribution Methods 0.000 claims description 30
- 238000009499 grossing Methods 0.000 claims description 30
- 238000004088 simulation Methods 0.000 claims description 12
- 238000012805 post-processing Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 claims description 7
- 238000005315 distribution function Methods 0.000 claims description 5
- 238000013524 data verification Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 13
- 239000000047 product Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000345998 Calamus manan Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000034994 death Effects 0.000 description 1
- 231100000517 death Toxicity 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 235000012950 rattan cane Nutrition 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000013535 sea water Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01W—METEOROLOGY
- G01W1/00—Meteorology
- G01W1/10—Devices for predicting weather conditions
-
- 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
-
- 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/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Environmental & Geological Engineering (AREA)
- Algebra (AREA)
- Entrepreneurship & Innovation (AREA)
- Ecology (AREA)
- Atmospheric Sciences (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Environmental Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供一种基于图像处理器并行计算的风暴潮集合数值预报方法以及装置,所述风暴潮的集合数值预报方法包括:生成多路预报数据;由中央处理器CPU对图像处理器GPU分配多个计算线程,并由所述GPU基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果。本申请的一些实施例通过引入GPU并行处理多路预报数据明显提升了多计算网格点风暴潮预报的速度。
Description
技术领域
本申请涉及风暴预报领域,具体而言本申请实施例涉及一种基于GPU并行计算的风暴潮集合数值预报方法以及装置。
背景技术
20世纪以来,我国沿海共发生5次死亡人数超过万人的灾害性风暴潮事件。风暴潮灾害造成的直接经济损失占我国各类海洋灾害损失的90%以上。因此准确的风暴潮预报对我国沿海地区的防灾减灾工作至关重要且意义重大。
台风风暴潮数值模式能较好地模拟风暴潮的变化情况,在风暴潮预报中发挥着重要的作用,其模拟的准确性离不开模式对近岸复杂水深和地形的精细刻画。但精细化的计算网格(计算网格是为了实现计算机模拟计算而将实际的地形进行离散化处理,分成非常小的网格点,计算网格点是赋予物理量的最小单元,计算网格点越小,分辨率越高)必然导致计算量的急剧增加,若想实现上百个预报成员的台风风暴潮集合预报,计算量更是成百倍地增加。目前通常的做法是通过将计算网格划分成若干计算区域,再利用超算集群通过MPI等并行计算的方式缩短计算时间,或仅利用少量的预报成员(一般设置为5个)通过单机计算的方式来实现风暴潮的集合预报。
因此如何提升风暴潮预报的准确性和计算速度成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种基于GPU并行计算的风暴潮集合数值预报方法、装置以及系统,本申请的一些实施例提供了基于图形处理器(GPU)并行计算的风暴潮集合预报技术。利用本申请实施例的技术方案,各级海洋预报机构在单机上就可以实现上百个预报成员的台风风暴潮快速计算(一个预报成员的计算仅用几秒至十几秒),有效降低了基于多预报成员的台风风暴潮集合预报的门槛,极大地提高了风暴潮数值模式的计算效率,显著提升海洋预报的预报时效。
第一方面,本申请实施例提供一种基于GPU并行计算的风暴潮集合数值预报方法,所述基于GPU并行计算的风暴潮集合数值预报方法包括:生成多路预报数据;由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果。
本申请的一些实施例通过引入图像处理器GPU并行处理多路预报数据明显提升了多计算网格点风暴潮预报的速度。
在一些实施例中,所述由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果,包括:采用所述中央处理器对所述多路预报数据和对应的所述预报结果进行前处理、后处理以及输入输出操作,其中,所述前处理包括:台风移速计算、台风参数插值计算以及地理相关常量的计算,所述台风参数包括经纬度、中心气压和大风半径,所述后处理包括定时提取所述预报结果以及海陆数据校验;采用所述图像处理器对所述多路预报数据中各路预报数据包括的多个网格点的迭代运算,并将每次迭代运算的处理结果发送至所述中央处理器。
本申请的一些实施例通过为中央处理器和图像处理器分配不同种类的处理任务提升了风暴潮预报的速度。
在一些实施例中,所述各路预报数据包括多个计算网格点的预报数据,所述预报结果是通过所述图像处理器计算所述各计算网格点的多个核函数得到的。
本申请的一些实施例提供了将水平计算网格点进行任务分解,将每个计算网格点上的计算动态分配给图像处理器的不同的线程进行计算,提升了数据处理的速度。
在一些实施例中,所述图像处理器被配置为依次计算所述计算网格点的风应力核函数的值、连续方程核函数的值、动量方程核函数的值以及变量平滑核函数的值,其中,所述风应力核函数、所述连续方程核函数、所述动量方程核函数以及所述变量平滑核函数是对模型风场计算函数、风暴潮计算函数和平滑函数分解得到的;所述中央处理器还被配置负责所述风应力核函数、所述连续方程核函数、所述动量方程核函数和所述变量平滑核函数的迭代循环和收敛条件的控制。
本申请的一些实施例设计四个核函数并依次执行四个核函数的技术方案能够保证全局内存读写以及同步的正确性。
在一些实施例中,所述由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果,包括:所述中央处理器读取第n路预报数据,并确认所述第n路预报数据不属于所述多路预报数据中的最后一路预报数据;在所述图像处理器中依次执行如下步骤:根据风应力核函数计算风应力变量,获得风应力变量值;根据连续方程核函数计算连续方程,获得水位变量值;根据动量方程核函数计算动量方程,获得流速变量值;根据变量平滑核函数平滑所述水位变量值和所述流速变量值,并提取最大风暴增水;其中,当所述中央处理确定所述第n路预报数据属于所述多路预报数据中的最后一路预报数据时,则输出所述图像处理器的计算结果,所述计算结果包括所述最大风暴增水;其中,所述n为大于等于1的自然数。
本申请的一些实施例基于GPU并行计算的风暴潮数值集合预报技术使基于大量集合成员的台风风暴潮集合预报在单机上就可以快速实现,并且得到更加可靠的集合数值预报和概率数值预报产品。
在一些实施例中,所述中央处理器读取第n路预报数据,并确认所述第n路预报数据不属于所述多路预报数据中的最后一路预报数据之前,所述风暴潮的集合数值预报方法还包括:在所述图像处理器的全局变量中设置多个循环内变量,其中,所述循环内变量包括:水位和最大增水中的至少一个;在所述中央处理器的全局变量中设置结果变量或者常量。
本申请的一些实施例通过预先设置图像处理器的全局变量和中央处理器的多个全局变量可以保证全局内存读写以及同步的正确性。
在一些实施例中,通过如下公式确定所述图像处理器第一线程块中第一线程所处理的全局变量所对应的计算网格点:
i=(blockId%x-1)*blockDim%x+threadId%x
j=(blockId%y-1)*blockDim%y+threadId%y
其中,i和j分别代表全局变量经向和纬向的编号(即在计算网格中的位置),blockId%x和blockId%y分别代表线程块(block)经向和纬向的逻辑分布编号,blockDim%x和blockDim%y分别代表线程块经向和纬向的逻辑分布数量,threadId%x和threadId%y分别代表一个线程块中线程(thread)经向和纬向的逻辑分布编号。
本申请的一些实施例通过确认图像处理器正在处理的线程块和线程以使得每一个线程可以同步统一计算设备架构CUDA的内置代码。
在一些实施例中,所述多路预报数据对应的多条路径是通过如下方式获取的:根据台风误差半径确定多个同心圆;针对所述多个同心圆中的各同心圆分别选择台风主观预报路径、以及相对于所述主观路径预报路径多个方位的辅助预报路径,作为与所述各同心圆相关的多条预报路径。
本申请的一些实施例通过同心圆、主观预报路径得到的多条预报路径能够快速生成超过100个台风集合成员,即生成100多路径的预报数据,因此可以提升风暴潮预报的准确性。
在一些实施例中,所述权重系数是根据如下策略确定的:对应于所述台风主观预报路径的预报结果的权重系数最大,越接近所述主观预报路径的所述辅助预报路径对应的预报结果的权重系数越大,同一所述同心圆上的多条预报路径对应的多个预报结果的权重系数相同。
本申请的一些实施例能够给各路预报结果合理赋予权重,得到更加可靠的风暴潮的概率数值预报产品。
在一些实施例中,所述权重系数是根据高斯分布函数确定的。
本申请的一些实施例通过引入高斯分布函数计算各路预报结果的权重系数提升了权重系数的合理性。
在一些实施例中,所述生成多路预报数据之前,所述方法还包括:设置所述台风误差半径,设置大风半径增量并设置所述多条路径的总数量;所述针对所述多个同心圆中的各同心圆分别选择台风主观预报路径、以及相对于所述主观路径预报路径四个方位的辅助预报路径,作为与所述各同心圆相关的多条预报路径,包括:根据所述总数量、所述台风误差半径和所述大风半径增量确定所述各同心圆的所述预报路径。
本申请的一些实施例通过台风误差半径、大风半径增量可以快速生成大量的路径,进而模拟生成大量路径对应的路径预报数据。
在一些实施例中,所述根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果之后,所述方法还包括:制作最大增水模型并显示;制作单站概率预报模型并显示。
本申请的一些实施例可以将台风集合预报成员生成、台风风暴潮数值模式并行算法、风暴潮集合预报技术、集合预报产品制作等功能整合,实现风暴潮集合预报产品制作等流程化处理。
第二方面,本申请的一些实施例提供一种基于GPU并行计算的风暴潮集合数值预报装置,所述风暴潮的集合数值预报装置包括:多路模拟数据生产模块,被配置为生成多路预报数据;迭代计算模块,被配置为由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;预报结果获取模块,被配置为根据权重系数和所述多路预报结果得到预报结果。
第三方面,本申请的一些实施例提供一种基于GPU并行计算的风暴潮集合数值预报系统,包括控制设备和计算设备;其中,所述控制设备包括中央处理器,所述计算设备包括图像处理器,其中,所述控制设备被配置为执行上述第一方面中由所述中央处理器执行的方法,所述计算设备给配置为执行上述第一方面中由所述图像处理器执行的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的基于GPU并行计算的风暴潮预报装置的组成框图;
图2为本申请实施例提供的基于GPU并行计算的风暴潮预报方法的流程图之二;
图3为本申请实施例提供的确定一个圆上预报路径的方法示意图;
图4为本申请实施例提供的确定多个同心圆上预报路径的方法示意图;
图5为本申请实施例提供的基于GPU并行计算的风暴潮预报方法的流程图之三;
图6为本申请实施例提供的基于GPU并行计算的风暴潮预报平台的处理流程图;
图7为本申请实施例提供的风暴潮的集合数值预报装置的组成框图;
图8为本申请实施例提供的风暴潮的集合数值预报系统的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
结合背景技术的描述可知,各级海洋预报机构如果要实现上百个预报成员的台风风暴潮快速计算,需要配备价格高昂的超算集群和专业的维护人员,同时还需支付价格不菲的运行费用。这无疑给业务化台风风暴潮集合数值预报设置了很高的门槛,迫使很多预报机构望而却步。此外,现有基于CPU的风暴潮集合数值预报具有成员少(即台风预报路径的数量少),计算时间长的特点,且由于相关技术中各集合成员计算结果差异明显且权重分配不尽合理(即不同集合成员的预测结果的权重分配不合理,例如图1的各路风潮预报结果的权重分配不合理),导致集合预报和概率预报产品参考性不强,同时单机计算时间需要十几分钟,并不能满足海洋预报高时效性的要求。需要说明的是,集合数值预报技术是在广泛应用在天气和海洋预报中的一种方法,利用不同的初始条件、边界条件或参数设定驱动同一种数值模式,或直接驱动相对独立的几种数值模式,进而获取不同的预报结果,各预报结果间的差异可提供预报要素的概率分布信息,其主要目的是预测未来大气和海洋状况的可能范围。
正是为了解决上述技术问题,本申请的一些实施例提供一种基于图形处理器(GPU)并行计算的风暴潮集合预报技术。利用本申请的实施例各级海洋预报机构在单机上就可以实现上百个预报成员的台风风暴潮快速计算(一个预报成员的计算仅用几秒至十几秒),有效降低了基于多预报成员的台风风暴潮集合预报的门槛,极大地提高了风暴潮数值模式的计算效率,显著提升海洋预报的预报时效。
请参看图1,图1为本申请的一些实施例提供的基于GPU并行计算的风暴潮集合数值预报装置。结合图1可知,本申请一些实施例的风暴潮的集合数值预报装置包括:生成多路预报数据的模块100、计算模块200以及权重赋值模块300。
生成多路预报数据的模块100用于生成上百个预报成员,改善了风暴潮集合数值预报成员少的技术问题。如图1所示,采用本申请的一些实施例生成多路预报数据的模块100输出由其生成的第一路台风预报数据110、第二路台风预报数据120、……、第N路台风预报数据,其中,N为大于1的自然数。通过本申请的一些实施例的生成多路预报数据的模块100生成的多路预报数据可以增加集合数值预报成员的数量。针对生成多路预报数据的模块100的具体工作过程请参考下文图3和图4及相关描述,在此不做过多赘述。
计算模块200用于接收输入的多路台风预报数据(对应于下文的多路预报数据)并对各路台风预报数据基于图像处理器GPU进行并行计算输出与各路台风预报数据对应的各路台风风暴潮预报结果。如图1所示的,计算模块200输出了与第一路台风预报数据110对应的第一路台风风暴潮预报结果210、与第二路台风预报数据120对应的第二路台风风暴潮预报结果220、……、以及与第N路台风预报数据对应的第N路台风风暴潮预报结果。针对计算模块200的具体的计算方式可以参考下文描述在此不做过多赘述。
权重赋值模块300用于对输入的多路台风风暴潮预报结果进行更加合理的权重赋值合并计算得到图1的输出预报结果。本申请一些实施例的各路台风风潮预报结果的权重赋值方式可以参考下文描述,为避免重复在此不做过多赘述。
需要说明的是,图1的生成多路预报数据的模块100、计算模块200以及权重赋值模块300可以分别位于不同的物理设备中,也可以位于同一物理设备中。作为一个示例,可以将生成多路预报数据的模块100和权重赋值模块300设置在同一物理设备,将计算模块设置在一个或多个设备组成的集群系统中。
如图2所示,本申请实施例提供一种基于GPU并行计算的风暴潮集合数值预报方法,所述风暴潮的集合数值预报方法包括:S101,生成多路预报数据(例如,生成多路台风预报数据);S102,由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;S103,根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果。
本申请的一些实施例通过引入图像处理器GPU并行处理多路预报数据明显提升了多计算网格点风暴潮预报的速度。需要说明的是,计算网格点是为了实现计算机模拟计算而将实际的地形进行离散化处理,分成非常小的网格点,计算网格点是赋予物理量的最小单元。计算网格点越小,分辨率越高。
下面逐一示例性阐述上述三个步骤的处理过程。
S101涉及的多路预报数据(例如,图1的各路台风预报数据)对应的多条路径是通过如下方式获取的:根据台风误差半径确定多个同心圆;针对所述多个同心圆中的各同心圆分别选择台风主观预报路径、以及相对于所述主观路径预报路径多个方位的辅助预报路径,作为与所述各同心圆相关的多条预报路径。例如,所述生成多路预报数据之前,所述风暴潮的集合数值预报方法还包括:设置所述台风误差半径,设置大风半径增量并设置所述多条路径的总数量;所述针对所述多个同心圆中的各同心圆分别选择台风主观预报路径、以及相对于所述主观路径预报路径四个方位的辅助预报路径,作为与所述各同心圆相关的多条预报路径,包括:根据所述总数量、所述台风误差半径和所述大风半径增量确定所述各同心圆的所述预报路径。本申请的一些实施例通过台风误差半径、大风半径增量可以快速生成大量的路径,进而模拟生成大量路径对应的路径预报数据。
下面结合图3和图4示例性阐述本申请一些实施例获取多条路径的方法,即示例性阐述图1的台风集合预报路径(即多条台风预报数据对应的多条台风预报路径)的生成方法。由于台风风暴潮的集合预报依赖于台风预报路径的集合预报,因此提升集合预报包括的预报路径的数量会提升台风集合预报的准确性。
本申请一些实施例的台风集合路径生成方法以主观预报路径为基础,基于当前台风路径和强度预报误差,考虑未来台风可能出现的不同路径、移速和强度(含对应的大风半径)的变化,利用一定的算法生成台风集成路径成员。
台风集合路径成员生成方法如图3。图3的除了主观预报路径以外,在特定的台风预报误差半径(即图3的虚线圆)上,考虑台风路径偏左、偏右、偏快和偏慢四种可能性(合计5个预报成员对应5条路径)。台风预报误差半径可以通过历年预报统计所得。例如,以台风主观预报的前进方向为0点,在误差概率圆上分别顺时针旋转270°、90°、0°和180°即可找到一定时间后台风可能的位置。本申请的一些实施例提供的增加预报成员(即增加预报数据对应的路径数目)的方式如图4所示,在台风预报误差范围内,均匀增加“概率圆”的个数(例如图4包括两个概率圆),每增加一个概率圆,即增加4个预报成员。例如,本申请的实施例采用7个概率圆或称为7个同心圆(合计29个预报成员),每个预报成员再考虑台风强度的增减(例如,强度增加或减少5hPa以及强度增加或减少10hPa,每个预报成员增加四种情况)及相应大风半径的变化,最终台风预报成员可以增加至145个,可以满足台风风暴潮集合预报和概率预报的需求。也就是说,29个预报成员仅考虑了台风路径的偏转和移速快慢,没有考虑强度的变化,如再考虑四种强度的增减,总成员就变成29*5=145个。
本申请的一些实施例中S102包括:采用所述中央处理器对所述多路预报数据和对应的各路预报结果进行前处理、后处理以及输入输出操作,其中,所述前处理包括:台风移速计算、台风参数(例如,经纬度、中心气压和大风半径等)插值计算以及地理相关常量的计算等,所述后处理包括预报结果定时提取以及海陆数据校验等;采用所述图像处理器对所述多路预报数据中各路预报数据包括的多个网格点的迭代运算,并将每次迭代运算的处理结果发送至所述中央处理器。
在本申请的一些实施例中,所述各路预报数据包括多个计算网格点的预报数据,S102涉及的预报结果是通过所述图像处理器计算所述各计算网格点的多个核函数得到的。例如,S012包括:图像处理器被配置为依次计算所述计算网格点的风应力核函数的值、连续方程核函数的值、动量方程核函数的值以及变量平滑核函数的值,其中,所述风应力核函数、所述连续方程核函数、所述动量方程核函数以及所述变量平滑核函数是对模型风场计算函数、风暴潮计算函数和平滑函数分解得到的;所述中央处理器还被配置负责所述风应力核函数、所述连续方程核函数、所述动量方程核函数和所述变量平滑核函数的迭代循环和收敛条件的控制。
在本申请的一些实施例中,S102包括:所述中央处理器读取第n路预报数据,并确认所述第n路预报数据不属于所述多路预报数据中的最后一路预报数据;在所述图像处理器中依次执行如下步骤:根据风应力核函数计算风应力变量,获得风应力变量值;根据连续方程核函数计算连续方程,获得水位变量值;根据动量方程核函数计算动量方程,获得流速变量值;根据变量平滑核函数平滑所述水位变量值和所述流速变量值,并提取最大风暴增水;其中,当所述中央处理确定所述第n路预报数据属于所述多路预报数据中的最后一路预报数据时,则输出所述图像处理器的计算结果,所述计算结果包括所述最大风暴增水。
为了进一步保证全局内存读写以及同步的正确性,在本申请的一些实施例中,所述中央处理器读取第n路预报数据,并确认所述第n路预报数据不属于所述多路预报数据中的最后一路预报数据之前,所述风暴潮的集合数值预报方法还包括:在所述图像处理器的全局变量中设置多个循环内变量,其中,所述循环内变量包括:水位和最大增水中的至少一个;在所述中央处理器的全局变量中设置结果变量或者常量。
在一些实施例中,通过如下公式确定所述图像处理器第一线程块中第一线程所处理的全局变量所对应的计算网格点:
i=(blockId%x-1)*blockDim%x+threadId%x
j=(blockId%y-1)*blockDim%y+threadId%y
其中,i和j分别代表全局变量经向和纬向的编号(即在计算网格中的位置),blockId%x和blockId%y分别代表线程块(block)经向和纬向的逻辑分布编号,blockDim%x和blockDim%y分别代表线程块经向和纬向的逻辑分布数量,threadId%x和threadId%y分别代表一个线程块中线程(thread)经向和纬向的逻辑分布编号。需要说明的是,上述第一线程块泛指所有线程块中的任意一个线程块,上述第一线程泛指第一线程块中的任意一个线程。
下面结合台风预报为示例产生上述的S102。
本申请的一些实施例中提供的基于GPU并行计算的风暴潮集合数值预报方法包括:将水平计算网格点进行任务分解,将每个计算网格点上的计算动态分配给不同的线程进行计算,同时将整个算法过程按照计算任务不同拆分成多个在图像处理器GPU上执行的核函数(kernal),每个核函数kernal内部计算所需要的数据可以从全局内存读入,或者由线程自身计算更新得到,不需要访问外部线程计算所得的数据。每个核函数kernal内的多线程不存在数据依赖,而核函数kernal之间的数据依赖通过全局内存以及线程同步来进行线程间的数据通信。
在基于GPU的风暴潮数值预报模式并行计算算法中,需要中央处理器CPU来对图像处理器GPU分配计算线程,由GPU来执行计算,最终再将计算结果返回中央处理器CPU。业务化台风风暴潮数值模式CTS算法中每个时间步中的算法过程相同,包含了模型风场计算函数、风暴潮计算函数(包含水位和流速计算)和平滑函数三个主要函数,这三个函数的计算有先后关系,而且存在数据依赖关系。例如,模型风场计算函数是基于国际上通用的高桥和藤田公式编写,风暴潮计算函数是基于流体动力学的基本方程编写,在此不做过多赘述,平滑函数是将变量进行空间平滑得到的(例如,一个计算网格点原始值乘以0.6,周围四个点乘以0.1,求和即得该网格点平滑值)。
图像处理器GPU负责风暴潮数值预报模式中模型风场计算函数、风暴潮计算函数和平滑函数的并行计算,中央处理器CPU负责上述三个计算函数的迭代循环和收敛条件的控制以及风暴潮数值预报模式中台风数据(包含台风位置、中心气压、大风半径、移速等)插值计算、数据后处理等。
开发基于GPU的风暴潮并行的计算模块200主要分以下几个步骤:
(1)需要区分在图像处理器GPU和中央处理器CPU上运行的变量,并分别定义。
在GPU设计中,将CPU及系统的内存称为主机,将GPU及GPU本身的现实内存称为设备。在GPU上运行的变量声明为设备(device)变量,如:将中心气压项声明为设备,存放在GPU全局存储器中,具体表述方法如下:real,device::P(MM,NN),其中MM和NN分别是经向和纬向的网格数。常量声明为value(或constant),具体表述方法如下:integer,value::RR,其中RR代表地球半径。设备代码kernal函数里面定义的没有特别声明属性变量放在寄存器内存里。
(2)线程块(block)和线程(thread)的分配
要实现GPU的计算模型,要将程序的计算任务分配给各个线程来执行。GPU线程以网格(grid)的方式进行组织,每个网格中包含若干个线程块(block),不同线程块的线程(thread)之间互不干扰。同一线程块中的线程在任一时刻都执行相同的指令,并且通过共享内存可实现块内线程间的通信。由于一个block最多能开2048个线程,相关技术人员可以使用多个线程块block来满足计算需求。
每一个线程可以同步内置代码,用blockId,threadId来识别,表示线程属于线程块block(blockId%x,blockId%y)里的第(threadId%x,threadId%y)个线程。这样可以通过如下公式来计算出全局唯一变量i和j,并将其作为全局变量数组下标。
i=(blockId%x-1)*blockDim%x+threadId%x
j=(blockId%y-1)*blockDim%y+threadId%y
其中,blockDim%x和blockDim%y分别代表线程块经向和纬向的逻辑分布数量。
由于计算网格点可能不够全部线程来划分,为了避免越界和多余计算,将i和j做出限制,只有分配到网格的线程才做计算。
基于GPU的风暴潮并行计算模式需定义两个变量:
tBlock=dim3(16,8,1)
grid=dim3(blockDim%x,blockDim%y,1)
其中,tBlock表示一个线程块block里面线程thread分布,这里表示128个线程,逻辑二维划分,x方向(即tBlock%x)16个,y方向(即tBlock%y)8个。grid表示block逻辑分布,也是二维划分,x方向和y方向分别为blockDim%x个和blockDim%y个,具体求解公式如下:
blockDim%x=ceiling(MM/tBlock%x)
blockDim%y=ceiling(NN/tBlock%y)
其中,MM和NN分别是经向和纬向的计算网格点的数量,ceiling代表向上取整。
(3)根据计算任务不同编写不同功能的核函数。
例如,核函数kernal的编写主要利用以GPU和GPU内存为工作对象的CUDA Fortran语言,可以通过Fortran语言把外部数据读入,再分配数据给CUDA Fortran,以便在GPU上计算,然后将计算结果返回给Fortran,以便进一步工作。具体地,图像处理器被配置为依次计算所述计算网格点的风应力核函数的值、连续方程核函数的值、动量方程核函数的值以及变量平滑核函数的值,其中,所述风应力核函数、所述连续方程核函数、所述动量方程核函数以及所述变量平滑核函数是对模型风场计算函数、风暴潮计算函数和平滑函数分解得到的。需要说明的是,模型风场计算函数、风暴潮计算函数和平滑函数对应的具体方程属于现有技术在此不做过多赘述,本领域技术人员可以在本申请的技术启示下分解这三个函数得到风应力核函数、连续方程核函数、动量方程核函数以及变量平滑核函数各自对应的方程。
不同的线程块(block)之间的线程在核函数kernal中不能共享内存,同时也不能同步,只能在核函数kernal之间进行同步。如果不同线程块block之间的线程要访问别的线程的数据,只能通过读写全局内存来实现。因此根据以上要求,本申请的发明人将风暴潮数值预报模式循环迭代中的三个主要函数分解成4个具有先后关系的核函数kernal(即step1:风应力计算核函数、step2:连续方程计算核函数、step3:动量方程核函数和step4:变量平滑核函数),来保证全局内存读写以及同步的正确性。
需要注意的是,核函数被CPU主程序调用,子程序subroutine之前需要加attributes(global)。
(4)在CPU端调用核函数进行GPU并行计算。
例如,调用核函数的方式如下:
CALL step1<<<grid,tBlock>>>(X0,Y0,DENA,RR,MM,NN,DT…)
其中,“<<<>>>”运算符内是核函数kernal的执行参数,用于说明核函数中的线程数量,以及线程是如何组织的。小括号()中的变量为从CPU端直接拷贝的初始数据,例如,X0和Y0分别代表模拟区域的西边界和北边界,DENA代表海水密度,RR代表地球半径,MM和NN分别代表经向和纬向的计算网格点的总数目,DT代表数值模式计算的时间步长。由于CPU和GPU端数据拷贝非常耗时,设计程序时要尽量减少拷贝,让中间变量一直保持在GPU全局内存上。计算完成后,将最终需要输出的结果变量(即各站风暴潮时序变化数据和最大增水分布数据)从GPU端拷贝到CPU端,进行输出。中间变量即为计算下一时刻水位和流速的输入值,也是上一时刻的计算值。
如图5所示,该图提供了本申请一些实施例的风暴潮并行计算模式。
S211,在GPU全局变量中设置气压、风应力、水深、水位、流速、最大增水、各潮位站位置及各站风暴潮时序变化等变量。
S212,在CPU全局变量中设置相应的数据变量和常数变量,例如,设置水位、流速、最大增水、风暴潮时序变化等变量初始值为0。
S213,读取水深地形数据。
S214,读取潮位站位置数据。
S221,读取某时刻台风路径数据。
S222,利用图像处理器GPU核函数计算风应力变量对应的风应力;
S223,利用GPU核函数计算连续方程输出水位变量;
S224,利用GPU核函数计算动量方程输出流速变量;
S225,利用GPU核函数平滑水位、流速等变量,并提取最大风暴增水;
例如,核函数可以是使用DUDA语言重新编写的流体动力学方程。
S227,判断台风路径数据是否读取完毕,未完毕返回S221,完毕进入下一步;
S228,将结果数据(包含最大风暴增水分布数据和各潮位站风暴增水时序数据等)从GPU端拷贝至CPU端,并输出结果文件;在一些实施例中还可以输出计算所花费时间。
需要说明的是,图5的S211至S228全部流程为模拟预测一路预报数据对应的预报结果处理的过程,其中,S221是读取一路数据(包含多个时次)中某一个时刻的台风数据。可以理解的是,对于多路预报数据对应的预报结果处理流程可以参考图5的S211至S228。下面示例性阐述权重系数赋值方法。
在本申请的一些实施例中,所述权重系数是根据如下策略确定的:对应于所述台风主观预报路径的预报结果的权重系数最大,越接近所述主观预报路径的所述辅助预报路径对应的预报结果的权重系数越大,同一所述同心圆上的多条预报路径对应的多个预报结果的权重系数相同。例如,所述权重系数是根据高斯分布函数确定的。
本申请一些实施例使用的高斯分布如下:
f(x)=exp(-(x-c)2/(2σ2)),
其中,c为位置参数(数学期望),σ为尺度参数(方差),σ=1.4。
在一些示例中,主观预报路径(中间路径)权重w0为1,假设有7个内概率圆(或称为同心圆),内概率圆c1至外概率圆c7权重wi(i=1~7)按高斯分布逐渐递减,分别为0.938,0.775,0.563,0.360,0.203,0.100,0.044。
在一些示例中,各预报成员在集合预报中所占百分比(即各路径对应的预报结果在输出预报结果中所占的百分比)公式如下:
pi=wi/∑wi(i=0~7)
其中,wi为第i个概率圆上的权重。
例如,对应于7个概率圆的台风集合成员,从主观预报路径到最外概率圆的权重百分比分别为25.10%,23.54%,19.45%,14.14%,9.05%,5.10%,2.52%,1.10%(合计100%)。
风暴潮最终集合预报结果(即图1的输出预报结果)则为:
WL集合=WL0*p0+∑WLmi*pi(i=1~7)
其中,WL0为主观预报路径模拟结果(即主观预报路径对应的预报结果,模拟结果数据包括风暴增水或总潮位),WLmi各概率圆(或称为同心圆)上预报成员模拟结果的平均值。
为了向用户提供一个功能全面的风暴潮预测平台,在本申请的一些实施例中,所述根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果之后,所述方法还包括:制作最大增水分布产品(含集合预报产品)并显示;制作特定风暴增水强度下的概率分布产品并显示;制作单站概率预报产品并显示。需要说明的是,制作各潮位站风暴增水概率和总潮位概率产品(含集合预报产品)时,仅统计事件出现的次数,认为各预报成员模拟结果是具有相同可能性的事件。例如145个成员中,有100个成员在某潮位站处模拟风暴增水大于1米,则该潮位站此次风暴潮过程大于1米的概率是100/145*100%=69.0%;同理,100个成员模拟总潮位(风暴潮叠加天文潮即总潮位,天文潮为事先通过调和分析计算所得)达到了当地警戒潮位,则此次风暴潮过程达到当地警戒潮位的概率为69.0%。需要说明的是,制作集合预报产品时,不同事件按上述各路预测结果权重赋值并叠加输出最终的产品;计算单站概率时,只是统计事件出现的次数,不考虑各路预报结果的权重问题,或认为各路预报结构在输出预报结果中的权重相同。
下面示例性阐述基于GPU并行计算的台风风暴潮集合数值预报系统平台。
台风风暴潮集合数值预报系统主要功能是:通过获取台风报文(例如,台风报文中主要记录目前台风位置、中心气压、最大风速,以及未来一段时间台风预报位置、中心气压和最大风速)或台风路径文件生成若干条(几条到上百条可选)考虑台风强度、大风半径和路径变化的台风路径文件,进而在GPU上运行台风风暴潮模式,生成不同情境下的风暴潮预报结果,再将上百个预报成员的模拟结果(或称为预报结果)按照一定算法赋予权重,提供风暴潮概率预报和综合预报结果(即获取输出预报结果)。这里所述路径文件即根据台风报文或历史数据生成的模式所需输入文件(集合成员之一),并由此生成多个集合预报成员,文件包含时间、台风位置、中心气压和大风半径等。
具体操作流程如图6所示:
S510,输入台风报文或路径文档。
S520,设置台风预报误差半径和大风半径增量(可默认)、设定成员个数(即设定多路预报数据对应的路径的数量),例如,选择台风预报成员个数(5-145个可选,更改设置可增加更多预报成员);
S530,根据设置的台风预报误差半径、大风半径增量以及成员数量生成多个台风预报成员(即获取图1的多路预报数据对应的多路路径)。在一些实施例中,可以通过显示器展示生成的多个台风预报成员,具体地,制作若干个台风预报成员的模式输入文件,并将预报成员输出到屏幕。通过展示生成的多个台风预报成员方便预报员在提交GPU计算之前确认预报成员是否有误或是否恰当。
S540,读取水深地形数据和潮位站位置数据。
S550,模式启动,即启动风暴潮GPU并行计算模式,进行快速计算,读取上百个预报成员的模拟结果文件,并保存成系统可以快速读取的文件,也就是得到输出结果文件。
S560,制作产品,即根据上述权重系数确定方法为各预报成员赋予权重,并绘制最大风暴潮分布产品(可选择是否叠加高清卫片),对应于制作输出最大增水产品;制作特定风暴增水强度下的概率分布产品(可选择是否叠加高清卫片);制作所选区域的各潮位站风暴增水和总潮位概率分布产品。对于制作特定风暴增水下的概率分布产品,例如大于1米的概率,统计各预报成员模拟结果中所有格点大于1米个数,再除以成员个数,即得概率分布,绘制成图即可。同理,制作风暴增水和总潮位概率分布产品除了绘制时序曲线以外,附上不同强度或量值下计算的概率,即得概率分布产品。
需要说明的是,在本申请的一些实施例中还可以通过显示器(例如屏幕)展示制作得到的最大增水产品、概率分布产品以及单站概率预报产品(即图6的S590)或者采用屏幕显示生成的台风预报路径成员(即图6的S580)。
S570,完成后退出系统。
请参考图7,图7示出了本申请实施例提供的风暴潮的集合数值预报装置,应理解,该装置与上述图2方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该风暴潮的集合数值预报装置,包括:多路数据生成模块701,被配置为生成多路预报数据;迭代计算模块702,被配置为由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;预报结果获取模块703,被配置为根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述图2方法中的对应过程,在此不再过多赘述。
如图8所示,本申请的一些实施例提供一种风暴潮的集合数值预报系统,包括控制设备800和计算设备830;其中,所述控制设备800包括中央处理器810,所述计算设备830包括图像处理器831,其中,所述控制设备800被配置为执行由上述中央处理器执行的方法,所述计算设备被配置为执行由上述图像处理器执行的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (11)
1.一种基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述风暴潮的集合数值预报方法包括:
生成多路预报数据;
由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;
根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果;
其中,所述各路预报数据包括多个计算网格点的数据,所述预报结果是通过所述图像处理器计算所述各计算网格点的多个核函数得到的;
所述由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果,包括:
采用所述中央处理器对所述多路预报数据和对应的所述预报结果进行前处理、后处理以及输入输出操作,其中,所述前处理包括:台风移速计算、台风参数插值计算以及地理相关常量的计算,所述台风参数包括经纬度、中心气压和大风半径,所述后处理包括定时提取所述预报结果以及海陆数据校验;
采用所述图像处理器对所述多路预报数据中各路预报数据包括的多个网格点的迭代运算,并将每次迭代运算的处理结果发送至所述中央处理器;
通过高斯分布函数计算所述各路预报结果的权重系数。
2.如权利要求1所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,
所述图像处理器被配置为依次计算所述计算网格点的风应力核函数的值、连续方程核函数的值、动量方程核函数的值以及变量平滑核函数的值,其中,所述风应力核函数、所述连续方程核函数、所述动量方程核函数以及所述变量平滑核函数是对模型风场计算函数、风暴潮计算函数和平滑函数分解得到的;
所述中央处理器还被配置负责所述风应力核函数、所述连续方程核函数、所述动量方程核函数和所述变量平滑核函数的迭代循环和收敛条件的控制。
3.如权利要求1所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果,包括:
所述中央处理器读取第n路预报数据,并确认所述第n路预报数据不属于所述多路预报数据中的最后一路预报数据,其中,所述n为大于等于1的自然数;
在所述图像处理器中依次执行如下步骤:
根据风应力核函数计算风应力变量,获得风应力变量值;
根据连续方程核函数计算连续方程,获得水位变量值;
根据动量方程核函数计算动量方程,获得流速变量值;
根据变量平滑核函数平滑所述水位变量值和所述流速变量值,并提取最大风暴增水;
其中,当所述中央处理器确定所述第n路预报数据属于所述多路预报数据中的最后一路预报数据时,则输出所述图像处理器的计算结果,所述计算结果包括所述最大风暴增水。
4.如权利要求3所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述中央处理器读取第n路预报数据,并确认所述第n路预报数据不属于所述多路预报数据中的最后一路预报数据之前,所述基于GPU并行计算的风暴潮集合数值预报方法还包括:
在所述图像处理器的全局变量中设置多个循环内变量,其中,所述循环内变量包括:水位和最大增水中的至少一个;
在所述中央处理器的全局变量中设置结果变量或者常量。
5.如权利要求4所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,通过如下公式确定所述图像处理器第一线程块中第一线程所处理的全局变量所对应的计算网格点:
i=(blockId%x-1)*blockDim%x+threadId%x
j=(blockId%y-1)*blockDim%y+threadId%y
其中,i和j分别代表全局变量经向和纬向的编号,blockId%x和blockId%y分别代表线程块经向和纬向的逻辑分布编号,blockDim%x和blockDim%y分别代表线程块经向和纬向的逻辑分布数量,threadId%x和threadId%y分别代表一个线程块中线程经向和纬向的逻辑分布编号。
6.如权利要求1所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述多路预报数据对应的多条路径是通过如下方式获取的:
根据台风误差半径确定多个同心圆;
针对所述多个同心圆中的各同心圆分别选择台风主观预报路径、以及相对于所述台风主观预报路径多个方位的辅助预报路径,作为与所述各同心圆相关的多条预报路径。
7.如权利要求6所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述权重系数是根据如下策略确定的:对应于所述台风主观预报路径的预报结果的权重系数最大,越接近所述主观预报路径的所述辅助预报路径对应的预报结果的权重系数越大,同一所述同心圆上的多条预报路径对应的多个预报结果的权重系数相同。
8.如权利要求7所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述生成多路预报数据之前,所述方法还包括:设置所述台风误差半径,设置大风半径增量并设置所述多条路径的总数量;
所述针对所述多个同心圆中的各同心圆分别选择台风主观预报路径、以及相对于所述主观路径预报路径四个方位的辅助预报路径,作为与所述各同心圆相关的多条预报路径,包括:根据所述总数量、所述台风误差半径和所述大风半径增量确定所述各同心圆的所述预报路径。
9.如权利要求1所述的基于GPU并行计算的风暴潮集合数值预报方法,其特征在于,所述根据各路所述预报结果和与所述各路预报结果对应的权重系数确定输出预报结果之后,所述基于GPU并行计算的风暴潮集合数值预报方法还包括:
制作最大增水模型并显示;
制作单站概率预报模型并显示。
10.一种基于GPU并行计算的风暴潮集合数值预报装置,其特征在于,所述风暴潮的集合数值预报装置包括:
多路模拟数据生产模块,被配置为生成多路预报数据;
迭代计算模块,被配置为由中央处理器对图像处理器分配多个计算线程,并由所述图像处理器基于所述多个计算线程并行计算所述多路预报数据中各路预报数据对应的预报结果,得到多路所述预报结果;
预报结果获取模块,被配置为根据权重系数和所述多路预报结果得到预报结果;
其中,所述各路预报数据包括多个计算网格点的数据,所述预报结果是通过所述图像处理器计算所述各计算网格点的多个核函数得到的;
采用所述中央处理器对所述多路预报数据和对应的所述预报结果进行前处理、后处理以及输入输出操作,其中,所述前处理包括:台风移速计算、台风参数插值计算以及地理相关常量的计算,所述台风参数包括经纬度、中心气压和大风半径,所述后处理包括定时提取所述预报结果以及海陆数据校验;
采用所述图像处理器对所述多路预报数据中各路预报数据包括的多个网格点的迭代运算,并将每次迭代运算的处理结果发送至所述中央处理器;
通过高斯分布函数计算所述各路预报结果的权重系数。
11.一种基于GPU并行计算的风暴潮集合数值预报系统,包括控制设备和计算设备;
其中,
所述控制设备包括中央处理器,所述计算设备包括图像处理器,其中,所述控制设备被配置为执行如权利要求1-9中任一项由所述中央处理器执行的方法,所述计算设备被配置为执行如权利要求1-9中任一项由所述图像处理器执行的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011054190.7A CN112147719B (zh) | 2020-09-29 | 2020-09-29 | 一种基于gpu并行计算的风暴潮集合数值预报方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011054190.7A CN112147719B (zh) | 2020-09-29 | 2020-09-29 | 一种基于gpu并行计算的风暴潮集合数值预报方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112147719A CN112147719A (zh) | 2020-12-29 |
CN112147719B true CN112147719B (zh) | 2021-07-27 |
Family
ID=73894541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011054190.7A Active CN112147719B (zh) | 2020-09-29 | 2020-09-29 | 一种基于gpu并行计算的风暴潮集合数值预报方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112147719B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156525A (zh) * | 2014-08-05 | 2014-11-19 | 天津大学 | 一种提高风暴潮灾害风险预测精度的方法 |
CN109102008A (zh) * | 2018-07-27 | 2018-12-28 | 合肥佳讯科技有限公司 | 一种基于gpu的雷暴核识别方法 |
CN110211325A (zh) * | 2019-06-27 | 2019-09-06 | 上海同望信息技术有限公司 | 一种基于气象大数据的区域道路结冰高精度监测预警系统 |
CN111489525A (zh) * | 2020-03-30 | 2020-08-04 | 南京信息工程大学 | 多数据融合的气象预测预警方法 |
-
2020
- 2020-09-29 CN CN202011054190.7A patent/CN112147719B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156525A (zh) * | 2014-08-05 | 2014-11-19 | 天津大学 | 一种提高风暴潮灾害风险预测精度的方法 |
CN109102008A (zh) * | 2018-07-27 | 2018-12-28 | 合肥佳讯科技有限公司 | 一种基于gpu的雷暴核识别方法 |
CN110211325A (zh) * | 2019-06-27 | 2019-09-06 | 上海同望信息技术有限公司 | 一种基于气象大数据的区域道路结冰高精度监测预警系统 |
CN111489525A (zh) * | 2020-03-30 | 2020-08-04 | 南京信息工程大学 | 多数据融合的气象预测预警方法 |
Non-Patent Citations (2)
Title |
---|
Computational Fluid Dynamics Simulation of Open-Channel Flows Over Bridge-Decks Under Various Flooding Conditions;S.PATIL, M.KOSTIC, P.MAJUMDAR;《Proceedings of the 6th WSEAS International Conference on FLUID MECHANICS (FLUIDS"09)》;20090112;第3节 * |
基于VOF法的风暴潮洪水演进三维数值模拟;王晓玲 等;《中国工程科学》;20111231;第13卷(第12期);摘要,第4节 * |
Also Published As
Publication number | Publication date |
---|---|
CN112147719A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Díaz et al. | Application of Monte Carlo and Fuzzy Analytic Hierarchy Processes for ranking floating wind farm locations | |
Ver Hoef et al. | SSN: An R package for spatial statistical modeling on stream networks | |
Akın et al. | The impact of historical exclusion on the calibration of the SLEUTH urban growth model | |
Clarke et al. | Calibrating SLEUTH with big data: Projecting California's land use to 2100 | |
Ergin | Coastal scenery assessment by means of a fuzzy logic approach | |
Bruna et al. | Geographically weighted panel regression | |
Spataro et al. | The new SCIARA-fv3 numerical model and acceleration by GPGPU strategies | |
Owadally et al. | An agent-based system with temporal data mining for monitoring financial stability on insurance markets | |
CN116090839A (zh) | 水资源耦合系统多重风险分析与评估方法及系统 | |
Horváth et al. | Kepler shuffle for real-world flood simulations on GPUs | |
Huang et al. | Influence of topographic features and stream network structure on the spatial distribution of hydrological response | |
Oh et al. | Machine learning‐based statistical downscaling of wind resource maps using multi‐resolution topographical data | |
CN112147719B (zh) | 一种基于gpu并行计算的风暴潮集合数值预报方法以及装置 | |
Corbetta et al. | Backtesting lambda value at risk | |
Gartsman et al. | Structural-hydrographic and morphometric analysis of river systems: Theoretical aspects | |
Chen | Stock price prediction using adaptive time series forecasting and machine learning algorithms | |
Jewson et al. | Adjusting catastrophe model ensembles using importance sampling, with application to damage estimation for varying levels of hurricane activity | |
Yin | Dynamical fractal: Theory and case study | |
de Melo et al. | Coastal morphodynamic emulator for early warning short-term forecasts | |
Ihshaish et al. | Parallel multi-level genetic ensemble for numerical weather prediction enhancement | |
Wang et al. | A parallel fish landscape model for ecosystem modeling | |
Ye | Estimating σ 2 for the Classical Linear Regression Model (CLRM) with the Presence of the Modifiable Areal Unit Problem (MAUP) | |
Hasanzadeh et al. | A learning-based algorithm for generation of synthetic participatory mapping data in 2D and 3D | |
Kukic et al. | Hybrid Simulator for Capturing Dynamics of Synthetic Populations | |
EP4300390A1 (en) | Method for generating workflow and workflow generating program |
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 |