一种面向地质灾害预警的最优算法并行数计算方法技术

技术编号:36271117 阅读:65 留言:0更新日期:2023-01-07 10:12
本发明专利技术公开了一种面向地质灾害预警的最优算法并行数计算方法,属于电子数字数据处理技术领域,步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;步骤二:创建运行记录表run_record;步骤三:进行单线程顺序遍历执行,记录单线程顺序遍历执行的计算开始时间和结束时间,得到单线程顺序遍历执行的总耗时;步骤四:往run_record表中插入单线程运行情况,其中并行数为1,可用线程数使用API获取,未使用线程数=可用线程数

【技术实现步骤摘要】
一种面向地质灾害预警的最优算法并行数计算方法


[0001]本专利技术属于电子数字数据处理
,具体是一种面向地质灾害预警的最优算法并行数计算方法。

技术介绍

[0002]地灾预报算法模块主要是偏CPU密集型计算,但也有部分算法涉及大量磁盘IO,难以使用公式来进行归纳确定最优并行数;不同服务器的CPU架构、核心数不同,程序运行在不同的服务器上时,传统公式可能不再适用,单纯使用公式计算得到的线程数可能并不是最优并行数,据此并行数实现的程序效率可能并非最高;提供少于所需的线程可能会导致计算时间变长,因为启动其他线程或等待线程被释放将消耗时间;另一方面,启动更多的线程将导致创建和终止(销毁)线程的不必要开销,以及内存开销。
[0003]在实际应用场景中,应用程序在不同的时间点可能需要不同数量的线程,如何找到最佳并行数后通过简单的设置,使预警系统能更快速、稳定的计算得到预警等级,是灾害实时预警领域一个亟待解决的问题。
[0004]因此,本专利技术提供了一种面向地质灾害预警的最优算法并行数计算方法,针对地质灾害预警系统中大规模预警任务并行计算时的最优并行数确定的问题,使计算时间与CPU利用率达到一个合理的平衡点。

技术实现思路

[0005]为了解决上述方案存在的问题,本专利技术提供了一种面向地质灾害预警的最优算法并行数计算方法。
[0006]本专利技术的目的可以通过以下技术方案实现:一种面向地质灾害预警的最优算法并行数计算方法,具体方法包括:步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;步骤二:创建运行记录表run_record;步骤三:进行单线程顺序遍历执行,记录单线程顺序遍历执行的计算开始时间和结束时间,得到单线程顺序遍历执行的总耗时;步骤四:往run_record表中插入单线程运行情况,其中并行数为1,可用线程数使用API获取,未使用线程数=可用线程数

1;步骤五:获取计算机CPU可用核心数,存入变量count中;步骤六:多线程并行执行,定义计算并行数变量n,设置初始并行数值为2;步骤七:将待计算预警任务集合划分为SN份;步骤八:创建一个执行线程池,往线程池中依次提交步骤七中各份计算任务,进行预警任务计算;步骤九:往run_record表中插入多线程运行情况,其中并行数为n,可用线程数使
用API获取,未使用线程数=可用线程数

n;换算不同并行数对应的加速比;步骤十:将并行数n加一,继续进行步骤八至步骤九,直至并行数等于XX;输出算法最优并行数记录表;步骤十一:每次预警计算前,获取目标数据,从最优并行数记录表中查询与本次目标数据相匹配的历史记录,选取加速比最优的并行数作为该次计算的并行数。
[0007]进一步地,进行单线程顺序遍历执行的方法包括:针对待计算任务集合,使用循环遍历集合内容,获取灾害点监测设备ID,调用相应算法对相应监测点进行数据处理与预测计算。
[0008]进一步地,调用相应算法对相应监测点进行数据处理与预测计算的方法包括:获取具有的灾害点监测设备ID,设置对应的数据处理算法,将设置的数据处理算法打上对应的灾害点监测设备ID标签,建立第一数据库,将当前的数据处理算法输出到第一数据库中进行储存,将第一数据库标记为算法库;识别获取的灾害点监测设备ID,输入到算法库中进行匹配,获得对应的数据处理算法,根据获得的数据处理算法进行相应的数据处理与预测计算。
[0009]进一步地,SN=任务数/n+1。
[0010]进一步地,所述线程池大小为n,用于维护和管理每个任务的执行线程。
[0011]进一步地,加速比=多线程计算时间/单线程计算时间。
[0012]进一步地,从最优并行数记录表中查询与本次目标数据相匹配的历史记录的方法包括:分别设置计算任务数和可用线程数的权重系数,分别标记为q1和q2,将目标数据中的计算任务数和可用线程数分别标记为RWm和XCm,将历史记录中的计算任务数和可用线程数分别标记为RWs和XCs,根据公式QD=q1
×
|RWm

