本技术涉及水文,具体涉及基于拓扑结构的网格化洪涝模型计算方法及相关装置。
背景技术:
1、在水文技术领域中,利用洪涝模型模拟降水导致的洪涝过程。洪涝模型是基于数学模型和计算机仿真实现的计算模型。洪涝模型处理输入的降水数据,得到降水的模拟结果。降水的模拟结果能够作为洪涝灾害防治的参考依据。
2、目前,洪涝模型处理降水数据的效率较低,难以满足对洪涝过程的快速模拟的要求。
技术实现思路
1、有鉴于此,本技术提供基于拓扑结构的网格化洪涝模型计算方法及相关装置,旨在提高洪涝模型处理降水数据的效率。
2、为解决上述问题,本技术提供的技术方案如下:
3、第一方面,本技术提供一种基于拓扑结构的网格化洪涝模型计算方法,洪涝模型基于计算单元组执行计算任务,所述计算单元组包括多个层级,每个层级包括至少一个计算单元,一个层级的计算单元的输出数据为该层级的下一个层级的计算单元的输入数据,所述方法包括:
4、获取输入所述洪涝模型的降水数据;
5、将所述降水数据作为每个处理所述降水数据的计算单元组的每个层级的计算单元的输入数据;
6、重复执行以下步骤,直到处理所述降水数据的计算单元组包括的计算单元均处于完成计算状态为止,得到所述洪涝模型处理所述降水数据得到的处理结果;
7、按照选取规则,从所述计算单元组中选取目标数量的处于未计算状态的计算单元,并将选取得到的所述目标数量的计算单元写入队列中;所述选取规则包括按照由高层级到低层级的顺序选取计算单元,并且在所述计算单元组的一个层级的计算单元均处于完成计算状态后,选取所述计算单元组的该层级的下一个层级的计算单元;所述计算单元组包括的计算单元的初始的状态为未计算状态;所述目标数量小于或者等于处于未计算状态的计算单元的数量,所述目标数量由运行所述洪涝模型的计算设备的最大可用的计算资源确定;
8、从线程池中调用所述目标数量的线程处理所述队列包括的计算单元的计算任务,将完成计算任务的计算单元的状态设置为完成计算状态。
9、在一种可能的实现方式中,所述目标数量小于或者等于所述计算设备的内存与每个计算单元占用的内存的比值。
10、在一种可能的实现方式中,所述目标数量小于或者等于所述计算设备的中央处理器核数。
11、在一种可能的实现方式中,所述降水数据基于原始降水数据通过预处理得到,并存储在所述计算设备的内存中以使计算单元调用。在一种可能的实现方式中,处理所述降水数据的计算单元组的数量为多个,所述选取规则还包括按照层级数量由大到小的顺序确定选取计算单元的计算单元组,且在一个计算单元组的一个层级中不包括处于未计算状态的计算单元且包括处于计算中状态的计算单元后,按照所述顺序确定下一个计算单元组为选取计算单元的计算单元组,所述计算中状态为处于处理计算任务过程中的计算单元的状态。
12、在一种可能的实现方式中,所述从所述计算单元组中选取目标数量的处于未计算状态的计算单元,包括:
13、从所述计算单元组的层级标识所指示的层级中,选取目标数量的处于未计算状态的计算单元,所述计算单元组的层级标识用于指示所述计算单元组中除全部计算单元均处于完成计算状态的层级以外的最高层级。
14、在一种可能的实现方式中,所述计算单元组与所述洪涝模型包括的区域内的河流流域对应,所述计算单元组用于计算与对应的河流流域相关的计算任务。
15、第二方面,本技术提供一种基于拓扑结构的网格化洪涝模型计算装置,洪涝模型基于计算单元组执行计算任务,所述计算单元组包括多个层级,每个层级包括至少一个计算单元,一个层级的计算单元的输出数据为该层级的下一个层级的计算单元的输入数据,所述装置包括:
16、获取单元,用于获取输入所述洪涝模型的降水数据;
17、输入单元,用于将所述降水数据作为每个处理所述降水数据的计算单元组的每个层级的计算单元的输入数据;
18、处理单元,用于重复执行以下步骤,直到处理所述降水数据的计算单元组包括的计算单元均处于完成计算状态为止,得到所述洪涝模型处理所述降水数据得到的处理结果;
19、按照选取规则,从所述计算单元组中选取目标数量的处于未计算状态的计算单元,并将选取得到的所述目标数量的计算单元写入队列中;所述选取规则包括按照由高层级到低层级的顺序选取计算单元,并且在所述计算单元组的一个层级的计算单元均处于完成计算状态后,选取所述计算单元组的该层级的下一个层级的计算单元;所述计算单元组包括的计算单元的初始的状态为未计算状态;所述目标数量小于或者等于处于未计算状态的计算单元的数量,所述目标数量由运行所述洪涝模型的计算设备的最大可用的计算资源确定;
20、从线程池中调用所述目标数量的线程处理所述队列包括的计算单元的计算任务,将完成计算任务的计算单元的状态设置为完成计算状态。
21、在一种可能的实现方式中,所述目标数量小于或者等于所述计算设备的内存与每个计算单元占用的内存的比值。
22、在一种可能的实现方式中,所述降水数据基于原始降水数据通过预处理得到,并存储在所述计算设备的内存中以使计算单元调用。
23、在一种可能的实现方式中,所述目标数量小于或者等于所述计算设备的中央处理器核数。
24、在一种可能的实现方式中,处理所述降水数据的计算单元组的数量为多个,所述选取规则还包括按照层级数量由大到小的顺序确定选取计算单元的计算单元组,且在一个计算单元组的一个层级中不包括处于未计算状态的计算单元且包括处于计算中状态的计算单元后,按照所述顺序确定下一个计算单元组为选取计算单元的计算单元组,所述计算中状态为处于处理计算任务过程中的计算单元的状态。
25、在一种可能的实现方式中,所述处理单元,用于从所述计算单元组中选取目标数量的处于未计算状态的计算单元,包括:
26、所述处理单元,用于从所述计算单元组的层级标识所指示的层级中,选取目标数量的处于未计算状态的计算单元,所述计算单元组的层级标识用于指示所述计算单元组中除全部计算单元均处于完成计算状态的层级以外的最高层级。
27、在一种可能的实现方式中,所述计算单元组与所述洪涝模型包括的区域内的河流流域对应,所述计算单元组用于计算与对应的河流流域相关的计算任务。
28、第三方面,本技术提供一种设备,包括:处理器、存储器、系统总线;
29、所述处理器以及所述存储器通过所述系统总线相连;
30、所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述第一方面任一实施方式所述的方法。
31、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述第一方面任一实施方式所述的方法。
32、由此可见,本技术具有如下有益效果:
33、本技术提供一种基于拓扑结构的网格化洪涝模型计算方法及相关装置。在方法中,洪涝模型基于计算单元组执行计算任务。计算单元组采用拓扑结构,计算单元组包括多个层级,每个层级包括至少一个计算单元,一个层级的计算单元的输出数据为该层级的下一个层级的计算单元的输入数据。获取输入洪涝模型的降水数据;将降水数据作为每个处理降水数据的计算单元组的每个层级的计算单元的输入数据;重复执行以下步骤,直到处理降水数据的计算单元组包括的计算单元均处于完成计算状态为止,得到洪涝模型处理降水数据得到的处理结果:按照选取规则,从计算单元组中选取目标数量的处于未计算状态的计算单元,并将选取得到的目标数量的计算单元写入队列中;从线程池中调用所述目标数量的线程处理队列包括的计算单元的计算任务,将完成计算任务的计算单元的状态设置为完成计算状态。选取规则包括按照由高层级到低层级的顺序选取计算单元,并且在计算单元组的一个层级的计算单元均处于完成计算状态后,选取计算单元组的该层级的下一个层级的计算单元。计算单元组包括的计算单元的初始的状态为未计算状态。目标数量小于或者等于处于未计算状态的计算单元的数量。每次选取的计算单元以及调用线程的目标数量是由运行洪涝模型的计算设备的最大可用的计算资源确定。如此能够调用目标数量的线程,充分利用计算设备的可用资源执行计算任务,,提升计算速度,提高处理降水数据的效率,加快利用洪涝模型模拟洪涝过程的速度,满足利用洪涝模型快速实现洪涝过程模拟的需求。