CN117519952A - 云平台任务调度方法、计算机设备和存储介质 - Google Patents
云平台任务调度方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117519952A CN117519952A CN202410012613.0A CN202410012613A CN117519952A CN 117519952 A CN117519952 A CN 117519952A CN 202410012613 A CN202410012613 A CN 202410012613A CN 117519952 A CN117519952 A CN 117519952A
- Authority
- CN
- China
- Prior art keywords
- queue
- task
- node
- core
- core number
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000004044 response Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 21
- 239000000463 material Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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
Abstract
本申请涉及资源调度技术领域,特别是涉及云平台任务调度方法、计算机设备和存储介质。本申请所提供的一种云平台任务调度方法,包括获取任务的需求核心数,获取节点队列的可用核心数;判断可用核心数等于需求核心数的节点队列中是否存在可用的计算节点;响应于检测到可用的计算节点,将任务调度至计算节点执行;其中,计算节点根据剩余核心数的不同被存储在不同的节点队列中,节点队列的可用核心数小于等于节点队列中计算节点的剩余核心数。通过上述方法,能够利用剩余核心数对节点进行分类,从而根据任务的需求核心数快速获取到合适的计算节点,有效提升任务调度效率。
Description
技术领域
本申请涉及资源调度技术领域,特别是涉及云平台任务调度方法、计算机设备和存储介质。
背景技术
随着深度学习技术的不断发展,将深度学习框架集成到基于云存储、云计算的基础架构上,可以实现更高的速度、更高的扩展性。云计算平台的计算资源一般都由用户自发进行抢占,这种调度方式需要用户能够较为准确地估算任务所需的资源,但任务所需的资源多样,总体估算困难;并且,这种自发的抢占方式对于计算节点的计算资源没有统筹规划,十分影响计算资源的利用率,也对其他任务的正常调度造成了不良影响。
发明内容
为解决上述问题,本申请的主要目的是提供云平台任务调度方法、计算机设备和存储介质,用于提升计算资源利用率。
本申请提供一种方法,包括获取任务的需求核心数,获取节点队列的可用核心数;判断可用核心数等于需求核心数的节点队列中是否存在可用的计算节点;响应于检测到可用的计算节点,将任务调度至计算节点执行。
本申请提供一种计算机设备,包括存储器、处理器,所述存储器连接所述处理器,所述存储器用于存储可在处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现如上述任一项的方法。
本申请提供一种计算机可读的存储介质,所述计算机可读的存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现如上述任一项所述的方法。
本申请的有益效果是:区别于现有技术,本申请公开了根据计算节点的剩余核心数对计算节点进行分类管理,能够在任务调度过程中根据任务的需求核心数获取可用核心数匹配的节点队列,从而将任务调度至剩余核心数合适的计算节点上,降低了任务调度发生阻塞的概率,提升了任务的调度效率以及计算节点计算资源的利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请云平台任务调度方法一实施例的流程示意图。
图2是本申请云平台任务调度方法中调用任务至计算节点一实施例的流程示意图。
图3是本申请云平台任务调度方法中用户的剩余资源限额校验过程一实施例的流程示意图。
图4是本申请云平台任务调度方法中用户组的剩余组限额校验过程一实施例的流程示意图。
图5是本申请云平台任务调度方法获取节点队列状态的流程示意图。
图6是本申请云平台任务调度方法一实施例的交互流程示意图。
图7是本申请云平台任务调度方法一实施例中节点队列集群的结构示意框图。
图8是本申请云平台任务调度方法一实施例中调度任务的流程示意图。
图9是本申请计算机设备实施例的电路结构示意图。
图10是本申请计算机可读的存储介质实施例的电路结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更为明显易懂,下面结合附图,对本申请的具体实施方式做详细的说明。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“设置有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行提交其个人信息对等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方法以及处理的个人信息种类等信息。
随着ML(machine learning)技术的不断发展和深度学习应用的范围和需求急剧膨胀,训练深度学习模型所需的计算资源也越来越紧缺。将深度学习框架集成到基于云存储、云计算的基础架构上,可以实现更高的速度、更高的扩展性。而目前对于云计算平台任务调度还处在缺乏规划的阶段,用户无序地抢占云计算平台的计算资源,无疑将严重限制计算资源的实际利用率,因此如何共享、调度和隔离计算资源将是云计算平台的重大挑战。同时,用户申请云计算平台资源时需要对任务需求的各方面资源进行估算,但这些资源类型复杂,估算起来对于用户经验的需求极高,这一情况也会导致任务调度、执行的困难,十分影响任务调度的效率。
基于目前云平台任务调度过程中出现的问题与不便,本申请的发明人经过长期研究,为了改善或解决以上技术问题,本申请提出至少如下实施例。
图1是本申请云平台任务调度方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施方式并不以图1所示的流程顺序为限。如图1所示,本实施例包括:
S100:获取任务的需求核心数,获取节点队列的可用核心数。
其中,本申请云平台任务调度方法实施例可以在服务端和/或客户端的设备系统上运行。客户端可以是台式机、移动终端或平板上运行的客户端软件,客户端软件运行时产生人机交互界面,用户可以利用人机接口比如触摸屏、鼠标、键盘等设备在人机交互界面上进行操作。本实施例中以服务端软件作为运行本申请云平台任务调度方法的执行主体。
其中,服务端软件所在的电子设备与客户端软件所在的电子设备之间可通过以太网(Ethernet)、WLAN(无线局域网)等手段完成数据传输。用户可以通过客户端软件提交任务素材和用户信息,以生成任务用于执行本申请云平台任务调度方法。获取任务的需求核心数的步骤可由服务端软件自动进行,例如:服务端软件自动利用无线局域网从存有任务素材的数据库中获取任务素材,进而可以从生成的任务中提取任务信息,该任务信息可以包括任务的需求核心数。
服务端软件获取节点队列的可用核心数的步骤亦可由服务端软件自动进行,例如:服务端软件利用集群状态管理中心自动获取并更新节点队列的信息,一个节点队列集群中可以包括多个节点队列,节点队列的信息中可以包括该节点队列的可用核心数。
S200:判断可用核心数等于需求核心数的节点队列中是否存在可用的计算节点。
服务端软件判断可用核心数等于需求核心数的节点队列中是否存在可用的计算节点。
其中,节点队列用于存储计算节点,节点队列中记录的这些计算节点的剩余核心数需要大于等于该节点队列的可用核心数,以使这些计算节点能够顺利承担需求核心数等于可用核心数的任务。例如:某一节点队列的可用核心数为2,该节点队列中录有两个计算节点,则这两个计算节点的剩余核心数均可以为2、4或6,使得在有需求核心数为2的任务时,该节点队列中的两个计算节点都至少具有两个可用的核心,可以任选其一作为实际调度任务的计算节点。
S300:响应于检测到可用的计算节点,将任务调度至计算节点执行。
响应于服务端软件检测到可用核心数等于需求核心数的节点队列中存在可用的计算节点,服务端软件将任务调度至该可用的计算节点执行。
其中,当可用的计算节点为多个时,可以任选其一作为实际执行任务的计算节点。
利用本实施例提供的方法,将选取计算节点的方法简化为根据核心数进行选取,能提升选取计算节点的效率;同时,根据计算节点的剩余核心数将其存放于不同的节点队列中,在获取到任务的需求核心数后可以根据可用核心数快速查找节点队列,从而缩小节点筛选的范围,提升任务调用的速度;并且,根据核心数选取计算节点,也利于管理计算节点的剩余核心数,从而提升计算节点计算资源的利用率。
图2是本申请云平台任务调度方法中调用任务至计算节点一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施方式并不以图2所示的流程顺序为限。如图2所示,本实施例包括:
S210:响应于需求核心数为1,判断优先队列中是否存在可用的计算节点。
在步骤S200中,响应于任务的需求核心数为1,服务端软件先判断优先队列中是否存在可用的计算节点。
节点队列的数量可以为多个,节点队列的种类可以包括优先队列和一核队列。其中,优先队列和一核队列的可用核心数都为1。优先队列中计算节点的剩余核心数均大于0且不为2的整数幂,例如1、3或5等。一核队列中计算节点的剩余核心数均为2的正整数幂,例如2、4、6等。
申请人在经过大量的工作后发现,处理常见任务所需的核心数一般都为2的正整数幂,只有少数体量较小的任务的需求核心数为1。而常见的计算节点的总的核心数一般也都为2的正整数幂,例如8。因此,可以在面对需求核心数为1的任务时,先考虑能否调用至优先队列中的计算节点,从而避免节点队列中剩余太多剩余核心数为1的计算节点,浪费计算节点资源,能够对节点队列中计算节点的剩余核心数进行合理规划,从而提升计算资源利用率。
S211:响应于优先队列中不存在可用的计算节点,判断一核队列中是否存在可用的计算节点。
响应于优先队列中不存在可用的计算节点,服务端软件判断一核队列中是否存在可用的计算节点。
S220:判断可用核心数等于需求核心数的一般队列中是否存在可用的计算节点。
可选地,节点队列还可包括一般队列和空闲队列,一般队列中的计算节点都至少有一个核心被占用。而空闲队列中的计算节点的核心都没有被占用,即该计算节点处于空闲状态。例如计算节点的总核心为8时,空闲队列中的计算节点的剩余核心数为8,一般队列中的计算节点的剩余核心数均小于8。
步骤S210和步骤S220互相之间没有关联,实际实施时可以择其一进行。在步骤S220中,服务端软件根据任务实际的需求核心数,判断可用核心数等于需求核心数的一般队列中是否存在可用的计算节点。例如:任务的需求核心数为4,服务端软件判断可用核心数为4的一般队列中是否存在可用的计算节点。其中,可用核心数为4的一般队列中的计算节点的剩余核心数至少为4。
S221:响应于未在一般队列检测到可用的计算节点,判断空闲队列中是否存在可用的计算节点。
响应于未在一般队列检测到可用的计算节点,服务端软件判断空闲队列中是否存在可用的计算节点。
可选地,在节点队列还包括空闲队列时,可将一核队列也看做为一般队列。步骤S211之后,若判断结果为一核队列中不存在可用的计算节点时,服务端软件可以进一步判断空闲队列中是否存在可用的计算节点。
S400:重新计算计算节点的剩余核心数。
在步骤S300之后,响应于已将任务调度至计算节点执行,服务端软件重新计算该计算节点的剩余核心数。其中,该计算方法可以为利用该计算节点调度任务前的剩余核心数减去该任务的需求核心数,从而得到该计算节点新的剩余核心数。
S410:响应于剩余核心数大于0且不为2的正整数幂,将计算节点移出其所在的节点队列并加入优先队列。
响应于剩余核心数大于0且不为3的正整数幂,服务端软件将计算节点移出其所在的节点队列并加入优先队列中。
可选地,节点队列还可包括忙碌队列,忙碌队列中的计算节点的剩余核心数均为0。若步骤S400后得到的计算节点的剩余核心数为0,可以将该计算节点移出其所在的节点队列并加入忙碌队列,避免后续调度任务时再对该计算节点的情况进行多余的判断。
进一步地,服务端软件还可持续获取计算节点中任务的处理情况,在计算节点结束任务处理过程后,可以对计算节点的剩余核心数进行更新,从而及时将计算节点移动至合适的节点队列中,以提升计算资源利用率。
图3是本申请云平台任务调度方法中用户的剩余资源限额校验过程一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施方式并不以图3所示的流程顺序为限。如图3所示,本实施例包括:
S110:获取排在任务队列首位的任务的任务信息,任务信息包括需求核心数和提交任务的用户。
步骤S100之前,考虑到云平台的资源不可能为无穷无尽的,当单个用户占用资源过多时会影响到其他用户的任务的正常调用,因此,还可以对用户能占用的资源进行限制,引入用户的资源限额这一概念。
服务端软件获取排在任务队列首位的任务的任务信息,任务队列中任务按照输入服务端软件的先后顺序排列,任务队列首位的任务即为任务队列中最早输入服务端软件的任务。任务的任务信息包括该任务的需求核心数和提交该任务的用户。
可选地,当云平台中存在多个节点队列集群时,任务的任务信息还包括处理该任务的节点队列集群。每个节点队列集群包括至少一个节点队列,每个节点队列包括至少一个计算节点,每个节点队列集群中的计算节点都不同。当步骤S110获取到的任务信息指定了节点队列集群时,步骤S100及其之后的步骤都针对该节点队列集群中的节点队列和计算节点进行。
可选地,节点队列集群可以与任务队列一一对应,用户可以在提交任务时就指定节点队列集群,从而使该任务能够根据任务信息加入指定的节点队列集群所对应的任务队列,以便对任务和节点队列集群的状态进行管理。
S120:获取用户的剩余资源限额,并将剩余资源限额与需求核心数进行比较。
服务端软件获取用户的剩余资源限额,用户向云平台提交任务并占用计算节点资源进行处理需要占用掉用户的部分资源限额,用户的资源限额减去被占用掉的部分就得到了用户的剩余资源限额,服务端软件将这部分可用的剩余资源限额与用户新提交的任务的需求核心数进行比较,从而对该用户还能否占用与需求核心数对应的计算节点资源进行判断,避免单个用户占用过多资源,影响其他用户正常使用云平台,降低任务调度效率,造成节点资源浪费。
S130:响应于剩余资源限额小于需求核心数,将任务在任务队列中后移若干位,并对另一任务执行获取排在任务队列首位的任务的任务信息的步骤。
响应于用户的剩余资源限额小于任务的需求核心数,表示该用户的剩余资源限额暂时不支持该用户再利用云平台处理其提交的任务,服务端软件将该任务在任务队列中后移若干位,并对另一任务执行获取排在任务队列首位的任务的任务信息的步骤。
其中,将该任务后移若干位能够使该任务在任务队列中等待一段时间,考虑到该用户提交的其他任务有可能在这一段时间内完成,从而能释放出一定的计算节点资源、返还该用户的部分剩余资源限额。因此,在等待一段时间后,该用户的剩余资源限额有概率能大于或等于该任务的需求核心数,从而满足调度该任务的需求,此时便可顺利完成剩余资源限额的校验过程。
同时,将该任务后移并对另一任务执行步骤S110能够避免由于剩余资源限额不足导致的任务调度流程堵塞,若提交另一任务的另一用户的剩余资源限额满足另一任务的需求核心数,则可优先对另一任务执行步骤S100及之后的步骤,从而保持任务调度流程的持续,提升任务调度效率。
可选地,将任务后移的若干位可以至少为1位,具体移动的位数则可根据调度、处理任务的速度来决定。
可选地,将该任务后移时可以尽量避免将该任务后移至任务队列的队尾。由于任务的处理过程遵循“先来后到(先对任务队列首位的任务执行步骤S110)”,将因剩余资源限额不足而无法处理的任务移至队尾会导致其在任务队列中滞留过久,对任务调度、处理的效率都存在不良影响。
图4是本申请云平台任务调度方法中用户组的剩余组限额校验过程一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施方式并不以图4所示的流程顺序为限。如图4所示,本实施例包括:
S131:获取用户所属的用户组的剩余组限额,将剩余组限额与剩余资源限额的加和和需求核心数进行比较。
基于用户的剩余资源限额校验过程,考虑到用户的组织架构问题,还可在多个用户之间形成用户组。用户组针对计算节点资源设有组限额,属于同一用户组的用户可以共享该组限额,当用户个人的剩余资源限额不足以支持其任务的调度时,用户可以占用部分的组限额以通过任务调度前的剩余资源限额校验。
步骤S130之后,服务端软件可以获取用户所属的用户组的剩余组限额,将剩余组限额与剩余资源限额的加和和需求核心数进行比较,从而判断用户组的剩余组限额加上用户个人的剩余资源限额能否满足任务的需求核心数。
S132:响应于加和大于需求核心数,将用户的剩余资源限额扣除至0,并将剩余组限额扣除需求核心数与剩余资源限额的差值。
响应于剩余组限额与剩余资源限额的加和大于需求核心数,即满足任务的需求核心数、能够支持任务的调度;服务端软件将用户的剩余资源限额扣除至0,并将剩余组限额扣除需求核心数与剩余资源限额的差值,即表示用户个人的剩余资源限额和部分剩余组限额已用于调度任务。
通过设置用户组的组限额,能在控制同组用户总占用资源的前提下,提供共享的组限额供用户借用,从而灵活扩展单个用户资源限额的上限,避免因用户个人的剩余资源限额不足导致一个任务在任务队列中滞留太久,有效提升任务的调度效率。
可选地,步骤S300之后,响应于任务执行结束,服务端软件可以将扣除的剩余组限额和/或剩余资源限额恢复,使得这部分组限额和资源限额能够循环使用,任务处理结束后空出来的节点资源能够被用户公平地竞争。
图5是本申请云平台任务调度方法获取节点队列状态的流程示意图。需注意的是,若有实质上相同的结果,本实施方式并不以图5所示的流程顺序为限。如图5所示,本实施例包括:
S121:响应于剩余资源限额小于需求核心数,判断节点队列中是否存在剩余核心数大于0的计算节点。
步骤S120之后,响应于比较的结果为剩余资源限额小于需求核心数,表示用户的状态符合调度任务的需求,为了顺利调度,此时可以对计算节点的状态进行判断,服务端软件可以判断节点队列中是否存在剩余核心数大于0的计算节点,即节点队列中是否存在有能力对任务进行处理的计算节点。
可选地,当存在节点队列集群时,步骤S121可以为服务端软件判断任务指定的节点队列集群中是否存在剩余核心数大于0的计算节点。
S122:响应于节点队列中不存在剩余核心数大于0的计算节点,将任务退回任务队列的首位,并持续执行获取节点队列中计算节点的状态的步骤,直至节点队列中存在剩余核心数大于0的计算节点。
响应于节点队列中不存在剩余核心数大于0的计算节点,服务端软件将任务退回任务队列的首位,并持续执行获取节点队列中计算节点的状态的步骤,直至节点队列中存在剩余核心数大于0的计算节点。
可选地,当存在节点队列集群时,步骤S122可以为响应于节点队列集群中不存在剩余核心数大于0的计算节点,将任务退回任务队列的首位,并持续执行获取节点队列集群中计算节点的状态的步骤,直至节点队列集群中存在剩余核心数大于0的计算节点。
在对节点队列状态/节点队列集群状态进行校验的过程中,若是不存在剩余核心数大于0的计算节点,说明云平台中并不存在任何空闲的计算节点,即无论是需求核心数为多少的任务,都无法顺利地被调度至计算节点上,属于云平台造成的任务滞留问题,并非用户原因。因此,在有计算节点空闲出来时,调度任务的顺序依然遵循先来后到的原则。
参阅图6和图8,图6是本申请云平台任务调度方法一实施例的交互流程示意图。图8是本申请云平台任务调度方法一实施例中调度任务的流程示意图。需注意的是,若有实质上相同的结果,本实施方式并不以图6、图8所示的流程顺序为限。如图6、8所示,本实施例中云平台任务调度方法由多个不同功能的模块协作完成。
统一云存储21用于存储任务素材,存储在统一云存储21中的任务素材可以直接在任务调度成功后输入计算节点进行处理。可选地,任务素材可以由用户通过客户端软件上传至统一云存储21,亦可由服务端软件自动获取并存储于统一云存储21中。
用户在提交任务时服务端软件可以自动获取用户的用户信息用于生成任务信息,同时为了节省缓存空间提升任务处理效率,可以仅将生成的任务信息输入与之连接的任务池22中。任务分发器31持续监听任务池22。
在任务池22存入任务信息后,任务分发器31可以根据该任务信息中指定的节点队列集群信息,将该任务信息存入与指定的节点队列集群对应的任务队列中。例如:任务信息中指定的节点队列集群为节点队列集群x34,任务分发器31便可将该任务信息存入对应节点队列集群x34的任务队列x44中。
图6的实施例中至少包括了三个任务队列及节点队列集群:节点队列集群x34及对应的任务队列x44、节点队列集群y35及对应的任务队列y45、节点队列集群z36及对应的任务队列z46。其中,节点队列集群y35还至少包括了计算节点a35a、计算节点b35b、以及计算节点c35c三个计算节点。
可选地,任务信息中还可包括该任务的优先程度,从而能选择性的将优先程度较高的任务存储在任务队列中靠前的位置,优先程度一般的任务则可默认按照先来后到的顺序,存储于任务队列末尾的位置。
每一个任务队列都设有与其对应连接的任务调度器,例如任务队列y45的任务调度器32。任务调度器32持续监听任务队列y45,从而获取任务队列y45中排在首位的任务信息。
在获取到任务信息后,任务调度器32可以访问与之连接的配额中心23以获取用户的剩余资源限额和/或用户所属用户组的剩余组限额,以对任务信息中记录的任务的需求核心数是否符合该用户的限额要求。
如图8所示,任务调度器可以先对任务进行用户配额校验,在用户的剩余资源限额小于需求核心数,即用户配额校验不通过的情况下,任务调度器可以再加入用户组的剩余组限额进行用户组配额校验,在用户组配额校验也不通过的情况下再将任务放回任务队列并后移若干位。
任务调度器32还可以通过访问与之连接的集群状态管理中心24来获取与任务队列y45对应的节点队列集群y35中节点队列及计算节点的状态,从而根据任务信息中记录的任务的需求核心数在节点队列集群y35中选取合适的节点队列,并在合适的节点队列中尝试获取能够处理任务的计算节点。
其中,集群状态管理中心24通过向与之连接的容器云33请求获取节点队列集群中节点队列及计算节点的状态,从而存储容器云33发送的节点队列集群中节点队列及计算节点的状态以供任务调度器获取。可选地,集群状态管理中心24可以定时向容器云33请求更新节点队列集群中节点队列及计算节点的状态。容器云33连接各节点队列集群、节点队列以及计算节点。
响应于获取到可调度任务的计算节点b35b,任务调度器32向与之连接的容器云33发送将任务调度至计算节点b35b的调度请求。容器云33响应于该调度请求,尝试将任务调度至计算节点b35b上,并接收计算节点b35b发送的任务调度成功结果。接收到任务调度成功结果后,容器云33将该任务调度成功结果发送至任务调度器32,通知任务调度器32上一任务的调度已完成。
参阅图8,容器云33未能成功将任务调度至计算节点上时,可以直接向后处理队列37输出调度失败的结果,从而通过监听后处理队列37的后处理器38通知集群状态管理中心24更新计算节点状态。
计算节点b35b在接收到容器云33调度任务的指令并成功调度任务后,从与之连接的统一云存储21获取该任务的任务素材。计算节点b35b对任务素材进行处理,处理结束后向连接计算节点b35b的后处理队列37输出任务处理结果。其中,任务处理结果可以包括任务处理是否成功。
后处理器38连接并监听后处理队列37,响应于后处理队列37中存入计算节点b35b的任务处理结果,后处理器38向与之连接的集群状态管理中心24发送计算节点完成任务处理的消息,从而更新集群状态管理中心24中的计算节点状态。
可选地,后处理器38还可通知配额中心23计算节点已完成任务处理,从而释放用户被占用的剩余资源限额和/或剩余组限额。
图7是本申请云平台任务调度方法一实施例中节点队列集群的结构示意框图。需注意的是,若有实质上相同的结果,本实施方式并不以图7所示的结构为限。如图7所示,本实施例中示例出节点队列集群y35及其中各节点队列、计算节点的状态。本实施例集群状态管理中心24至少存储有三个节点队列集群的状态,包括节点队列集群x34、节点队列集群y35、节点队列集群z36。节点队列集群y35中至少设有6个节点队列,包括优先队列51、1卡队列52、2卡队列53、4卡队列54、空闲队列55以及忙碌队列56。其中,优先队列51和1卡队列52的可用核心数为1,2卡队列53的可用核心数为2,4卡队列54的可用核心数为4,空闲队列55中的计算节点均没有核心被占用,忙碌队列56中计算节点的每个核心都被占用。
计算节点a35a、计算节点b35b、计算节点c35c存储于优先队列51中,说明这三个计算节点的剩余核心数大于0且不为2的正整数幂。当计算节点的总核心数为8时,这三个计算节点的剩余核心数可以为1、3、5和/或7。当任务的需求核心数为1时,优先在这三个计算节点中任意选取一个作为用于处理任务的计算节点。
参阅图7,因为大于0的2的最小正整数幂为2,存储于1卡队列52中的计算节点的剩余核心数至少为2,因此虽然1卡队列52与2卡队列53的可用核心数不同,但1卡队列52中的计算节点与2卡队列53中的计算节点却相同。
由于计算节点6和计算节点4同时存储于1卡队列52、2卡队列53和4卡队列54中,可以推算出计算节点6和计算节点4的剩余核心数至少为4。而计算节点7同时存储于1卡队列52和2卡队列53中,因此计算节点7的剩余核心数仅为2。
计算节点8和计算节点9仅存储于空闲队列中,说明计算节点8和计算节点9均没有核心被占用,其剩余核心数为计算节点的总核心数。计算节点10和计算节点5仅存储于忙碌队列中,说明计算节点10和计算节点5的剩余核心数都为0。
节点队列集群x34和节点队列集群z36中具有与节点队列集群y35相似的节点队列结构,节点队列集群x34和节点队列集群z36的节点队列中存储的计算节点与节点队列集群y35的节点队列中存储的计算节点不同。
可选地,计算节点可以根据其不同的计算能力、核心数量和/或核心类型等特征被分类至不同的节点队列集群中。
如图9所示,本申请计算机设备实施例描述的计算机设备100可以为上述服务器10。计算机设备100可以包括处理器110、存储器120和通信电路130。
存储器120用于存储计算机程序,可以是ROM(只读存储器,Read-Only Memory),也是可以RAM(随机存取存储器,Random Access Memory),或者其他类型的存储设备。具体地,存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一条程序代码。
处理器110用于控制计算机设备100的操作,处理器110还可以称为CPU(CentralProcessing Unit,中央处理单元)。处理器110可能是一种集成电路芯片,具有信号的处理能力。处理器110还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器110也可以是任何常规的处理器等。
处理器110用于执行存储器120中存储的计算机程序以实现本申请基于直播的虚拟资源配置方法第一实施例和基于直播的虚拟资源配置方法第二实施例描述的基于直播的虚拟资源配置方法。
计算机设备100还可以包括通信电路130,通信电路130是计算机设备100用于与外面的设备进行通信连接器件或电路,以使得处理器110能够经通信电路130与外界设备进行数据交互。
关于本申请计算机设备实施例中各功能模块或者部件功能和执行过程的详细阐述,可以参照上述本申请基于直播的虚拟资源配置方法第一实施例和基于直播的虚拟资源配置方法第二实施例中的阐述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的计算机设备100和基于直播的虚拟资源配置方法,可以通过其它的方式实现。例如,以上所描述的计算机设备100各实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
参阅图10,上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读存储介质200中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令/计算机程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种介质以及具有上述存储介质的电脑、手机、笔记本电脑、平板电脑、相机等电子终端。
关于计算机可读的存储介质中的程序数据的执行过程的阐述可以参照上述本申请基于直播的虚拟资源配置方法第一实施例和基于直播的虚拟资源配置方法第二实施例中阐述,在此不再赘述。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种云平台任务调度方法,其特征在于,包括:
获取任务的需求核心数,获取节点队列的可用核心数;
判断所述可用核心数等于所述需求核心数的所述节点队列中是否存在可用的计算节点;
响应于检测到可用的所述计算节点,将所述任务调度至所述计算节点执行;
其中,所述计算节点根据剩余核心数的不同被存储在不同的所述节点队列中,所述节点队列的可用核心数小于等于所述节点队列中所述计算节点的所述剩余核心数。
2.根据权利要求1所述的云平台任务调度方法,其特征在于,所述节点队列包括优先队列和一核队列,所述优先队列中的所述计算节点的所述剩余核心数大于0且不为2的整数幂,所述一核队列中的所述计算节点的所述剩余核心数为2的正整数幂,所述一核队列和所述优先队列的所述可用核心数都为1,且所述优先队列和所述一核队列中的所述计算节点都至少有一个核心被占用;
所述判断所述可用核心数等于所述需求核心数的所述节点队列中是否存在可用的计算节点包括:
响应于所述需求核心数为1,判断所述优先队列中是否存在可用的所述计算节点;
响应于所述优先队列中不存在可用的所述计算节点,判断所述一核队列中是否存在可用的所述计算节点。
3.根据权利要求1所述的云平台任务调度方法,其特征在于,所述节点队列包括一般队列和空闲队列,所述一般队列中的所述计算节点都至少有一个核心被占用,所述空闲队列中的所述计算节点没有任何核心被占用;
所述判断所述可用核心数等于所述需求核心数的所述节点队列中是否存在可用的计算节点包括:
判断所述可用核心数等于所述需求核心数的所述一般队列中是否存在可用的所述计算节点;
响应于未在所述一般队列检测到可用的所述计算节点,判断所述空闲队列中是否存在可用的所述计算节点。
4.根据权利要求2或3所述的云平台任务调度方法,其特征在于,
所述将所述任务调度至所述计算节点执行之后,包括:
重新计算所述计算节点的所述剩余核心数;
响应于所述剩余核心数大于1且不为2的正整数幂,将所述计算节点移出其所在的所述节点队列并加入优先队列。
5.根据权利要求1所述的云平台任务调度方法,其特征在于,
所述获取任务的需求核心数之后,所述获取节点队列之前,包括:
获取排在任务队列首位的所述任务的任务信息,所述任务信息包括所述需求核心数和提交所述任务的用户;
获取所述用户的剩余资源限额,并将所述剩余资源限额与所述需求核心数进行比较;
响应于所述剩余资源限额小于所述需求核心数,将所述任务在所述任务队列中后移若干位,并对另一所述任务执行所述获取排在任务队列首位的所述任务的任务信息的步骤。
6.根据权利要求5所述的云平台任务调度方法,其特征在于,
所述响应于所述剩余资源限额小于所述需求核心数之后,还包括:
获取所述用户所属的用户组的剩余组限额,将所述剩余组限额与所述剩余资源限额的加和和所述需求核心数进行比较;
响应于所述加和大于所述需求核心数,将所述用户的所述剩余资源限额扣除至0,并将所述剩余组限额扣除所述需求核心数与所述剩余资源限额的差值。
7.根据权利要求6所述的云平台任务调度方法,其特征在于,
所述将所述任务调度至所述计算节点执行之后,包括:
响应于所述任务执行结束,恢复扣除的所述剩余组限额和/或所述用户的所述剩余资源限额。
8.根据权利要求5所述的云平台任务调度方法,其特征在于,
所述并将所述剩余资源限额与所述需求核心数进行比较之后,还包括:
响应于所述剩余资源限额小于所述需求核心数,判断所述节点队列中是否存在所述剩余核心数大于0的所述计算节点;
响应于所述节点队列中不存在所述剩余核心数大于0的所述计算节点,将所述任务退回所述任务队列的首位,并持续执行所述获取所述节点队列中所述计算节点的状态的步骤,直至所述节点队列中存在所述剩余核心数大于0的所述计算节点。
9.一种计算机设备,包括存储器、处理器,所述存储器连接所述处理器,所述存储器用于存储可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的方法。
10.一种计算机可读的存储介质,所述计算机可读的存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410012613.0A CN117519952A (zh) | 2024-01-04 | 2024-01-04 | 云平台任务调度方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410012613.0A CN117519952A (zh) | 2024-01-04 | 2024-01-04 | 云平台任务调度方法、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117519952A true CN117519952A (zh) | 2024-02-06 |
Family
ID=89753484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410012613.0A Pending CN117519952A (zh) | 2024-01-04 | 2024-01-04 | 云平台任务调度方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519952A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150180750A1 (en) * | 2013-12-19 | 2015-06-25 | Jvl Ventures, Llc | Systems, methods, and computer program products for service processing |
CN106790332A (zh) * | 2015-11-24 | 2017-05-31 | 中国移动通信集团公司 | 一种资源调度方法、系统及主节点 |
CN111459617A (zh) * | 2020-04-03 | 2020-07-28 | 南方电网科学研究院有限责任公司 | 基于云平台的容器化应用自动分配优化系统及其方法 |
CN112433855A (zh) * | 2020-12-04 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 一种资源分配方法、装置、服务器 |
CN115981852A (zh) * | 2022-12-21 | 2023-04-18 | 中国科学技术大学 | 面向租户的服务器集群资源配额的调整方法、装置及设备 |
CN116233022A (zh) * | 2023-01-06 | 2023-06-06 | 超聚变数字技术有限公司 | 一种作业调度方法、服务器及服务器集群 |
CN116777127A (zh) * | 2023-01-16 | 2023-09-19 | 中移(苏州)软件技术有限公司 | 一种资源分配方法、电子设备及存储介质 |
-
2024
- 2024-01-04 CN CN202410012613.0A patent/CN117519952A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150180750A1 (en) * | 2013-12-19 | 2015-06-25 | Jvl Ventures, Llc | Systems, methods, and computer program products for service processing |
CN106790332A (zh) * | 2015-11-24 | 2017-05-31 | 中国移动通信集团公司 | 一种资源调度方法、系统及主节点 |
CN111459617A (zh) * | 2020-04-03 | 2020-07-28 | 南方电网科学研究院有限责任公司 | 基于云平台的容器化应用自动分配优化系统及其方法 |
CN112433855A (zh) * | 2020-12-04 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 一种资源分配方法、装置、服务器 |
CN115981852A (zh) * | 2022-12-21 | 2023-04-18 | 中国科学技术大学 | 面向租户的服务器集群资源配额的调整方法、装置及设备 |
CN116233022A (zh) * | 2023-01-06 | 2023-06-06 | 超聚变数字技术有限公司 | 一种作业调度方法、服务器及服务器集群 |
CN116777127A (zh) * | 2023-01-16 | 2023-09-19 | 中移(苏州)软件技术有限公司 | 一种资源分配方法、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
岳冬利;刘海涛;孙傲冰;: "IaaS公有云平台调度模型研究", 计算机工程与设计, no. 06, 16 June 2011 (2011-06-16) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105378668B (zh) | 多处理器系统中的操作系统管理的中断引导 | |
CN111258745B (zh) | 一种任务处理方法及设备 | |
CN112130963A (zh) | 虚拟机任务的调度方法、装置、计算机设备及存储介质 | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN111708639A (zh) | 任务调度系统及方法、存储介质及电子设备 | |
CN111459622B (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN107977275B (zh) | 基于消息队列的任务处理方法及相关设备 | |
CN113254223B (zh) | 一种系统重启后的资源分配方法、系统及相关组件 | |
CN114629960A (zh) | 资源调度方法、装置、系统、设备、介质和程序产品 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN107423114B (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN108874534B (zh) | 一种pcpu资源的调度方法和装置 | |
CN117519952A (zh) | 云平台任务调度方法、计算机设备和存储介质 | |
CN111597035A (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CN116260876A (zh) | 基于K8s的AI应用调度方法、装置及电子设备 | |
US10180858B2 (en) | Parallel computing device, parallel computing system, and job control method | |
CN115509704A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN115129466A (zh) | 云计算资源分层调度方法、系统、设备及介质 | |
CN111930485B (zh) | 一种基于性能表现的作业调度方法 | |
CN114610465A (zh) | 任务处理方法、装置及存储介质 | |
CN112114967A (zh) | 一种基于服务优先级的gpu资源预留方法 | |
CN113254200A (zh) | 资源编排方法及智能体 | |
CN110381150A (zh) | 区块链上的数据处理方法、装置、电子设备及存储介质 |
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 |