一种应用程序任务调度方法及装置与流程

文档序号:31637451发布日期:2022-09-24 05:14阅读:47来源:国知局
一种应用程序任务调度方法及装置与流程

1.本发明涉及数据处理技术领域,尤其涉及一种应用程序任务调度方法及装置。


背景技术:

2.随着容器技术的快速发展,在多容器方面就需要一种容器编排工具来管理多个容器的运行,而kubernetes则是各种容器编排工具中应用最广泛的一种技术。kubernetes支持应用程序以pod的形式运行在kubernetes集群的各个机器中,也支持为应用程序分配cpu,内存等硬件资源,但是在人工智能领域,一般都需要异构机器来运行ai程序,虽然kubernetes也支持nvidia的gpu类型,但是在ai程序的调度运行中,kubernetes只支持以整块异构机器的gpu来运行程序,而一旦这块gpu卡被kubernetes分配了ai程序,那么其他的ai程序pod就无法再继续运行在这块已经运行了程序的gpu卡上,这在一些使用gpu资源并不多的ai程序中是极其浪费的,并且现如今异构机器的gpu卡也是异常的昂贵。因此,提供一种应用程序任务调度方法及装置,以最大化利用异构机器硬件资源,提高gpu资源的利用率显得尤为重要。


技术实现要素:

