1.本技术涉及人工智能技术领域,尤其涉及一种多作业调度方法及装置。
背景技术:2.在现有的银行系统中,通常下游系统会接收不同上游系统发送的数据进行处理。如此,下游系统往往需要进行多作业调度,即对多种上游系统发送的数据进行调度处理。
3.目前,针对下游系统进行多作业调度,常用的方法是优先级调度方法。所谓优先级调度方法是指利用优先级规则,采取排队等待的方式进行多作业管理。比如,当多作业中存在优先级高的作业和优先级低的作业,先调度优先级高的作业进行处理,而优先级低的作业处于等待状态。然而这种在接收到高优先级作业时会直接停止所有低优先级作业的调度方式,会拉长多作业整体运行时间。
4.因此,如何减少多作业整体运行时间成为亟待解决的问题。
技术实现要素:5.有鉴于此,本技术实施例提供了一种多作业调度方法及装置,旨在解决现有技术中当接收到高优先级作业时,低优先级作业无法运行而导致的多作业整体运行时间较长的问题。
6.第一方面,本技术实施例提供了一种多作业调度方法,所述方法包括:
7.获取多个作业的运行时间参数和资源状态,确定所述多个作业的运行时间;所述运行时间参数包括作业等待时间、作业开始时间和作业处理时间,所述资源状态为执行作业所需要的硬件资源;
8.根据所述运行时间和资源状态,触发预设调度策略,所述预设调度策略为基于预设运行时间和资源状态对所述多个作业进行调度的规则;
9.可选的,在所述确定调度策略之前,所述方法还包括:
10.根据所述运行时间参数和第一预设算法,确定预设时间,所述预设时间包括预设等待时间、预设启动时间和预设处理时间。
11.可选的,所述根据所述运行时间参数和第一预设算法,确定预设时间,包括:
12.根据所述运行时间参数和历史运行时间参数,基于第一预设算法,获得加载作业拟合模型;
13.根据所述加载作业拟合模型,获取多作业拟合模型;根据所述多作业拟合模型,确定所述预设时间。
14.可选的,所述方法还包括:第一预设算法包括多参数线性回归算法。
15.可选的,根据第二预设算法,修正所述调度策略;根据所述修正后的调度策略,执行下一次多作业调度。
16.可选的,所述第二预设算法包括q学习算法。
17.第二方面,本技术实施例提供了一种多作业调度装置,所述装置包括:
18.监控模块,用于获取多个作业的运行时间参数和资源状态,确定多个作业的运行时间;所述运行时间包括作业等待时间、作业开始时间和作业处理时间;
19.策略确定模块,根据所述运行时间和资源状态,触发预设调度策略,所述预设调度策略为基于运行时间和资源状态对多个作业进行调度的规则;
20.调度模块,根据所述调度策略,同步进行多个作业的调度。
21.可选的,所述装置还包括:作业预测模块,用于根据所述运行时间和第一预设算法,确定预设时间,所述预设时间包括预设等待时间、预设启动时间和预设处理时间。
22.可选的,所述作业预测模块包括:
23.加载作业模型获取单元,用于
24.根据所述运行时间和历史作业信息,基于第一预设算法,获得加载作业拟合模型;
25.预设时间获取单元,用于根据加载作业预测模型,获取多作业预测模型;根据所述多作业预测模型,确定所述预设时间。
26.第三方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有程序或代码,所述程序或代码被处理器执行时实现如前述第一方面所述系统调度装置实现方法的步骤。
27.在执行所述方法时,系统首先基于资源状态和多个作业的运行时间,确定预设调度策略,所述调度策略综合考虑了多个作业的运行时间和资源状态,这种调度策略在进行多作业调度时,可以实现对多个作业同步调度。采用这种调度方法可以避免高优先级出现在队伍时低优先级无法作业的情况,从而减少了多作业整体运行时间。
附图说明
28.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本技术实施例提供的一种多作业调度方法流程图;
30.图2为本技术实施例提供的一种触发预设调度策略的方法流程图;
31.图3为本技术实施例提供的一种基于触发预设调度策略的应用示例图;
32.图4为本技术实施例提供的一种多作业调度装置结构示意图。
具体实施方式
33.正如前文描述,目前常见的多作业调度方法是优先级调度方法,发明人发现:这种优先级调度方法在接收到高优先级作业时,会停止所有低优先级作业,以腾出资源启动高优先级作业,然后再从头开始执行低优先级作业。这种直接停止所有低优先级作业的方法,往往会造成资源浪费,而这种资源浪费会拉长多作业整体运行时间。
34.因此,发明人提出基于运行时间和资源状态进行调度策略代替优先级调度策略,利用同步调度方式代替排队等待方式,解决资源剩余导致的多作业整体运行时间较长的问题。
35.本技术可用于众多通用或专用的计算机装置环境或配置中。比如,个人计算机、服
务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等。
36.本技术实施例提供了一种多作业调度方法,该方法可用于人工智能领域、区块链领域、分布式领域、云计算领域、大数据领域、或金融领域等多种领域。上述仅为示例,并不对本发明提供的软件升级方法的应用领域进行限定。
37.如图1所示,为本技术实施例提供的一种多作业调度方法流程图,该方法包括:
38.步骤s101:获取多个作业的运行时间参数和资源状态,确定多个作业的运行时间。
39.当系统进行多个作业调度之前,需要先获取多个作业的运行时间参数和资源状态。多个作业的运行时间参数是指是指系统在调度多个作业时所涉及的时间参数,包括等待时间、启动时间、处理时间。运行时间则是系统在调度多个作业时所需要的时间。在本技术实施例中,运行时间可以是等待时间、启动时间和处理时间三者的和。其中,等待时间为作业提交操作系统到首次被执行调度所需要的时间。在本技术实施例中,等待时间包括文件加载等待时间、加载开始时间、加载处理时间和批量作业等待时间等。启动时间为触发作业进行调度操作所需时间,在本技术实施例中,启动时间可以为批量开始时间,即多作业开始执行调度的时间。处理时间则为作业开始调度到调度结束所需要的时间,在本技术实施例中处理时间为批量处理时间。
40.资源状态用于表述执行作业所需要的硬件资源,比如cpu、内存等,根据资源状态,可以确定一个系统中最多允许多大内存文件运行,进而可以确定系统最多可以同时运行多少个作业。
41.步骤s102:根据所述运行时间和资源状态,触发预设调度策略。
42.在获取到多个作业的运行时间和资源状态之后,操作系统可以触发预设调度策略。预设调度策略是指系统执行多个作业调度前制定的具体规则。具体的,在本技术实施例中,预设调度策略可以预先由预设运行时间和资源状态确定。可选的,预设调度策略需要同时满足两个方面,即:一方面是需要满足同时调度作业的每个调度作业的运行时间不大于预设运行时间,另一方面需要满足同时调度作业的数量不大于由资源状态确定的最大调度作业数。可选的,将多个作业运行时间的最大值作为预设时间。比如,作业a运行时间为30s,作业b运行时间为25s,作业c运行时间为35s,作业d运行时间为40s。根据cpu和内存情况,系统最多可以同时运行3个作业。基于作业a、作业b、作业c和作业d的运行时间和资源状态,确定调度策略为调度作业运行时间不大于35s,且同步调度作业的数量不大于3个。这样,通过运行时间和资源状态同时触发多个作业进行处理的调度方法,相对于依据优先级进行调度的调度方法,能够避免在高优先级存在时,低优先级无法作业的情况,进而能够避免系统资源浪费。
43.在本技术实施例中,为提升调度准确性,可以对多个作业运行时间进行预测。比如,可以利用第一预设算法对多个作业的运行时间参数和历史运行时间参数进行处理,获得加载作业拟合模型。接着利用加载作业拟合模型,获取多作业拟合模型。最后利用多作业拟合模型,获得多个作业的预设时间。
44.其中,预设时间是指通过第一预设算法对多个作业的运行时间参数进行处理后预测出来的时间,包括预设等待时间、预设开始时间和预设处理时间。加载作业拟合模型是针对加载作业,利用第一预设算法进行拟合后获得时间模型。在进行作业调度前,首先需要加
载作业,即对作业进行加载处理。相对于多作业调度,加载作业与外部数据联系更加紧密,且加载作业数据变化量更大。因此,选择利用第一预设算法对加载作业进行处理获得加载作业拟合模型,再利用加载作业拟合模型生成多作业拟合模型,获得的预设时间准确度更高。
45.可选的,第一预设算法可以为多参数线性回归算法,相对于其他预设算法,多参数线性回归算法可以有效规避异常值误差,且建模速度较快,不需要复杂计算,在多数据情况下仍然具有较快的运行速度。
46.步骤s103:根据所述预设调度策略,同步进行多个作业的调度。
47.在触发预设调度策略之后,就可以同步进行多个作业的调度工作。也就是可以同时进行多个作业的调度操作。假设触发的预设调度策略为同时进行5个运行时间在10min以内的作业进行调度。根据这一预设策略,就可以对运行时间在10min以内最多5个作业进行同时调度。利用这种调度策略进行同步作业调度的方式,可以使得系统资源具有较好的资源利用率,进而降低多作业整体运行时间。
48.可选的,为进一步提升资源利用率,达到最大化降低多作业整体运行时间,可以采用第二预设算法对调度策略进行反馈修正。在本技术实施例中,第二预设算法可以为q强化学习算法。即可以采用q学习算法对调度策略不断反馈调整,使资源利用率达到最优。关于q学习的介绍可以参见下文,这里不再赘述。
49.在本技术实施例中,首先获取多个作业的运行时间参数和资源状态,然后基于资源状态和多个作业的运行时间,确定预设调度策略,所述调度策略综合考虑多个作业的运行时间和资源状态,这种调度策略在进行多作业调度时,可以实现对多个作业同步调度。采用这种调度方法可以避免高优先级出现在队伍时低优先级无法作业的情况,从而减少了多作业整体运行时间。
50.在本技术实施例中,上述图1所述的步骤s102存在多种可能的实现方式,下面分别进行介绍。需要说明的是,下文介绍中给出的实现方式仅作为示例性的说明,并不代表本技术实施例的全部实现方式。
51.图2为本技术实施例提供的一种触发预设调度策略的方法流程图。如图2所示,触发预设调度策略的方法包括:
52.步骤s201:从历史作业库中获取与多作业相似的历史作业。
53.可选的,可以通过计算多作业中每个作业与历史作业库中包括的每个历史作业的相似度,将历史作业库中与多作业中每个作业相似度高的历史作业作为与多作业相似的历史作业。
54.步骤s202:根据历史作业和多作业的运行时间,结合多参数线性回归算法,预测多作业的预设时间。
55.可选的,运行时间参数涉及到文件相关信息、加载作业相关信息和多作业相关信息,其中文件相关信息包括文件大小f、文件到达时间tfa、文件预处理时间tf
p
。加载作业信息包括加载等待时间tlw、加载开始时间tls、加载处理时间tl
p
、加载完成时间tle。多作业信息包括多等待时间tbw、多作业开始时间tbs、多作业处理时间tb
p
、多作业完成时间tbe。
56.利用多参数线性回归算法,对历史作业时间参数和多作业时间参数中涉及到的文件大小、文件达到时间、文件预处理时间、加载等待时间、加载开始时间、加载处理时间、加
载完成时间进行处理,可以获得加载作业拟合模型:
57.h
θ
(f,tfa,tf
p
,tlw,tls,tl
p
,tle)=θ0+θ1f+θ2tfa+θ3tf
p
+θ4tlw+θ5tls+θ6tl
p
+θ7tle58.其中,θ0、θ1、θ2、θ3、θ4、θ5、θ6、θ7均为通过多参数线性回归算法获得回归系数。
59.根据加载作业拟合模型,可以得到多作业拟合模型,为:
60.h
θ
(tlw,tls,tl
p
,tle,tb w
,tbs,tb p
,tbe)
61.=θ0+θ1tlw+θ2tls+θ3tl
p
+θ4tle+θ5tbw+θ6tbs+θ7tb p
+θ8tbe62.其中,回归系数为加载作业的回归系数。当获取多作业运行时间所涉及的时间参数时,包括加载等待时间、加载开始时间、加载处理时间、加载完成时间等,则可以将上述时间参数代入,θ0+θ1tlw+θ2tls+θ3tl
p
+θ4tle+θ5tbw获得预设等待时间,代入θ6tbs获得预设启动时间,代入θ7tb
p
获得预设处理时间,
63.代入上述模型h
θ
(tlw,tls,tl
p
,tle,tbw,tbs,tb
p
,tbe)获得多个作业的预设运行时间。
64.步骤s203:根据预测多作业的预设时间,结合多作业的资源状态,可以得到本批多作业调度策略。
65.可选的,本地多作业调度策略由运行时间和资源状态共同决定,资源状态决定同时可以执行多作业调度的最大个数,运行时间决定多作业中哪些作业进行调度。
66.上面介绍了本技术实施例提供的触发多作业调度策略的方法,下面结合具体的应用场景,对该获取方法做示例性的说明。
67.如图3所示,为本技术实施例提供的一种基于触发多作业调度策略的示例图。
68.步骤s301:作业提交客户端向系统提交多个作业处理请求,包括文件大小、文件达到时间、文件预处理时间、加载等待时间、加载开始时间、加载处理时间、加载完成时间,多作业等待时间、多作业开始时间、多作业处理时间、多作业完成时间等运行参数。
69.步骤s302:当收到新作业任务时,对新作业上述运行参数进行多参数线性回归算法处理,估算多作业的预设时间a。
70.步骤s303:采集多作业的资源状态,即资源分配情况,每次可同时进行b个作业调度工作。
71.步骤s304:触发调度策略,同时进行不大于b个作业调度,运行时间不大于a的多作业调度。
72.步骤s305:多作业完成后,获取整体多作业完成时间,通过q学习算法,对调度策略进行参数修正,用于下一次多作业调度,具体修正为:
[0073][0074]
其中,q(s
t
,a
t
)为当前调度策略;α为修正参数,α∈[0,1],其中,开始执行修正后,取值较大,可以为0.8,即快速达到修正目的,后续取值较小,比如为0.01,目的是微调,通过逐步逼近的方式达到最优调度策略;γ为动作采取比例;为在所述s
t+1
状态执行动作a获取的最大收益期望;r
t+1
表述调度结果提升与否,若调度结果有提升,r
t+1
为1,否则为-1。
[0075]
本技术实施例采用多参数线性回归算法进行多作业运行时间预测,利用q学习算法对智能调度策略不断优化调整,在此情况下,系统可以在硬件资源有限的情况下,尽可能
地缩短批量运行时间,获得最佳性能。
[0076]
以上为本技术实施例提供软件升级方法的一些具体实现方式,基于此,本技术还提供了对应的装置。下面将从功能模块化的角度对本技术实施例提供的装置进行介绍。
[0077]
图4为本技术实施例提供的一种多作业调度装置结构示意图。如图4所示的多作业调度装置400,该装置400包括:
[0078]
监控模块401,用于获取多个作业的运行时间和资源状态,运行时间包括作业等待时间、作业开始时间和作业处理时间;
[0079]
策略确定模块402,根据运行时间和资源状态,触发预设调度策略,预设调度策略为基于运行时间和资源状态对多个作业进行调度的规则;
[0080]
调度模块403,根据调度策略,同步进行多个作业的调度。
[0081]
可选的,所述装置还包括:作业预测模块,用于根据所述运行时间参数和第一预设算法,确定预设时间,所述预设时间包括预设等待时间、预设启动时间和预设处理时间。
[0082]
可选的,作业预测模块包括:
[0083]
加载作业模型获取单元,用于根据运行时间和历史作业信息,基于第一预设算法,获得加载作业拟合模型;
[0084]
预设时间获取单元,用于根据加载作业预测模型,获取多作业预测模型;根据所述多作业预测模型,确定所述预设时间。
[0085]
本技术实施例提供的多作业调度的装置,通过监控单元401,对作业运行时间和系统的资源状态进行监控;通过策略确定模块402,触发满足运行时间和资源状态的调度规则;通过调度模块403,执行多作业调度。由此,可以避免高优先级出现在队伍时低优先级无法作业的情况,从而减少了多作业整体运行时间。
[0086]
需要说明的是,本发明提供的软件升级方法可用于人工智能领域、区块链领域、分布式领域、云计算领域、大数据领域、物联网领域、移动互联领域、网络安全领域、芯片领域、虚拟现实领域、增强现实领域、全息技术领域、量子计算领域、量子通信领域、量子测量领域、数字孪生领域或金融领域。上述仅为示例,并不对本发明提供的软件升级方法的应用领域进行限定。
[0087]
本技术实施例还提供了对应的设备以及计算机存储介质,用于实现本技术实施例提供的方案。
[0088]
其中,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行本技术任一实施例所述的多作业调度方法。
[0089]
所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现本技术任一实施例所述的多作业调度方法。
[0090]
本技术实施例中提到的“第一”、“第二”(若存在)等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
[0091]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,rom)/ram、磁碟、光盘等,包括若干指令用以
使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0092]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0093]
以上所述仅是本技术示例性的实施方式,并非用于限定本技术的保护范围。
技术特征:1.一种多作业调度方法,其特征在于,所述方法包括:获取多个作业的运行时间参数和资源状态,确定所述多个作业的运行时间;所述运行时间参数包括作业等待时间、作业开始时间和作业处理时间,所述资源状态为执行作业所需要的硬件资源;根据所述运行时间和资源状态,触发预设调度策略,所述预设调度策略为基于预设运行时间和资源状态对所述多个作业进行调度的规则;根据所述调度策略,同步进行多个作业的调度。2.根据权利要求1所述方法,其特征在于,所述根据所述运行时间和资源状态,触发预设调度策略之前,还包括:根据所述运行时间参数和第一预设算法,确定预设时间,所述预设时间包括预设等待时间、预设启动时间和预设处理时间。3.根据权利要求2所述方法,其特征在于,所述根据所述运行时间参数和第一预设算法,确定预设时间,包括:根据所述运行时间参数和历史运行时间参数,基于第一预设算法,获得加载作业拟合模型;根据所述加载作业拟合模型,获取多作业拟合模型;根据所述多作业拟合模型,确定所述预设时间。4.根据权利要求3所述方法,其特征在于,所述第一预设算法包括多参数线性回归算法。5.根据权利要求1所述方法,其特征在于,所述方法还包括:根据第二预设算法,修正所述调度策略;根据所述修正后的调度策略,执行下一次多作业调度。6.根据权利要求5所述方法,其特征在于,所述第二预设算法包括q学习算法。7.一种系统调度装置,其特征在于,所述装置包括:监控模块,用于获取多个作业的运行时间参数和资源状态,确定多个作业的运行时间;所述运行时间包括作业等待时间、作业开始时间和作业处理时间;策略确定模块,根据所述运行时间和资源状态,触发预设调度策略,所述预设调度策略为基于运行时间和资源状态对多个作业进行调度的规则;调度模块,根据所述调度策略,同步进行多个作业的调度。8.根据权利要求7所述装置,其特征在于,所述装置还包括:作业预测模块,用于根据所述运行时间和第一预设算法,确定预设时间,所述预设时间包括预设等待时间、预设启动时间和预设处理时间。9.根据权利要求8所述装置,其特征在于,所述作业预测模块包括:加载作业模型获取单元,用于根据所述运行时间参数和历史运行时间参数,基于第一预设算法,获得加载作业拟合模型;预设时间获取单元,用于根据加载作业预测模型,获取多作业预测模型;根据所述多作业预测模型,确定所述预设时间。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有系统调度装置实现程序,所述系统调度装置实现程序被处理器执行时实现如权利要求1至6任一项
所述系统调度装置实现方法的步骤。
技术总结本申请公开了一种多作业调度方法及装置,可应用于人工智能领域、大数据领域、移动互联网领域或金融领域等。该方法包括:根据多个作业的运行时间和资源状态,触发预设调度策略,所述预设调度策略为基于预设运行时间和资源状态对多个作业进行调度的规则,根据所述调度策略,同步进行多个作业的调度。通过上述方法,可以避免高优先出现时低优先级无法同时作业的问题,降低多个作业的整体运行时间。降低多个作业的整体运行时间。降低多个作业的整体运行时间。
技术研发人员:吴兴华 黄文东 邝智颖 敖倩 刘广丽 徐一茗
受保护的技术使用者:中国银行股份有限公司
技术研发日:2022.05.16
技术公布日:2022/11/1