RWs|/RWs+q2
×
|XCm

XCs|/XCs计算对应的匹配值,将计算的匹配值按照从小到大的顺序进行排序,获得第一序列,将第一序列中排序第一的匹配值对应的历史记录作为匹配的历史记录。
[0013]进一步地,步骤一至步骤十属于对历史计算情况管理,步骤十一属于根据计算情况确定最优并行数。
[0014]与现有技术相比,本专利技术的有益效果是:基于任何不同配置的具体计算机,根据已有模型,从1开始依次加一调整并行数,以所有模型运行结束的最短时间所对应的并行数作为输出结果,实现模型算法执行过程的并行数逐次优化和自动调整,可以使预警计算过程达到最优。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1为本专利技术方法流程图。
具体实施方式
[0017]下面将结合实施例对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例;基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0018]如图1所示,一种面向地质灾害预警的最优算法并行数计算方法,具体方法包括:步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;在一个实施例中,获取所有待计算的灾害点监测设备ID,一般获取的为目标范围内需要进行处理计算的灾害点监测设备ID,但是在某些情况下,可能因为目标范围的问题,导致具有相关联的灾害点监测设备没有列入获取的范围中,使得后续分析的数据不够全面,因此为了解决这个问题,提供以下校核方法:将目标范围内获取的灾害点监测设备标记为初始设备,目标范围即为划定的需要进行处理的区域范围;获取各个初始设备的标准设备信息,根据获得的标准设备信息获取与初始设备具有关联性的灾害点监测设备,标记为待选设备,将待选设备中属于初始设备的灾害点监测设备进行剔除,获得筛选设备,将筛选设备标记为i,其中i=1、2、
……
、n,n为正整数;根据标准设备信息设置初始设备与各个筛选设备之间的关联值,将获得的关联值标记为GLi,获取筛选设备与目标范围边界之间的距离以及筛选设备的特征信息,根据获得的距离和特征信息设置对应的修正值,将设置的修正值标记为XZi,根据公式QYi=b1
×
GLi

b2
×
XZi计算对应的校核值,将校核值大于阈值X1的筛选设备加入初始设备中。
[0019]标准设备信息是按照规本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,具体方法包括:步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;步骤二:创建运行记录表run_record;步骤三:进行单线程顺序遍历执行,记录单线程顺序遍历执行的计算开始时间和结束时间,得到单线程顺序遍历执行的总耗时;步骤四:往run_record表中插入单线程运行情况,其中并行数为1,可用线程数使用API获取,未使用线程数=可用线程数

1;步骤五:获取计算机CPU可用核心数,存入变量count中;步骤六:多线程并行执行,定义计算并行数变量n,设置初始并行数值为2;步骤七:将待计算预警任务集合划分为SN份;步骤八:创建一个执行线程池,往线程池中依次提交步骤七中各份计算任务,进行预警任务计算;步骤九:往run_record表中插入多线程运行情况,其中并行数为n,可用线程数使用API获取,未使用线程数=可用线程数

n;换算不同并行数对应的加速比;步骤十:将并行数n加一,继续进行步骤八至步骤九,直至并行数等于XX;输出算法最优并行数记录表;其中XX为可用线程数;步骤十一:每次预警计算前,获取目标数据,从最优并行数记录表中查询与本次目标数据相匹配的历史记录,选取加速比最优的并行数作为该次计算的并行数。2.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,进行单线程顺序遍历执行的方法包括:针对待计算任务集合,使用循环遍历集合内容,获取灾害点监测设备ID,调用相应算法对相应监测点进行数据处理与预测计算。3.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,调用相应算法对相应监测点进行数据处理与预测计算的方法包括:...

【专利技术属性】
技术研发人员:邓吉秋张钰莎彭豁富钟杰刘超
申请(专利权)人:中大智能科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1