CN115098238A - 一种应用程序任务调度方法及装置 - Google Patents
一种应用程序任务调度方法及装置 Download PDFInfo
- Publication number
- CN115098238A CN115098238A CN202210802377.3A CN202210802377A CN115098238A CN 115098238 A CN115098238 A CN 115098238A CN 202210802377 A CN202210802377 A CN 202210802377A CN 115098238 A CN115098238 A CN 115098238A
- Authority
- CN
- China
- Prior art keywords
- information
- node
- resource information
- resource
- hardware
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种应用程序任务调度方法及装置,该方法包括:获取应用程序任务;对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息;获取Kubernetes集群上所有集群节点对应的节点资源信息;对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点;将应用程序任务调度到最优节点。可见,本发明能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种应用程序任务调度方法及装置。
背景技术
随着容器技术的快速发展,在多容器方面就需要一种容器编排工具来管理多个容器的运行,而Kubernetes则是各种容器编排工具中应用最广泛的一种技术。Kubernetes支持应用程序以pod的形式运行在Kubernetes集群的各个机器中,也支持为应用程序分配cpu,内存等硬件资源,但是在人工智能领域,一般都需要异构机器来运行AI程序,虽然Kubernetes也支持nvidia的GPU类型,但是在AI程序的调度运行中,Kubernetes只支持以整块异构机器的GPU来运行程序,而一旦这块gpu卡被kubernetes分配了AI程序,那么其他的AI程序pod就无法再继续运行在这块已经运行了程序的GPU卡上,这在一些使用GPU资源并不多的AI程序中是极其浪费的,并且现如今异构机器的GPU卡也是异常的昂贵。因此,提供一种应用程序任务调度方法及装置,以最大化利用异构机器硬件资源,提高GPU资源的利用率显得尤为重要。
发明内容
本发明所要解决的技术问题在于,提供一种应用程序任务调度方法及装置,能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
为了解决上述技术问题,本发明实施例第一方面公开了一种应用程序任务调度方法,所述方法包括:
获取应用程序任务;
对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
获取Kubernetes集群上所有集群节点对应的节点资源信息;
对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点;
将所述应用程序任务调度到所述最优节点。
作为一种可选的实施方式,在本发明实施例第一方面中,所述对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息,包括:
创建预运行卡;所述预运行卡为计算应用程序任务使用的硬件资源的异构机器GPU卡;
将所述应用程序任务在所述预运行卡运行;
利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
作为一种可选的实施方式,在本发明实施例第一方面中,所述将所述应用程序任务在所述预运行卡运行,包括:
按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
判断所述检测结果信息中是否存在预运行pod,得到运行判断结果;
当所述运行判断结果为是时,触发执行所述按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
当所述运行判断结果为否时,创建所述预运行pod;
将所述预运行pod在所述预运行卡上运行;
将所述应用程序任务在所述预运行pod中运行。
作为一种可选的实施方式,在本发明实施例第一方面中,所述利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息,包括:
按预设的第二时间间隔对所述预运行pod的运行状态进行检测,得到运行状态信息;
判断所述运行状态信息是否与running状态相匹配,得到状态匹配结果;
当所述状态匹配结果为是时,利用资源收集器对所述应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当所述采集判断结果为否时,对所述备用硬件资源信息进行更新,并触发执行所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当所述采集判断结果为是时,确定所述备用硬件资源信息为硬件资源信息。
作为一种可选的实施方式,在本发明实施例第一方面中,所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果,包括:
利用预设的方差模型对所述备用硬件资源信息进行方差计算,得到方差值信息;所述方差值信息包括3个方差值;
判断所述方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;所述方差阈值为不大于0.01的正数;
当所述方差判断结果为否时,确定采集判断结果为否;
当所述方差判断结果为是时,确定所述采集判断结果为是。
作为一种可选的实施方式,在本发明实施例第一方面中,所述对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点,包括:
对所述硬件资源信息进行均值计算处理,得到使用量均值信息;
利用所述使用量均值信息对所述节点资源信息进行筛选处理,得到可用节点资源信息;
对所述可用节点资源信息进行节点优选处理,得到最优节点。
作为一种可选的实施方式,在本发明实施例第一方面中,所述对所述可用节点资源信息进行节点优选处理,得到最优节点,包括:
对所述可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
对所述资源排序信息进行评分处理,得到资源评分信息;
获取资源权重信息;
利用预设的节点得分模型对所述资源权重信息和所述资源评分信息进行计算处理,得到节点评分信息;所述节点评分信息包括若干个节点评分;
对所述节点评分信息按评分从大到小进行排序,得到评分排序信息;
选取所述评分排序信息中排序第一对应的节点评分作为目标节点评分;
确定所述目标节点评分对应的集群节点为最优节点。
本发明实施例第二方面公开了一种应用程序任务调度装置,装置包括:
第一获取模块,用于获取应用程序任务;
第一处理模块,用于对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
第二获取模块,用于获取Kubernetes集群上所有集群节点对应的节点资源信息;
第二处理模块,用于对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点;
调度模块,用于将所述应用程序任务调度到所述最优节点。
作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息的具体方式为:
创建预运行卡;所述预运行卡为计算应用程序任务使用的硬件资源的异构机器GPU卡;
将所述应用程序任务在所述预运行卡运行;
利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块将所述应用程序任务在所述预运行卡运行的具体方式为:
按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
判断所述检测结果信息中是否存在预运行pod,得到运行判断结果;
当所述运行判断结果为是时,触发执行所述按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
当所述运行判断结果为否时,创建所述预运行pod;
将所述预运行pod在所述预运行卡上运行;
将所述应用程序任务在所述预运行pod中运行。
作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息的具体方式为:
按预设的第二时间间隔对所述预运行pod的运行状态进行检测,得到运行状态信息;
判断所述运行状态信息是否与running状态相匹配,得到状态匹配结果;
当所述状态匹配结果为是时,利用资源收集器对所述应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当所述采集判断结果为否时,对所述备用硬件资源信息进行更新,并触发执行所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当所述采集判断结果为是时,确定所述备用硬件资源信息为硬件资源信息。
作为一种该可选的实施方式,在本发明实施例第二方面中,所述第一处理模块判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果的具体方式为:
利用预设的方差模型对所述备用硬件资源信息进行方差计算,得到方差值信息;所述方差值信息包括3个方差值;
判断所述方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;所述方差阈值为不大于0.01的正数;
当所述方差判断结果为否时,确定采集判断结果为否;
当所述方差判断结果为是时,确定所述采集判断结果为是。
作为一种该可选的实施方式,在本发明实施例第二方面中,所述第二处理模块对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点的具体方式为:
对所述硬件资源信息进行均值计算处理,得到使用量均值信息;
利用所述使用量均值信息对所述节点资源信息进行筛选处理,得到可用节点资源信息;
对所述可用节点资源信息进行节点优选处理,得到最优节点。
作为一种该可选的实施方式,在本发明实施例第二方面中,所述第二处理模块对所述可用节点资源信息进行节点优选处理,得到最优节点的具体方式为:
对所述可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
对所述资源排序信息进行评分处理,得到资源评分信息;
获取资源权重信息;
利用预设的节点得分模型对所述资源权重信息和所述资源评分信息进行计算处理,得到节点评分信息;所述节点评分信息包括若干个节点评分;
对所述节点评分信息按评分从大到小进行排序,得到评分排序信息;
选取所述评分排序信息中排序第一对应的节点评分作为目标节点评分;
确定所述目标节点评分对应的集群节点为最优节点。
本发明第三方面公开了另一种应用程序任务调度装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的应用程序任务调度方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明实施例第一方面公开的应用程序任务调度方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,获取应用程序任务;对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息;获取Kubernetes集群上所有集群节点对应的节点资源信息;对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点;将应用程序任务调度到最优节点。可见,本发明能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种应用程序任务调度方法的流程示意图;
图2是本发明实施例公开的另一种应用程序任务调度方法的流程示意图;
图3是本发明实施例公开的一种应用程序任务调度装置的结构示意图;
图4是本发明实施例公开的另一种应用程序任务调度装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种应用程序任务调度方法及装置,能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种应用程序任务调度方法的流程示意图。其中,图1所描述的应用程序任务调度方法应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图1所示,该应用程序任务调度方法可以包括以下操作:
101、获取应用程序任务。
102、对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息。
103、获取Kubernetes集群上所有集群节点对应的节点资源信息。
104、对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点。
105、将应用程序任务调度到最优节点。
可选的,上述Kubernetes集群为现有技术。
可选的,本发明的应用程序任务调度方法能够通过计算集群资源总量、剩余量实现了一个多应用程序任务的实时调度方法,不仅能将多个任务运行在同一张GPU卡上,而且还极大的节省了机器资源,在同样的集群机器情况下可以运行更多的任务。
可见,实施本发明实施例所描述的应用程序任务调度方法能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在一个可选的实施例中,上述步骤102中对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息,包括:
创建预运行卡;预运行卡为计算应用程序任务使用的硬件资源的异构机器GPU卡;
将应用程序任务在预运行卡运行;
利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
可见,实施本发明实施例所描述的应用程序任务调度方法能够对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在另一个可选的实施例中,将应用程序任务在预运行卡运行,包括:
按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
判断检测结果信息中是否存在预运行pod,得到运行判断结果;
当运行判断结果为是时,触发执行按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
当运行判断结果为否时,创建预运行pod;
将预运行pod在预运行卡上运行;
将应用程序任务在预运行pod中运行。
可选的,上述预运行pod为将需要被计算硬件资源使用量的任务应用程序放入到pod运行的pod。
可选的,上述pod为现有技术
可选的,上述通过对pod列表的检测可保证资源收集器采集到的资源数据是真实的程序运行所需的数据,即确保预运行卡在每个时刻只能有一个程序在运行,避免了多程序之间一起使用硬件资源而导致采集的资源数据不准确的问题。
可选的,上述第一时间间隔为3秒。
可见,实施本发明实施例所描述的应用程序任务调度方法能够将应用程序任务在预运行卡运行,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息,包括:
按预设的第二时间间隔对预运行pod的运行状态进行检测,得到运行状态信息;
判断运行状态信息是否与running状态相匹配,得到状态匹配结果;
当状态匹配结果为是时,利用资源收集器对应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当采集判断结果为否时,对备用硬件资源信息进行更新,并触发执行判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当采集判断结果为是时,确定备用硬件资源信息为硬件资源信息。
可选的,上述running状态为现有技术。
可选的,上述第二时间间隔为2秒。
在该可选的实施例中,作为一种可选的实施方式,当状态匹配结果为否时,判断运行状态信息是否与Pending状态相匹配,得到第一运行判断结果;
当上述第一运行判断结果为是时,触发执行按预设的第二时间间隔对预运行pod的运行状态进行检测,得到运行状态信息;
当上述第一运行判断结果为否时,判断运行状态信息是否与Failed状态相匹配,得到第二运行判断结果;
当上述第二运行判断结果为是时,结束本次流程。
可选的,上述Pending状态为现有技术。
可选的,上述Failed状态为现有技术。
可选的,上述备用硬件资源信息包括3个备用子资源信息。
可选的,上述备用子资源信息为队列长度为50的硬件资源数据。
可选的,上述备用子资源信息包括备用CPU信息、备用内存信息和备用GPU显存信息。
可选的,上述备用CPU信息表征资源收集器采集的运行应用程序任务所占用的CPU资源。
可选的,上述备用内存信息表征资源收集器采集的运行应用程序任务所占用的内存资源。
可选的,上述备用GPU显存信息表征资源收集器采集的运行应用程序任务所占用的GPU显存资源。
可选的,上述资源收集器包括CPU资源收集器、内存资源收集器和GPU显存资源收集器。
在该可选的实施例中,作为一种可选的实施方式,上述利用资源收集器对应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息的具体方式为:
利用CPU资源收集器、内存资源收集器和GPU显存资源收集器分别对应用程序任务使用的硬件资源进行采集,得到第一硬件资源信息;上述第一硬件资源信息包括3个资源信息;上述资源信息包括第一CPU信息、第一内存信息和GPU信息;
判断上述第一硬件资源信息中所有的资源信息的数据长度是否为50,得到资源判断结果;
当上述资源判断结果为否时,触发执行利用CPU资源收集器、内存资源收集器和GPU显存资源收集器分别对应用程序任务使用的硬件资源进行采集,得到第一硬件资源信息;
当上述资源判断结果为是时,确定第一硬件资源信息为备用硬件资源信息。
在该可选的实施例中,作为另一种可选的实施方式,上述对备用硬件资源信息进行更新的具体方式为:
利用资源收集器对应用程序任务使用的硬件资源进行采集,得到第二硬件资源信息;
将备用硬件资源信息中最旧的数据删除;
将第二硬件资源信息推入备用硬件资源信息,得到更新后的备用硬件资源信息。
可选的,上述通过对备用硬件资源信息是否满足采集终止条件的判断可保证得到趋近稳定的硬件资源。
可见,实施本发明实施例所描述的应用程序任务调度方法能够利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息,更有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果,包括:
利用预设的方差模型对备用硬件资源信息进行方差计算,得到方差值信息;方差值信息包括3个方差值;
判断方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;方差阈值为不大于0.01的正数;
当方差判断结果为否时,确定采集判断结果为否;
当方差判断结果为是时,确定采集判断结果为是。
可选的,上述方差模型的具体形式为:
其中,s2为方差值,a为备用硬件资源信息中对应的硬件资源数据,b为硬件资源数据对应的平均值,n为硬件资源数据的数据长度,i为第i个硬件资源。
可选的,上述方差值包括CPU方差值、内存方差值和GPU显存方差值。
在该可选的实施例中,作为一种可选的实施方式,上述利用预设的方差模型对备用硬件资源信息进行方差计算,得到方差值信息的具体方式为:
利用预设的方差模型对备用CPU信息进行方差计算,得到CPU方差值;
利用预设的方差模型对备用内存信息进行方差计算,得到内存方差值;
利用预设的方差模型对备用GPU显存信息进行方差计算,得到GPU显存方差值。
可见,实施本发明实施例所描述的应用程序任务调度方法能够判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果,更有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
实施例二
请参阅图2,图2是本发明实施例公开的另一种应用程序任务调度方法的流程示意图。其中,图2所描述的应用程序任务调度方法应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图2所示,该应用程序任务调度方法可以包括以下操作:
201、获取应用程序任务。
202、对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息。
203、获取Kubernetes集群上所有集群节点对应的节点资源信息。
204、对硬件资源信息进行均值计算处理,得到使用量均值信息。
205、利用使用量均值信息对节点资源信息进行筛选处理,得到可用节点资源信息。
206、对可用节点资源信息进行节点优选处理,得到最优节点。
207、将应用程序任务调度到最优节点。
本发明实施例中,针对步骤201-步骤203、步骤207的具体技术细节和技术名词解释,可以参照实施例一中针对步骤101-步骤103、步骤105的详细描述,本发明实施例不再赘述。
可选的,上述使用量均值信息包括CPU均值、内存均值和GPU显存均值。
可选的,上述可用节点资源信息包括若干个可用节点资源。
可选的,上述节点资源信息包括若干个节点资源。
可选的,上述节点资源包括CPU资源、内存资源和GPU显存资源。
在该可选的实施例中,作为一种可选的实施方式,上述利用使用量均值信息对节点资源信息进行筛选处理,得到可用节点资源信息的具体方式为:
对于任一节点资源,判断该节点资源对应的CPU资源是否大于CPU均值,得到CPU判断结果;
当上述CPU判断结果为是时,判断该节点资源对应的内存资源是否大于内存均值,得到内存判断结果;
当上述内存判断结果为是时,判断该节点资源对应的GPU显存资源是否大于GPU显存均值,得到GPU显存判断结果;
当上述GPU显存判断结果为是时,确定该节点资源为一个可用节点资源。
可见,实施本发明实施例所描述的应用程序任务调度方法能够通过获取出库订单信息,再利用订单类型确定规则确定出出库订单类型信息,进而利用订单排序规则确定出包括若干个待选出库订单类型集合对应的订单序列的订单序列信息,并利用订单出库确定规则确定目标订单,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在一个可选的实施例中,上述对可用节点资源信息进行节点优选处理,得到最优节点,包括:
对可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
对资源排序信息进行评分处理,得到资源评分信息;
获取资源权重信息;
利用预设的节点得分模型对资源权重信息和资源评分信息进行计算处理,得到节点评分信息;节点评分信息包括若干个节点评分;
对节点评分信息按评分从大到小进行排序,得到评分排序信息;
选取评分排序信息中排序第一对应的节点评分作为目标节点评分;
确定目标节点评分对应的集群节点为最优节点。
可选的,上述通过对可用节点资源信息进行节点优选处理可使机器硬件资源越少的集群节点得到优先使用,以提高资源利用率。
可选的,上述资源权重信息包括CPU权重、内存权重和GPU显存权重。
可选的,上述GPU显存权重大于CPU权重和内存权重。
优选的,上述CPU权重为0.3。
优选的,上述内存权重为0.3。
优选的,上述GPU显存权重为0.4。
可选的,上述资源排序信息包括CPU排序信息、内存排序信息和GPU显存排序信息。
可选的,上述资源评分信息包括若干个资源评分。
可选的,每一个上述资源评分包括一个CPU评分、一个内存评分和一个GPU显存评分。
在该可选的实施例中,作为一种可选的实施方式,上述对资源排序信息进行评分处理,得到资源评分信息的具体方式为:
对CPU排序信息中前三的集群节点分别赋予1、0.8和0.6的CPU评分,对其他集群节点赋予0的CPU评分,得到CPU资源评分信息;
对内存排序信息中前三的集群节点分别赋予1、0.8和0.6的内存评分,对其他集群节点赋予0的内存评分,得到内存资源评分信息;
对GPU显存排序信息中前三的集群节点分别赋予1、0.8和0.6的GPU显存评分,对其他集群节点赋予0的GPU显存评分,得到GPU显存资源评分信息;
对上述CPU资源评分信息、内存资源评分信息和GPU显存资源评分信息按集群节点进行分类,得到资源评分信息。
在该可选的实施例中,作为另一种可选的实施方式,上述利用预设的节点得分模型对资源权重信息和资源评分信息进行计算处理,得到节点评分信息的具体方式为:
对于任一资源评分信息,利用预设的节点得分模型对该资源评分信息对应的CPU评分、内存评分和GPU显存评分,以及该资源评分信息对应的CPU权重、内存权重和GPU显存权重进行计算,得到该资源评分信息对应的节点评分。
可选的,上述节点得分模型的具体方式为:
节点评分=CPU评分*CPU权重+内存评分*内存权重+GPU显存评分*GPU显存权重。
可见,实施本发明实施例所描述的应用程序任务调度方法能够对可用节点资源信息进行节点优选处理,得到最优节点,更有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
实施例三
请参阅图3,图3是本发明实施例公开的一种应用程序任务调度装置的结构示意图。其中,图3所描述的装置能够应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图3所示,该装置可以包括:
第一获取模块,用于获取应用程序任务;
第一处理模块,用于对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
第二获取模块,用于获取Kubernetes集群上所有集群节点对应的节点资源信息;
第二处理模块,用于对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点;
调度模块,用于将应用程序任务调度到最优节点。
可见,实施图3所描述的应用程序任务调度装置,能够对应用程序任务所需的硬件资源进行分析,再结合集群节点的硬件资源情况确定出运行应用程序任务的最优节点,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在另一个可选的实施例中,如图3所示,第一处理模块对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息的具体方式为:
创建预运行卡;预运行卡为计算应用程序任务使用的硬件资源的异构机器GPU卡;
将应用程序任务在预运行卡运行;
利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
可见,实施图3所描述的应用程序任务调度装置,能够对运行应用程序任务的硬件资源进行分析处理,得到硬件资源信息,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,如图3所示,第一处理模块将应用程序任务在预运行卡运行的具体方式为:
按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
判断检测结果信息中是否存在预运行pod,得到运行判断结果;
当运行判断结果为是时,触发执行按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
当运行判断结果为否时,创建预运行pod;
将预运行pod在预运行卡上运行;
将应用程序任务在预运行pod中运行。
可见,实施图3所描述的应用程序任务调度装置,能够将应用程序任务在预运行卡运行,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,如图3所示,第一处理模块利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息的具体方式为:
按预设的第二时间间隔对预运行pod的运行状态进行检测,得到运行状态信息;
判断运行状态信息是否与running状态相匹配,得到状态匹配结果;
当状态匹配结果为是时,利用资源收集器对应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当采集判断结果为否时,对备用硬件资源信息进行更新,并触发执行判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当采集判断结果为是时,确定备用硬件资源信息为硬件资源信息。
可见,实施图3所描述的应用程序任务调度装置,能够利用资源收集器对应用程序任务使用的硬件资源进行计算,得到硬件资源信息,更有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,如图3所示,第一处理模块判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果的具体方式为:
利用预设的方差模型对备用硬件资源信息进行方差计算,得到方差值信息;方差值信息包括3个方差值;
判断方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;方差阈值为不大于0.01的正数;
当方差判断结果为否时,确定采集判断结果为否;
当方差判断结果为是时,确定采集判断结果为是。
可见,实施图3所描述的应用程序任务调度装置,能够判断备用硬件资源信息是否满足采集终止条件,得到采集判断结果,更有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,如图3所示,第二处理模块对所有节点资源信息和硬件资源信息进行匹配处理,得到最优节点的具体方式为:
对硬件资源信息进行均值计算处理,得到使用量均值信息;
利用使用量均值信息对节点资源信息进行筛选处理,得到可用节点资源信息;
对可用节点资源信息进行节点优选处理,得到最优节点。
可见,实施图3所描述的应用程序任务调度装置,能够通过获取出库订单信息,再利用订单类型确定规则确定出出库订单类型信息,进而利用订单排序规则确定出包括若干个待选出库订单类型集合对应的订单序列的订单序列信息,并利用订单出库确定规则确定目标订单,有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
在又一个可选的实施例中,如图3所示,第二处理模块对可用节点资源信息进行节点优选处理,得到最优节点的具体方式为:
对可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
对资源排序信息进行评分处理,得到资源评分信息;
获取资源权重信息;
利用预设的节点得分模型对资源权重信息和资源评分信息进行计算处理,得到节点评分信息;节点评分信息包括若干个节点评分;
对节点评分信息按评分从大到小进行排序,得到评分排序信息;
选取评分排序信息中排序第一对应的节点评分作为目标节点评分;
确定目标节点评分对应的集群节点为最优节点。
可见,实施图3所描述的应用程序任务调度装置,能够对可用节点资源信息进行节点优选处理,得到最优节点,更有利于最大化利用异构机器硬件资源,提高GPU资源的利用率。
实施例四
请参阅图4,图4是本发明实施例公开的又一种应用程序任务调度装置的结构示意图。其中,图4所描述的装置能够应用于数据处理系统中,如用于应用程序任务调度管理的本地服务器或云端服务器等,本发明实施例不做限定。如图4所示,该装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,用于执行实施例一或实施例二所描述的应用程序任务调度方法中的步骤。
实施例五
本发明实施例公开了一种计算机读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一或实施例二所描述的应用程序任务调度方法中的步骤。
实施例六
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二所描述的应用程序任务调度方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种应用程序任务调度方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (10)
1.一种应用程序任务调度方法,其特征在于,所述方法包括:
获取应用程序任务;
对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
获取Kubernetes集群上所有集群节点对应的节点资源信息;
对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点;
将所述应用程序任务调度到所述最优节点。
2.根据权利要求1所述的应用程序任务调度方法,其特征在于,所述对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息,包括:
创建预运行卡;所述预运行卡为计算应用程序任务使用的硬件资源的异构机器GPU卡;
将所述应用程序任务在所述预运行卡运行;
利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息。
3.根据权利要求2所述的应用程序任务调度方法,其特征在于,所述将所述应用程序任务在所述预运行卡运行,包括:
按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
判断所述检测结果信息中是否存在预运行pod,得到运行判断结果;
当所述运行判断结果为是时,触发执行所述按预设的第一时间间隔对pod列表进行检测,得到检测结果信息;
当所述运行判断结果为否时,创建所述预运行pod;
将所述预运行pod在所述预运行卡上运行;
将所述应用程序任务在所述预运行pod中运行。
4.根据权利要求2所述的应用程序任务调度方法,其特征在于,所述利用资源收集器对所述应用程序任务使用的硬件资源进行计算,得到硬件资源信息,包括:
按预设的第二时间间隔对所述预运行pod的运行状态进行检测,得到运行状态信息;
判断所述运行状态信息是否与running状态相匹配,得到状态匹配结果;
当所述状态匹配结果为是时,利用资源收集器对所述应用程序任务使用的硬件资源进行分析,得到备用硬件资源信息;
判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当所述采集判断结果为否时,对所述备用硬件资源信息进行更新,并触发执行所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果;
当所述采集判断结果为是时,确定所述备用硬件资源信息为硬件资源信息。
5.根据权利要求4所述的应用程序任务调度方法,其特征在于,所述判断所述备用硬件资源信息是否满足采集终止条件,得到采集判断结果,包括:
利用预设的方差模型对所述备用硬件资源信息进行方差计算,得到方差值信息;所述方差值信息包括3个方差值;
判断所述方差值信息中的3个方差值是否均小于方差阈值,得到方差判断结果;所述方差阈值为不大于0.01的正数;
当所述方差判断结果为否时,确定采集判断结果为否;
当所述方差判断结果为是时,确定所述采集判断结果为是。
6.根据权利要求1所述的应用程序任务调度方法,其特征在于,所述对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点,包括:
对所述硬件资源信息进行均值计算处理,得到使用量均值信息;
利用所述使用量均值信息对所述节点资源信息进行筛选处理,得到可用节点资源信息;
对所述可用节点资源信息进行节点优选处理,得到最优节点。
7.根据权利要求6所述的应用程序任务调度方法,其特征在于,所述对所述可用节点资源信息进行节点优选处理,得到最优节点,包括:
对所述可用节点资源信息按资源量从小到大进行排序,得到资源排序信息;
对所述资源排序信息进行评分处理,得到资源评分信息;
获取资源权重信息;
利用预设的节点得分模型对所述资源权重信息和所述资源评分信息进行计算处理,得到节点评分信息;所述节点评分信息包括若干个节点评分;
对所述节点评分信息按评分从大到小进行排序,得到评分排序信息;
选取所述评分排序信息中排序第一对应的节点评分作为目标节点评分;
确定所述目标节点评分对应的集群节点为最优节点。
8.一种应用程序任务调度装置,其特征在于,所述装置包括:
第一获取模块,用于获取应用程序任务;
第一处理模块,用于对运行所述应用程序任务的硬件资源进行分析处理,得到硬件资源信息;
第二获取模块,用于获取Kubernetes集群上所有集群节点对应的节点资源信息;
第二处理模块,用于对所有所述节点资源信息和所述硬件资源信息进行匹配处理,得到最优节点;
调度模块,用于将所述应用程序任务调度到所述最优节点。
9.一种应用程序任务调度装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的应用程序任务调度方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的应用程序任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210802377.3A CN115098238B (zh) | 2022-07-07 | 2022-07-07 | 一种应用程序任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210802377.3A CN115098238B (zh) | 2022-07-07 | 2022-07-07 | 一种应用程序任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098238A true CN115098238A (zh) | 2022-09-23 |
CN115098238B CN115098238B (zh) | 2023-05-05 |
Family
ID=83296499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210802377.3A Active CN115098238B (zh) | 2022-07-07 | 2022-07-07 | 一种应用程序任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098238B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560844A (zh) * | 2023-05-18 | 2023-08-08 | 苏州高新区测绘事务所有限公司 | 一种用于云渲染的多节点资源分配方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614211A (zh) * | 2018-11-28 | 2019-04-12 | 新华三技术有限公司合肥分公司 | 分布式任务预调度方法及装置 |
US20200348973A1 (en) * | 2020-07-08 | 2020-11-05 | Intel Corporation | Performance monitoring and resource management |
CN112463349A (zh) * | 2021-01-28 | 2021-03-09 | 北京睿企信息科技有限公司 | 一种高效调度gpu能力的负载均衡方法及系统 |
CN113590301A (zh) * | 2021-09-30 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 一种深度学习业务的任务调度方法及相关装置 |
CN114003238A (zh) * | 2021-09-30 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种基于转码卡的容器部署方法、装置、设备及存储介质 |
CN114356543A (zh) * | 2021-12-02 | 2022-04-15 | 国电南瑞科技股份有限公司 | 一种基于Kubernetes的多租户机器学习任务资源调度方法 |
-
2022
- 2022-07-07 CN CN202210802377.3A patent/CN115098238B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614211A (zh) * | 2018-11-28 | 2019-04-12 | 新华三技术有限公司合肥分公司 | 分布式任务预调度方法及装置 |
US20200348973A1 (en) * | 2020-07-08 | 2020-11-05 | Intel Corporation | Performance monitoring and resource management |
CN112463349A (zh) * | 2021-01-28 | 2021-03-09 | 北京睿企信息科技有限公司 | 一种高效调度gpu能力的负载均衡方法及系统 |
CN113590301A (zh) * | 2021-09-30 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 一种深度学习业务的任务调度方法及相关装置 |
CN114003238A (zh) * | 2021-09-30 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种基于转码卡的容器部署方法、装置、设备及存储介质 |
CN114356543A (zh) * | 2021-12-02 | 2022-04-15 | 国电南瑞科技股份有限公司 | 一种基于Kubernetes的多租户机器学习任务资源调度方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560844A (zh) * | 2023-05-18 | 2023-08-08 | 苏州高新区测绘事务所有限公司 | 一种用于云渲染的多节点资源分配方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115098238B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112068957B (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN110134738B (zh) | 分布式存储系统资源预估方法、装置 | |
CN115098238B (zh) | 一种应用程序任务调度方法及装置 | |
CN113835874A (zh) | 深度学习业务调度方法、系统、终端及存储介质 | |
CN111724037A (zh) | 运营资源分配方法、装置、计算机设备及可读存储介质 | |
US20210158248A1 (en) | Computer system and resource management method | |
CN112365070A (zh) | 一种电力负荷预测方法、装置、设备及可读存储介质 | |
CN115495222A (zh) | 基于深度学习和大数据的云计算系统 | |
CN110895706B (zh) | 一种目标聚类数的获取方法、装置及计算机系统 | |
CN112000460A (zh) | 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备 | |
CN115100161A (zh) | 一种电池顶盖缺陷检测方法、装置、电子设备及存储介质 | |
CN113568759B (zh) | 一种基于云计算的大数据处理方法及其系统 | |
CN112465321A (zh) | 一种任务分析方法、装置、设备及存储介质 | |
CN115185685B (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN112650449A (zh) | 缓存空间的释放方法、释放系统、电子设备及存储介质 | |
CN110198299B (zh) | 一种入侵检测方法和装置 | |
CN115665157B (zh) | 一种基于应用资源类型的均衡调度方法和系统 | |
CN115914237A (zh) | 一种边缘环境下的深度学习任务调度方法、设备及介质 | |
CN107634978A (zh) | 一种资源调度方法及装置 | |
CN113419863A (zh) | 一种基于节点能力的数据分配处理方法及装置 | |
CN114035906A (zh) | 虚拟机迁移方法、装置、电子设备及存储介质 | |
CN114201999A (zh) | 异常账号的识别方法、系统、计算设备及存储介质 | |
CN113094175A (zh) | 一种负载均衡的方法及装置 | |
CN111522647A (zh) | 一种最小化租赁成本的公有云服务租赁方法 | |
CN112905351B (zh) | 一种gpu和cpu负载调度方法、装置、设备和介质 |
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 |