3.本发明所要解决的技术问题在于,提供一种应用程序任务调度方法及装置,能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
4.为了解决上述技术问题,本发明实施例第一方面公开了一种应用程序任务调度方法,所述方法包括:
5.获取应用程序任务;
6.对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
7.获取kubernetes集群上所有集群节点对应的节点资源信息;
8.对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点;
9.将所述应用程序任务调度到所述最优节点。
10.作为一种可选的实施方式,在本发明实施例第一方面中,所述对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息,包括:
11.创建预运行卡;所述预运行卡为计算应用程序任务使用的硬件资源的异构机器gpu卡;
12.将所述应用程序任务在所述预运行卡运行;
13.利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
14.作为一种可选的实施方式,在本发明实施例第一方面中,所述将所述应用程序任务在所述预运行卡运行,包括:
15.按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
16.判断所述检测结果信息中是否存在预运行pod,得到运行判断结果;
17.当所述运行判断结果为是时,触发执行所述按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
18.当所述运行判断结果为否时,创建所述预运行pod;
19.将所述预运行pod在所述预运行卡上运行;
20.将所述应用程序任务在所述预运行pod中运行。
21.作为一种可选的实施方式,在本发明实施例第一方面中,所述利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息,包括:
22.按预设的第二时间间隔对所述预运行pod的运行状态进行检测,得到运行状态信息;
23.判断所述运行状态信息是否与running状态相匹配,得到状态匹配结果;
24.当所述状态匹配结果为是时,利用资源收集器对所述应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
25.判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
26.当所述采集判断结果为否时,对所述备用硬件资源信息进行更新,并触发执行所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
27.当所述采集判断结果为是时,确定所述备用硬件资源信息为硬件资源信息。
28.作为一种可选的实施方式,在本发明实施例第一方面中,所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果,包括:
29.利用预设的方差模型对所述备用硬件资源信息进行方差计算,得到方差值信息;所述方差值信息包括3个方差值;
30.判断所述方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;所述方差阈值为不大于0.01的正数;
31.当所述方差判断结果为否时,确定采集判断结果为否;
32.当所述方差判断结果为是时,确定所述采集判断结果为是。
33.作为一种可选的实施方式,在本发明实施例第一方面中,所述对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点,包括:
34.对所述硬件资源信息进行均值计算处理,得到使用量均值信息;
35.利用所述使用量均值信息对所述节点资源信息进行筛选处理,得到可用节点资源信息;
36.对所述可用节点资源信息进行节点优选处理,得到最优节点。
37.作为一种可选的实施方式,在本发明实施例第一方面中,所述对所述可用节点资源信息进行节点优选处理,得到最优节点,包括:
38.对所述可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
39.对所述资源排序信息进行评分处理,得到资源评分信息;
40.获取资源权重信息;
41.利用预设的节点得分模型对所述资源权重信息和所述资源评分信息进行计算处理,得到节点评分信息;所述节点评分信息包括若干个节点评分;
42.对所述节点评分信息按评分从大到小进行排序,得到评分排序信息;
43.选取所述评分排序信息中排序第一对应的节点评分作为目标节点评分;
44.确定所述目标节点评分对应的集群节点为最优节点。
45.本发明实施例第二方面公开了一种应用程序任务调度装置,装置包括:
46.第一获取模块,用于获取应用程序任务;
47.第一处理模块,用于对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
48.第二获取模块,用于获取kubernetes集群上所有集群节点对应的节点资源信息;
49.第二处理模块,用于对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点;
50.调度模块,用于将所述应用程序任务调度到所述最优节点。
51.作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息的具体方式为:
52.创建预运行卡;所述预运行卡为计算应用程序任务使用的硬件资源的异构机器gpu卡;
53.将所述应用程序任务在所述预运行卡运行;
54.利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
55.作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块将所述应用程序任务在所述预运行卡运行的具体方式为:
56.按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
57.判断所述检测结果信息中是否存在预运行pod,得到运行判断结果;
58.当所述运行判断结果为是时,触发执行所述按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
59.当所述运行判断结果为否时,创建所述预运行pod;
60.将所述预运行pod在所述预运行卡上运行;
61.将所述应用程序任务在所述预运行pod中运行。
62.作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息的具体方式为:
63.按预设的第二时间间隔对所述预运行pod的运行状态进行检测,得到运行状态信息;
64.判断所述运行状态信息是否与running状态相匹配,得到状态匹配结果;
65.当所述状态匹配结果为是时,利用资源收集器对所述应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
66.判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
67.当所述采集判断结果为否时,对所述备用硬件资源信息进行更新,并触发执行所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
68.当所述采集判断结果为是时,确定所述备用硬件资源信息为硬件资源信息。
69.作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块判
断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果的具体方式为:
70.利用预设的方差模型对所述备用硬件资源信息进行方差计算,得到方差值信息;所述方差值信息包括3个方差值;
71.判断所述方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;所述方差阈值为不大于0.01的正数;
72.当所述方差判断结果为否时,确定采集判断结果为否;
73.当所述方差判断结果为是时,确定所述采集判断结果为是。
74.作为一种该可选的实施方式,在本发明实施例第二方面中,所述第二处理模块对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点的具体方式为:
75.对所述硬件资源信息进行均值计算处理,得到使用量均值信息;
76.利用所述使用量均值信息对所述节点资源信息进行筛选处理,得到可用节点资源信息;
77.对所述可用节点资源信息进行节点优选处理,得到最优节点。
78.作为一种该可选的实施方式,在本发明实施例第二方面中,所述第二处理模块对所述可用节点资源信息进行节点优选处理,得到最优节点的具体方式为:
79.对所述可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
80.对所述资源排序信息进行评分处理,得到资源评分信息;
81.获取资源权重信息;
82.利用预设的节点得分模型对所述资源权重信息和所述资源评分信息进行计算处理,得到节点评分信息;所述节点评分信息包括若干个节点评分;
83.对所述节点评分信息按评分从大到小进行排序,得到评分排序信息;
84.选取所述评分排序信息中排序第一对应的节点评分作为目标节点评分;
85.确定所述目标节点评分对应的集群节点为最优节点。
86.本发明第三方面公开了另一种应用程序任务调度装置,所述装置包括:
87.存储有可执行程序代码的存储器;
88.与所述存储器耦合的处理器;
89.所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的应用程序任务调度方法中的部分或全部步骤。
90.本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明实施例第一方面公开的应用程序任务调度方法中的部分或全部步骤。
91.与现有技术相比,本发明实施例具有以下有益效果:
92.本发明实施例中,获取应用程序任务;对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息;获取kubernetes集群上所有集群节点对应的节点资源信息;对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点;将应用程序任务调度到最优节点。可见,本发明能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
附图说明
93.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
94.图1是本发明实施例公开的一种应用程序任务调度方法的流程示意图;
95.图2是本发明实施例公开的另一种应用程序任务调度方法的流程示意图;
96.图3是本发明实施例公开的一种应用程序任务调度装置的结构示意图;
97.图4是本发明实施例公开的另一种应用程序任务调度装置的结构示意图。
具体实施方式
98.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
99.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
100.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
101.本发明公开了一种应用程序任务调度方法及装置,能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。以下分别进行详细说明。
102.实施例一
103.请参阅图1,图1是本发明实施例公开的一种应用程序任务调度方法的流程示意图。其中,图1所描述的应用程序任务调度方法应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图1所示,该应用程序任务调度方法可以包括以下操作:
104.101、获取应用程序任务。
105.102、对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息。
106.103、获取kubernetes集群上所有集群节点对应的节点资源信息。
107.104、对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点。
108.105、将应用程序任务调度到最优节点。
109.可选的,上述kubernetes集群为现有技术。
110.可选的,本发明的应用程序任务调度方法能够通过计算集群资源总量、剩余量实
现了一个多应用程序任务的实时调度方法,不仅能将多个任务运行在同一张gpu卡上,而且还极大的节省了机器资源,在同样的集群机器情况下可以运行更多的任务。
111.可见,实施本发明实施例所描述的应用程序任务调度方法能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
112.在一个可选的实施例中,上述步骤102中对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息,包括:
113.创建预运行卡;预运行卡为计算应用程序任务使用的硬件资源的异构机器gpu卡;
114.将应用程序任务在预运行卡运行;
115.利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
116.可见,实施本发明实施例所描述的应用程序任务调度方法能够对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
117.在另一个可选的实施例中,将应用程序任务在预运行卡运行,包括:
118.按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
119.判断检测结果信息中是否存在预运行pod,得到运行判断结果;
120.当运行判断结果为是时,触发执行按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
121.当运行判断结果为否时,创建预运行pod;
122.将预运行pod在预运行卡上运行;
123.将应用程序任务在预运行pod中运行。
124.可选的,上述预运行pod为将需要被计算硬件资源使用量的任务应用程序放入到pod运行的pod。
125.可选的,上述pod为现有技术
126.可选的,上述通过对pod列表的检测可保证资源收集器采集到的资源数据是真实的程序运行所需的数据,即确保预运行卡在每个时刻只能有一个程序在运行,避免了多程序之间一起使用硬件资源而导致采集的资源数据不准确的问题。
127.可选的,上述第一时间间隔为3秒。
128.可见,实施本发明实施例所描述的应用程序任务调度方法能够将应用程序任务在预运行卡运行,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
129.在又一个可选的实施例中,利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息,包括:
130.按预设的第二时间间隔对预运行pod的运行状态进行检测,得到运行状态信息;
131.判断运行状态信息是否与running状态相匹配,得到状态匹配结果;
132.当状态匹配结果为是时,利用资源收集器对应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
133.判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
134.当采集判断结果为否时,对备用硬件资源信息进行更新,并触发执行判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
135.当采集判断结果为是时,确定备用硬件资源信息为硬件资源信息。
136.可选的,上述running状态为现有技术。
137.可选的,上述第二时间间隔为2秒。
138.在该可选的实施例中,作为一种可选的实施方式,当状态匹配结果为否时,判断运行状态信息是否与pending状态相匹配,得到第一运行判断结果;
139.当上述第一运行判断结果为是时,触发执行按预设的第二时间间隔对预运行pod的运行状态进行检测,得到运行状态信息;
140.当上述第一运行判断结果为否时,判断运行状态信息是否与failed状态相匹配,得到第二运行判断结果;
141.当上述第二运行判断结果为是时,结束本次流程。
142.可选的,上述pending状态为现有技术。
143.可选的,上述failed状态为现有技术。
144.可选的,上述备用硬件资源信息包括3个备用子资源信息。
145.可选的,上述备用子资源信息为队列长度为50的硬件资源数据。
146.可选的,上述备用子资源信息包括备用cpu信息、备用内存信息和备用gpu显存信息。
147.可选的,上述备用cpu信息表征资源收集器采集的运行应用程序任务所占用的cpu资源。
148.可选的,上述备用内存信息表征资源收集器采集的运行应用程序任务所占用的内存资源。
149.可选的,上述备用gpu显存信息表征资源收集器采集的运行应用程序任务所占用的gpu显存资源。
150.可选的,上述资源收集器包括cpu资源收集器、内存资源收集器和gpu显存资源收集器。
151.在该可选的实施例中,作为一种可选的实施方式,上述利用资源收集器对应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息的具体方式为:
152.利用cpu资源收集器、内存资源收集器和gpu显存资源收集器分别对应用程序任务使用的硬件资源进行采集,得到第一硬件资源信息;上述第一硬件资源信息包括3个资源信息;上述资源信息包括第一cpu信息、第一内存信息和gpu信息;
153.判断上述第一硬件资源信息中所有的资源信息的数据长度是否为50,得到资源判断结果;
154.当上述资源判断结果为否时,触发执行利用cpu资源收集器、内存资源收集器和gpu显存资源收集器分别对应用程序任务使用的硬件资源进行采集,得到第一硬件资源信息;
155.当上述资源判断结果为是时,确定第一硬件资源信息为备用硬件资源信息。
156.在该可选的实施例中,作为另一种可选的实施方式,上述对备用硬件资源信息进行更新的具体方式为:
157.利用资源收集器对应用程序任务使用的硬件资源进行采集,得到第二硬件资源信息;
158.将备用硬件资源信息中最旧的数据删除;
159.将第二硬件资源信息推入备用硬件资源信息,得到更新后的备用硬件资源信息。
160.可选的,上述通过对备用硬件资源信息是否满足采集终止条件的判断可保证得到趋近稳定的硬件资源。
161.可见,实施本发明实施例所描述的应用程序任务调度方法能够利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息,更有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
162.在又一个可选的实施例中,判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果,包括:
163.利用预设的方差模型对备用硬件资源信息进行方差计算,得到方差值信息;方差值信息包括3个方差值;
164.判断方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;方差阈值为不大于0.01的正数;
165.当方差判断结果为否时,确定采集判断结果为否;
166.当方差判断结果为是时,确定采集判断结果为是。
167.可选的,上述方差模型的具体形式为:
[0168][0169]
其中,s2为方差值,a为备用硬件资源信息中对应的硬件资源数据,b为硬件资源数据对应的平均值,n为硬件资源数据的数据长度,i为第i个硬件资源。
[0170]
可选的,上述方差值包括cpu方差值、内存方差值和gpu显存方差值。
[0171]
在该可选的实施例中,作为一种可选的实施方式,上述利用预设的方差模型对备用硬件资源信息进行方差计算,得到方差值信息的具体方式为:
[0172]
利用预设的方差模型对备用cpu信息进行方差计算,得到cpu方差值;
[0173]
利用预设的方差模型对备用内存信息进行方差计算,得到内存方差值;
[0174]
利用预设的方差模型对备用gpu显存信息进行方差计算,得到gpu显存方差值。
[0175]
可见,实施本发明实施例所描述的应用程序任务调度方法能够判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果,更有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0176]
实施例二
[0177]
请参阅图2,图2是本发明实施例公开的另一种应用程序任务调度方法的流程示意图。其中,图2所描述的应用程序任务调度方法应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图2所示,该应用程序任务调度方法可以包括以下操作:
[0178]
201、获取应用程序任务。
[0179]
202、对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息。
[0180]
203、获取kubernetes集群上所有集群节点对应的节点资源信息。
[0181]
204、对硬件资源信息进行均值计算处理,得到使用量均值信息。
[0182]
205、利用使用量均值信息对节点资源信息进行筛选处理,得到可用节点资源信
息。
[0183]
206、对可用节点资源信息进行节点优选处理,得到最优节点。
[0184]
207、将应用程序任务调度到最优节点。
[0185]
本发明实施例中,针对步骤201-步骤203、步骤207的具体技术细节和技术名词解释,可以参照实施例一中针对步骤101-步骤103、步骤105的详细描述,本发明实施例不再赘述。
[0186]
可选的,上述使用量均值信息包括cpu均值、内存均值和gpu显存均值。
[0187]
可选的,上述可用节点资源信息包括若干个可用节点资源。
[0188]
可选的,上述节点资源信息包括若干个节点资源。
[0189]
可选的,上述节点资源包括cpu资源、内存资源和gpu显存资源。
[0190]
在该可选的实施例中,作为一种可选的实施方式,上述利用使用量均值信息对节点资源信息进行筛选处理,得到可用节点资源信息的具体方式为:
[0191]
对于任一节点资源,判断该节点资源对应的cpu资源是否大于cpu均值,得到cpu判断结果;
[0192]
当上述cpu判断结果为是时,判断该节点资源对应的内存资源是否大于内存均值,得到内存判断结果;
[0193]
当上述内存判断结果为是时,判断该节点资源对应的gpu显存资源是否大于gpu显存均值,得到gpu显存判断结果;
[0194]
当上述gpu显存判断结果为是时,确定该节点资源为一个可用节点资源。
[0195]
可见,实施本发明实施例所描述的应用程序任务调度方法能够通过获取出库订单信息,再利用订单类型确定规则确定出出库订单类型信息,进而利用订单排序规则确定出包括若干个待选出库订单类型集合对应的订单序列的订单序列信息,并利用订单出库确定规则确定目标订单,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0196]
在一个可选的实施例中,上述对可用节点资源信息进行节点优选处理,得到最优节点,包括:
[0197]
对可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
[0198]
对资源排序信息进行评分处理,得到资源评分信息;
[0199]
获取资源权重信息;
[0200]
利用预设的节点得分模型对资源权重信息和资源评分信息进行计算处理,得到节点评分信息;节点评分信息包括若干个节点评分;
[0201]
对节点评分信息按评分从大到小进行排序,得到评分排序信息;
[0202]
选取评分排序信息中排序第一对应的节点评分作为目标节点评分;
[0203]
确定目标节点评分对应的集群节点为最优节点。
[0204]
可选的,上述通过对可用节点资源信息进行节点优选处理可使机器硬件资源越少的集群节点得到优先使用,以提高资源利用率。
[0205]
可选的,上述资源权重信息包括cpu权重、内存权重和gpu显存权重。
[0206]
可选的,上述gpu显存权重大于cpu权重和内存权重。
[0207]
优选的,上述cpu权重为0.3。
[0208]
优选的,上述内存权重为0.3。
[0209]
优选的,上述gpu显存权重为0.4。
[0210]
可选的,上述资源排序信息包括cpu排序信息、内存排序信息和gpu显存排序信息。
[0211]
可选的,上述资源评分信息包括若干个资源评分。
[0212]
可选的,每一个上述资源评分包括一个cpu评分、一个内存评分和一个gpu显存评分。
[0213]
在该可选的实施例中,作为一种可选的实施方式,上述对资源排序信息进行评分处理,得到资源评分信息的具体方式为:
[0214]
对cpu排序信息中前三的集群节点分别赋予1、0.8和0.6的cpu评分,对其他集群节点赋予0的cpu评分,得到cpu资源评分信息;
[0215]
对内存排序信息中前三的集群节点分别赋予1、0.8和0.6的内存评分,对其他集群节点赋予0的内存评分,得到内存资源评分信息;
[0216]
对gpu显存排序信息中前三的集群节点分别赋予1、0.8和0.6的gpu显存评分,对其他集群节点赋予0的gpu显存评分,得到gpu显存资源评分信息;
[0217]
对上述cpu资源评分信息、内存资源评分信息和gpu显存资源评分信息按集群节点进行分类,得到资源评分信息。
[0218]
在该可选的实施例中,作为另一种可选的实施方式,上述利用预设的节点得分模型对资源权重信息和资源评分信息进行计算处理,得到节点评分信息的具体方式为:
[0219]
对于任一资源评分信息,利用预设的节点得分模型对该资源评分信息对应的cpu评分、内存评分和gpu显存评分,以及该资源评分信息对应的cpu权重、内存权重和gpu显存权重进行计算,得到该资源评分信息对应的节点评分。
[0220]
可选的,上述节点得分模型的具体方式为:
[0221]
节点评分=cpu评分*cpu权重+内存评分*内存权重+gpu显存评分*gpu显存权重。
[0222]
可见,实施本发明实施例所描述的应用程序任务调度方法能够对可用节点资源信息进行节点优选处理,得到最优节点,更有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0223]
实施例三
[0224]
请参阅图3,图3是本发明实施例公开的一种应用程序任务调度装置的结构示意图。其中,图3所描述的装置能够应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图3所示,该装置可以包括:
[0225]
第一获取模块,用于获取应用程序任务;
[0226]
第一处理模块,用于对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
[0227]
第二获取模块,用于获取kubernetes集群上所有集群节点对应的节点资源信息;
[0228]
第二处理模块,用于对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点;
[0229]
调度模块,用于将应用程序任务调度到最优节点。
[0230]
可见,实施图3所描述的应用程序任务调度装置,能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0231]
在另一个可选的实施例中,如图3所示,第一处理模块对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息的具体方式为:
[0232]
创建预运行卡;预运行卡为计算应用程序任务使用的硬件资源的异构机器gpu卡;
[0233]
将应用程序任务在预运行卡运行;
[0234]
利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
[0235]
可见,实施图3所描述的应用程序任务调度装置,能够对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0236]
在又一个可选的实施例中,如图3所示,第一处理模块将应用程序任务在预运行卡运行的具体方式为:
[0237]
按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
[0238]
判断检测结果信息中是否存在预运行pod,得到运行判断结果;
[0239]
当运行判断结果为是时,触发执行按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
[0240]
当运行判断结果为否时,创建预运行pod;
[0241]
将预运行pod在预运行卡上运行;
[0242]
将应用程序任务在预运行pod中运行。
[0243]
可见,实施图3所描述的应用程序任务调度装置,能够将应用程序任务在预运行卡运行,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0244]
在又一个可选的实施例中,如图3所示,第一处理模块利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息的具体方式为:
[0245]
按预设的第二时间间隔对预运行pod的运行状态进行检测,得到运行状态信息;
[0246]
判断运行状态信息是否与running状态相匹配,得到状态匹配结果;
[0247]
当状态匹配结果为是时,利用资源收集器对应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
[0248]
判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
[0249]
当采集判断结果为否时,对备用硬件资源信息进行更新,并触发执行判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
[0250]
当采集判断结果为是时,确定备用硬件资源信息为硬件资源信息。
[0251]
可见,实施图3所描述的应用程序任务调度装置,能够利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息,更有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0252]
在又一个可选的实施例中,如图3所示,第一处理模块判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果的具体方式为:
[0253]
利用预设的方差模型对备用硬件资源信息进行方差计算,得到方差值信息;方差值信息包括3个方差值;
[0254]
判断方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;方差阈值为不大于0.01的正数;
[0255]
当方差判断结果为否时,确定采集判断结果为否;
[0256]
当方差判断结果为是时,确定采集判断结果为是。
[0257]
可见,实施图3所描述的应用程序任务调度装置,能够判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果,更有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0258]
在又一个可选的实施例中,如图3所示,第二处理模块对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点的具体方式为:
[0259]
对硬件资源信息进行均值计算处理,得到使用量均值信息;
[0260]
利用使用量均值信息对节点资源信息进行筛选处理,得到可用节点资源信息;
[0261]
对可用节点资源信息进行节点优选处理,得到最优节点。
[0262]
可见,实施图3所描述的应用程序任务调度装置,能够通过获取出库订单信息,再利用订单类型确定规则确定出出库订单类型信息,进而利用订单排序规则确定出包括若干个待选出库订单类型集合对应的订单序列的订单序列信息,并利用订单出库确定规则确定目标订单,有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0263]
在又一个可选的实施例中,如图3所示,第二处理模块对可用节点资源信息进行节点优选处理,得到最优节点的具体方式为:
[0264]
对可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
[0265]
对资源排序信息进行评分处理,得到资源评分信息;
[0266]
获取资源权重信息;
[0267]
利用预设的节点得分模型对资源权重信息和资源评分信息进行计算处理,得到节点评分信息;节点评分信息包括若干个节点评分;
[0268]
对节点评分信息按评分从大到小进行排序,得到评分排序信息;
[0269]
选取评分排序信息中排序第一对应的节点评分作为目标节点评分;
[0270]
确定目标节点评分对应的集群节点为最优节点。
[0271]
可见,实施图3所描述的应用程序任务调度装置,能够对可用节点资源信息进行节点优选处理,得到最优节点,更有利于最大化利用异构机器硬件资源,提高gpu资源的利用率。
[0272]
实施例四
[0273]
请参阅图4,图4是本发明实施例公开的又一种应用程序任务调度装置的结构示意图。其中,图4所描述的装置能够应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图4所示,该装置可以包括:
[0274]
存储有可执行程序代码的存储器401;
[0275]
与存储器401耦合的处理器402;
[0276]
处理器402调用存储器401中存储的可执行程序代码,用于执行实施例一或实施例二所描述的应用程序任务调度方法中的步骤。
[0277]
实施例五
[0278]
本发明实施例公开了一种计算机读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一或实施例二所描述的应用程序任务调度方法中的步骤。
[0279]
实施例六
[0280]
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二所描述的应用程序任务调度方法中的步骤。
[0281]
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0282]
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0283]
最后应说明的是:本发明实施例公开的一种应用程序任务调度方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1