CN115576702A - 一种面向地质灾害预警的最优算法并行数计算方法 - Google Patents

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

Info

Publication number
CN115576702A
CN115576702A CN202211572252.2A CN202211572252A CN115576702A CN 115576702 A CN115576702 A CN 115576702A CN 202211572252 A CN202211572252 A CN 202211572252A CN 115576702 A CN115576702 A CN 115576702A
Authority
CN
China
Prior art keywords
calculation
parallel
algorithm
early warning
thread
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
Application number
CN202211572252.2A
Other languages
English (en)
Other versions
CN115576702B (zh
Inventor
邓吉秋
张钰莎
彭豁富
钟杰
刘超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongda Intelligent Technology Co ltd
Original Assignee
Zhongda Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongda Intelligent Technology Co ltd filed Critical Zhongda Intelligent Technology Co ltd
Priority to CN202211572252.2A priority Critical patent/CN115576702B/zh
Publication of CN115576702A publication Critical patent/CN115576702A/zh
Application granted granted Critical
Publication of CN115576702B publication Critical patent/CN115576702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

本发明公开了一种面向地质灾害预警的最优算法并行数计算方法,属于电子数字数据处理技术领域,步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;步骤二:创建运行记录表run_record;步骤三:进行单线程顺序遍历执行,记录单线程顺序遍历执行的计算开始时间和结束时间,得到单线程顺序遍历执行的总耗时;步骤四:往run_record表中插入单线程运行情况,其中并行数为1,可用线程数使用API获取,未使用线程数=可用线程数‑1;步骤五:获取计算机CPU可用核心数,存入变量count中;步骤六:多线程并行执行,定义计算并行数变量n,设置初始并行数值为2。

Description

一种面向地质灾害预警的最优算法并行数计算方法
技术领域
本发明属于电子数字数据处理技术领域,具体是一种面向地质灾害预警的最优算法并行数计算方法。
背景技术
地灾预报算法模块主要是偏CPU密集型计算,但也有部分算法涉及大量磁盘IO,难以使用公式来进行归纳确定最优并行数;不同服务器的CPU架构、核心数不同,程序运行在不同的服务器上时,传统公式可能不再适用,单纯使用公式计算得到的线程数可能并不是最优并行数,据此并行数实现的程序效率可能并非最高;提供少于所需的线程可能会导致计算时间变长,因为启动其他线程或等待线程被释放将消耗时间;另一方面,启动更多的线程将导致创建和终止(销毁)线程的不必要开销,以及内存开销。
在实际应用场景中,应用程序在不同的时间点可能需要不同数量的线程,如何找到最佳并行数后通过简单的设置,使预警系统能更快速、稳定的计算得到预警等级,是灾害实时预警领域一个亟待解决的问题。
因此,本发明提供了一种面向地质灾害预警的最优算法并行数计算方法,针对地质灾害预警系统中大规模预警任务并行计算时的最优并行数确定的问题,使计算时间与CPU利用率达到一个合理的平衡点。
发明内容
为了解决上述方案存在的问题,本发明提供了一种面向地质灾害预警的最优算法并行数计算方法。
本发明的目的可以通过以下技术方案实现:
一种面向地质灾害预警的最优算法并行数计算方法,具体方法包括:
步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;
步骤二:创建运行记录表run_record;
步骤三:进行单线程顺序遍历执行,记录单线程顺序遍历执行的计算开始时间和结束时间,得到单线程顺序遍历执行的总耗时;
步骤四:往run_record表中插入单线程运行情况,其中并行数为1,可用线程数使用API获取,未使用线程数=可用线程数-1;
步骤五:获取计算机CPU可用核心数,存入变量count中;
步骤六:多线程并行执行,定义计算并行数变量n,设置初始并行数值为2;
步骤七:将待计算预警任务集合划分为SN份;
步骤八:创建一个执行线程池,往线程池中依次提交步骤七中各份计算任务,进行预警任务计算;
步骤九:往run_record表中插入多线程运行情况,其中并行数为n,可用线程数使用API获取,未使用线程数=可用线程数-n;换算不同并行数对应的加速比;
步骤十:将并行数n加一,继续进行步骤八至步骤九,直至并行数等于XX;输出算法最优并行数记录表;
步骤十一:每次预警计算前,获取目标数据,从最优并行数记录表中查询与本次目标数据相匹配的历史记录,选取加速比最优的并行数作为该次计算的并行数。
进一步地,进行单线程顺序遍历执行的方法包括:
针对待计算任务集合,使用循环遍历集合内容,获取灾害点监测设备ID,调用相应算法对相应监测点进行数据处理与预测计算。
进一步地,调用相应算法对相应监测点进行数据处理与预测计算的方法包括:
获取具有的灾害点监测设备ID,设置对应的数据处理算法,将设置的数据处理算法打上对应的灾害点监测设备ID标签,建立第一数据库,将当前的数据处理算法输出到第一数据库中进行储存,将第一数据库标记为算法库;
识别获取的灾害点监测设备ID,输入到算法库中进行匹配,获得对应的数据处理算法,根据获得的数据处理算法进行相应的数据处理与预测计算。
进一步地,SN=任务数/n+1。
进一步地,所述线程池大小为n,用于维护和管理每个任务的执行线程。
进一步地,加速比=多线程计算时间/单线程计算时间。
进一步地,从最优并行数记录表中查询与本次目标数据相匹配的历史记录的方法包括:
分别设置计算任务数和可用线程数的权重系数,分别标记为q1和q2,将目标数据中的计算任务数和可用线程数分别标记为RWm和XCm,将历史记录中的计算任务数和可用线程数分别标记为RWs和XCs,根据公式QD=q1×|RWm-RWs|/RWs+q2×|XCm-XCs|/XCs计算对应的匹配值,将计算的匹配值按照从小到大的顺序进行排序,获得第一序列,将第一序列中排序第一的匹配值对应的历史记录作为匹配的历史记录。
进一步地,步骤一至步骤十属于对历史计算情况管理,步骤十一属于根据计算情况确定最优并行数。
与现有技术相比,本发明的有益效果是:
基于任何不同配置的具体计算机,根据已有模型,从1开始依次加一调整并行数,以所有模型运行结束的最短时间所对应的并行数作为输出结果,实现模型算法执行过程的并行数逐次优化和自动调整,可以使预警计算过程达到最优。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法流程图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种面向地质灾害预警的最优算法并行数计算方法,具体方法包括:
步骤一:创建待计算任务集合,获取所有待计算的灾害点监测设备ID,并依次添加至待计算任务集合中;
在一个实施例中,获取所有待计算的灾害点监测设备ID,一般获取的为目标范围内需要进行处理计算的灾害点监测设备ID,但是在某些情况下,可能因为目标范围的问题,导致具有相关联的灾害点监测设备没有列入获取的范围中,使得后续分析的数据不够全面,因此为了解决这个问题,提供以下校核方法:
将目标范围内获取的灾害点监测设备标记为初始设备,目标范围即为划定的需要进行处理的区域范围;获取各个初始设备的标准设备信息,根据获得的标准设备信息获取与初始设备具有关联性的灾害点监测设备,标记为待选设备,将待选设备中属于初始设备的灾害点监测设备进行剔除,获得筛选设备,将筛选设备标记为i,其中i=1、2、……、n,n为正整数;根据标准设备信息设置初始设备与各个筛选设备之间的关联值,将获得的关联值标记为GLi,获取筛选设备与目标范围边界之间的距离以及筛选设备的特征信息,根据获得的距离和特征信息设置对应的修正值,将设置的修正值标记为XZi,根据公式QYi=b1×GLi-b2×XZi计算对应的校核值,将校核值大于阈值X1的筛选设备加入初始设备中。
标准设备信息是按照规定的信息采集模板进行获取的,即根据信息采集模板中对应的数据采集项进行灾害点监测设备信息采集,进行对应整合后获得标准设备信息,信息采集模板是通过人工的方式进行设置,用于采集与相关联设备的信息,如连接关系、传输关系等。
根据标准设备信息设置初始设备与各个筛选设备之间的关联值,主要是根据初始设备与对应筛选设备之间的关联信息进行匹配的,具体的通过人工的方式根据可能具有的关联信息设置对应的关联值,因为初始设备与对应筛选设备之间的关联信息的种类是有上限的,尤其是符合要求的关联信息种类,因此可以快速地进行赋值,设置关联值,保障不符合要求的关联信息种类的关联值通过后续计算不会入选,进行整合为对应的关联值匹配表,进行相应的匹配后,获得对应的关联值。
筛选设备的特征信息,指的是该设备是否已经在其他系统中进行处理计算,是否允许列入本系统进行处理计算等相关信息,对于不需要列入的筛选设备,其通过预设的极大修正值直接落选,不符合选择要求,对于可以列入的,在根据对应的距离设置对应的修正值,具体的根据距离设置修正值的方法为:通过人工的方式设置对应的距离转化系数,通过获得的距离与转化系数进行相乘,获得对应的修正值,用于将距离过远的筛选设备进行剔除。
步骤二:创建运行记录表run_record;
run_record表的具体字段定义如下表;
Figure DEST_PATH_IMAGE001
步骤三:进行单线程顺序遍历执行,记录单线程顺序遍历执行的计算开始时间和结束时间,得到单线程顺序遍历执行的总耗时;
进行单线程顺序遍历执行的方法包括:
针对待计算任务集合,使用循环遍历集合内容,获取灾害点监测设备ID,调用相应算法对相应监测点进行数据处理与预测计算。
调用相应算法对相应监测点进行数据处理与预测计算的方法包括:
获取具有的灾害点监测设备ID,设置对应的数据处理算法,可以获取现有的对应灾害点监测设备类型的数据处理算法,将设置的数据处理算法打上对应的灾害点监测设备ID标签,建立第一数据库,将当前的数据处理算法输出到第一数据库中进行储存,将第一数据库标记为算法库;
识别获取的灾害点监测设备ID,输入到算法库中进行匹配,获得对应的数据处理算法,根据获得的数据处理算法进行相应的数据处理与预测计算。
步骤四:往run_record表中插入单线程运行情况,其中并行数为1,可用线程数使用API获取,未使用线程数=可用线程数-1;
步骤五:获取计算机CPU可用核心数,存入变量count中;
通过编程API获取计算机CPU可用核心数,如Java语言中的Runtime.getRuntime().availableProcessors()。
步骤六:多线程并行执行,定义计算并行数变量n,设置初始并行数值为2;
步骤七:将待计算预警任务集合划分为SN份;
其中,SN=任务数/n+1,如时并行数为5时,有11个待计算任务,则划分成3份;有8个待计算任务,则划分成2份。
步骤八:创建一个执行线程池,往线程池中依次提交步骤七中各份计算任务,进行预警任务计算;
所述线程池大小为n,用于维护和管理每个任务的执行线程。
步骤九:往run_record表中插入多线程运行情况,其中并行数为n,可用线程数使用API获取,未使用线程数=可用线程数-n;换算不同并行数对应的加速比;
加速比=多线程计算时间/单线程计算时间;单线程时间查询SELECT elapsed_time FROM run_record WHERE parallel_number=1;多线程时间查询SELECT elapsed_time FROM run_record WHERE parallel_number=n。
步骤十:将并行数n加一,继续进行步骤八至步骤九,直至并行数等于XX;输出算法最优并行数记录表;信息包括资源利用率、线程数、耗时等;其中XX为可用线程数。
以上步骤属于对历史计算情况管理。
步骤十一:每次预警计算前,获取目标数据,从最优并行数记录表中查询与本次目标数据相匹配的历史记录,选取加速比最优的并行数作为该次计算的并行数。
以上步骤属于根据计算情况确定最优并行数。
目标数据即预警任务数、资源情况(可用线程数)。
与本次目标数据相匹配的历史记录,指的是计算任务数、可用线程数相同或相近历史记录,在一个实施例中,可以直接使用现有的匹配优先级方法进行匹配。
在另一个实施例中,通过人工的方式分别设置计算任务数和可用线程数的权重系数,分别标记为q1和q2,将目标数据中的计算任务数和可用线程数分别标记为RWm和XCm,将历史记录中的计算任务数和可用线程数分别标记为RWs和XCs,根据公式QD=q1×|RWm-RWs|/RWs+q2×|XCm-XCs|/XCs计算对应的匹配值,将计算的匹配值按照从小到大的顺序进行排序,获得第一序列,将第一序列中排序第一的匹配值对应的历史记录作为匹配的历史记录。
上述公式均是去除量纲取其数值计算,公式是由采集大量数据进行软件模拟得到最接近真实情况的一个公式,公式中的预设参数和预设阈值由本领域的技术人员根据实际情况设定或者大量数据模拟获得。
以上实施例仅用以说明本发明的技术方法而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方法进行修改或等同替换,而不脱离本发明技术方法的精神和范围。

Claims (8)

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所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,调用相应算法对相应监测点进行数据处理与预测计算的方法包括:
获取具有的灾害点监测设备ID,设置对应的数据处理算法,将设置的数据处理算法打上对应的灾害点监测设备ID标签,建立第一数据库,将当前的数据处理算法输出到第一数据库中进行储存,将第一数据库标记为算法库;
识别获取的灾害点监测设备ID,输入到算法库中进行匹配,获得对应的数据处理算法,根据获得的数据处理算法进行相应的数据处理与预测计算。
4.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,SN=任务数/n+1。
5.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,所述线程池大小为n,用于维护和管理每个任务的执行线程。
6.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,加速比=多线程计算时间/单线程计算时间。
7.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,从最优并行数记录表中查询与本次目标数据相匹配的历史记录的方法包括:
分别设置计算任务数和可用线程数的权重系数,分别标记为q1和q2,将目标数据中的计算任务数和可用线程数分别标记为RWm和XCm,将历史记录中的计算任务数和可用线程数分别标记为RWs和XCs,根据公式QD=q1×|RWm-RWs|/RWs+q2×|XCm-XCs|/XCs计算对应的匹配值,将计算的匹配值按照从小到大的顺序进行排序,获得第一序列,将第一序列中排序第一的匹配值对应的历史记录作为匹配的历史记录。
8.根据权利要求1所述的一种面向地质灾害预警的最优算法并行数计算方法,其特征在于,步骤一至步骤十属于对历史计算情况管理,步骤十一属于根据计算情况确定最优并行数。
CN202211572252.2A 2022-12-08 2022-12-08 一种面向地质灾害预警的最优算法并行数计算方法 Active CN115576702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211572252.2A CN115576702B (zh) 2022-12-08 2022-12-08 一种面向地质灾害预警的最优算法并行数计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211572252.2A CN115576702B (zh) 2022-12-08 2022-12-08 一种面向地质灾害预警的最优算法并行数计算方法

Publications (2)

Publication Number Publication Date
CN115576702A true CN115576702A (zh) 2023-01-06
CN115576702B CN115576702B (zh) 2023-03-10

Family

ID=84590384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211572252.2A Active CN115576702B (zh) 2022-12-08 2022-12-08 一种面向地质灾害预警的最优算法并行数计算方法

Country Status (1)

Country Link
CN (1) CN115576702B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060107261A1 (en) * 2004-11-18 2006-05-18 Oracle International Corporation Providing Optimal Number of Threads to Applications Performing Multi-tasking Using Threads
JP2009104373A (ja) * 2007-10-23 2009-05-14 Nec Corp 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム
US20100031266A1 (en) * 2008-07-31 2010-02-04 International Business Machines Corporation System and method for determining a number of threads to maximize utilization of a system
CN103810048A (zh) * 2014-03-11 2014-05-21 国家电网公司 一种面向资源利用最优的线程数量自动调整方法及装置
CN113553175A (zh) * 2021-07-08 2021-10-26 浙江工业大学 面向交通数据流的最优排序算法选择方法
CN115016916A (zh) * 2022-06-30 2022-09-06 苏州浪潮智能科技有限公司 一种线程池调度方法、系统、设备及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060107261A1 (en) * 2004-11-18 2006-05-18 Oracle International Corporation Providing Optimal Number of Threads to Applications Performing Multi-tasking Using Threads
JP2009104373A (ja) * 2007-10-23 2009-05-14 Nec Corp 並列計算機システム、情報処理装置、ジョブ管理方法、およびジョブ管理プログラム
US20100031266A1 (en) * 2008-07-31 2010-02-04 International Business Machines Corporation System and method for determining a number of threads to maximize utilization of a system
CN103810048A (zh) * 2014-03-11 2014-05-21 国家电网公司 一种面向资源利用最优的线程数量自动调整方法及装置
CN113553175A (zh) * 2021-07-08 2021-10-26 浙江工业大学 面向交通数据流的最优排序算法选择方法
CN115016916A (zh) * 2022-06-30 2022-09-06 苏州浪潮智能科技有限公司 一种线程池调度方法、系统、设备及可读存储介质

Also Published As

Publication number Publication date
CN115576702B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
CN108038040A (zh) 计算机集群性能指标检测方法、电子设备及存储介质
WO2023124947A1 (zh) 一种任务处理方法、装置及相关设备
CN106383746A (zh) 大数据处理系统的配置参数确定方法和装置
CN113296905B (zh) 调度方法、装置、电子设备、存储介质及软件产品
CN106790529A (zh) 计算资源的调度方法、调度中心及调度系统
CN115904539A (zh) 一种切分策略的在线生成方法、装置、设备及存储介质
CN106201917B (zh) 一种数据处理系统和方法
CN117313957B (zh) 基于大数据分析的生产流水任务量智能预测方法
CN105488134A (zh) 大数据处理方法及大数据处理装置
CN114662953A (zh) 物联网设备运维方法、装置、设备及介质
CN110019116A (zh) 数据追溯方法、装置、数据处理设备及计算机存储介质
CN111176831B (zh) 基于多线程共享内存通信的动态线程映射优化方法及装置
US11775344B1 (en) Training task queuing cause analysis method and system, device and medium
CN115202847A (zh) 任务的调度方法和装置
CN110825526A (zh) 基于er关系的分布式调度方法及装置、设备以及存储介质
CN115576702B (zh) 一种面向地质灾害预警的最优算法并行数计算方法
CN107679133B (zh) 一种实用于海量实时pmu数据的挖掘方法
CN113722141B (zh) 数据任务的延迟原因确定方法、装置、电子设备及介质
CN113361974A (zh) 一种工业订单的生产调控管理方法、系统及计算机存储介质
CN109978038A (zh) 一种集群异常判定方法及装置
CN112860763B (zh) 实时流数据处理方法、装置、计算机设备和存储介质
CN117076141B (zh) 一种高适用性离线数据处理任务发布方法及系统
CN116700996B (zh) 一种神经网络的内存分配方法、装置、设备及介质
CN116307159A (zh) 一种负荷预测方法、装置、电子设备和存储介质
CN106651739B (zh) Gpu编程模型中核函数最优尺寸求解方法及装置

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