一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务调度方法、装置、设备、存储介质与流程

2022-02-19 08:49:11 来源:中国专利 TAG:


1.本技术涉及但不限于计算机技术领域,尤其涉及一种任务调度方法、装置、设备、存储介质。


背景技术:

2.多任务运行是集群应用中常见的场景,在多任务运行的场景下,需要通过任务调度管理各任务的运行顺序以及运行资源的使用。然而,相关技术中的任务调度方案,进行任务调度的灵活性较差,不能合理地满足用户的任务执行需求。


技术实现要素:

3.有鉴于此,本技术实施例提供一种任务调度方法、装置、设备、存储介质。
4.本技术实施例的技术方案是这样实现的:
5.一方面,本技术实施例提供一种任务调度方法,所述方法包括:
6.获取待执行任务以及提交所述待执行任务的用户;
7.确定所述用户的优先级以及所述用户的优先资源剩余额度;
8.基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级;
9.基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度。
10.在一些实施例中,所述基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级,包括:
11.确定执行所述待执行任务所需的目标资源数量;
12.在所述目标资源数量不超过所述优先资源剩余额度的情况下,将所述用户的优先级确定为所述待执行任务的优先级。
13.在一些实施例中,所述基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级,还包括:
14.在所述目标资源数量超过所述优先资源剩余额度的情况下,确定所述待执行任务的优先级为设定的基础优先级,所述基础优先级低于每一用户的优先级。
15.在一些实施例中,所述基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度,包括:
16.获取当前正在运行的每一任务的优先级;
17.在所述当前正在运行的每一任务中存在至少一个目标任务的情况下,基于所述至少一个目标任务占用的资源总量,确定所述目标集群当前的目标可用资源总量;其中,所述目标任务的优先级低于所述待执行任务的优先级;
18.确定执行所述待执行任务所需的目标资源数量;
19.在所述目标资源数量不超过所述目标可用资源总量的情况下,停止运行至少一个所述目标任务,以至少得到所述目标资源数量的目标资源,并利用所述目标资源运行所述
待执行任务。
20.在一些实施例中,所述停止运行至少一个所述目标任务,以至少得到所述目标资源数量的目标资源,包括:
21.按照任务的优先级由低到高的顺序依次停止运行至少一个所述目标任务,直至得到所述目标资源数量的目标资源。
22.在一些实施例中,所述基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度,还包括:
23.在满足以下至少之一条件的情况下,将所述待执行任务放入等待调度的任务队列:
24.当前正在运行的每一任务的优先级均不低于所述待执行任务的优先级;
25.所述目标资源数量超过所述目标可用资源总量;
26.所述待执行任务的优先级为设定的基础优先级。
27.在一些实施例中,所述确定所述用户的优先级以及所述用户的优先资源剩余额度,包括:
28.基于设定的优先级配置信息,确定所述用户的优先级以及所述用户的优先资源配额;
29.获取所述用户的当前资源使用量;
30.基于所述优先资源配额和所述当前资源使用量,确定所述用户的优先资源剩余额度。
31.在一些实施例中,所述待执行任务是由所述用户提交至所述目标集群的目标分区的,所述用户的优先级和优先资源剩余额度分别为所述用户在所述目标分区的优先级和优先资源剩余额度;
32.所述基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度,包括:
33.基于所述待执行任务的优先级,在所述目标集群的所述目标分区中对所述待执行任务进行调度。
34.另一方面,本技术实施例提供一种任务调度装置,所述装置包括:
35.获取模块,用于获取待执行任务以及提交所述待执行任务的用户;
36.第一确定模块,用于确定所述用户的优先级以及所述用户的优先资源剩余额度;
37.第二确定模块,用于基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级;
38.调度模块,用于基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度。
39.再一方面,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
40.又一方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
41.又一方面,本技术实施例提供一种计算机程序,包括计算机可读代码,当所述计算
机可读代码在计算机设备中运行时,所述展示设备中的处理器执行用于实现上述方法中的部分或全部步骤。
42.又一方面,本技术实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
43.本技术实施例中,获取待执行任务以及提交该待执行任务的用户;确定该用户的优先级以及该用户的优先资源剩余额度;基于该用户的优先级和该优先资源剩余额度,确定该待执行任务的优先级;并基于该待执行任务的优先级,在目标集群中对该待执行任务进行调度。这样,由于待执行任务的优先级是基于提交该待执行任务的用户的优先级和优先资源剩余额度确定的,综合考虑了用户的优先级和用户的资源使用情况,可以使得任务调度更加灵活,且能减少用户滥用高优先级导致资源使用不合理的情况,从而能够更加合理地满足用户的任务执行需求。
附图说明
44.图1为本技术实施例提供的一种任务调度方法的实现流程示意图;
45.图2为本技术实施例提供的一种任务调度方法的实现流程示意图;
46.图3为本技术实施例提供的一种任务调度方法的实现流程示意图;
47.图4为本技术实施例提供的一种任务调度装置的组成结构示意图;
48.图5为本技术实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
49.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图和实施例对本技术的技术方案进一步详细阐述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
50.在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术的目的,不是旨在限制本技术。
51.在相关技术中,任务调度方法针对用户设置了优先级,能够支持较高优先级用户抢占较低优先级用户的运行资源,若一个具有较高优先级的用户滥用优先级提交了很多任务,会导致优先级低于或等于该用户的其他用户提交的任务无法运行,从而使得任务调度的灵活性较差,不能合理地满足用户的任务执行需求。
52.本技术实施例提供一种任务调度方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶
盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。图1为本技术实施例提供的一种任务调度方法的实现流程示意图,如图1所示,该方法包括如下步骤s101至步骤s104:
53.步骤s101,获取待执行任务以及提交所述待执行任务的用户。
54.这里,待执行任务可以是任意合适的任务,包括但不限于信息处理任务、图像处理任务、音频处理任务、大数据计算任务等中的一种或多种,本技术实施例对此并不限定。待执行任务可以是执行该任务调度方法的处理器主动从外部系统获取的,也可以是用户向外部系统提交后,由外部系统向处理器下发的,还可以是处理器基于预设的任务配置信息自动生成的,这里并不限定。例如,外部系统可以将待执行任务写入消息队列,处理器可以按照特定的消息消费策略从消息队列中读取待执行任务;处理器也可以提供一个用于下发任务的服务接口,外部系统可以通过调用该服务接口将待执行任务下发给调度服务。
55.提交待执行任务的用户可以是通过对待执行任务的任务信息进行解析得到的,也可以是在获取待执行任务的过程中,从提交待处理任务的请求中获取,这里并不限定。
56.在一些实施方式中,待执行任务可以是用户当前提交的任务。在另一些实施例中,待执行任务可以是每一次任务调度过程中从等待调度的任务队列中获取的任务。
57.步骤s102,确定所述用户的优先级以及所述用户的优先资源剩余额度。
58.这里,用户的优先级可以是预先配置的,也可以是默认的,还可以是根据用户提交的待执行任务的类型、数量等信息动态确定的,本技术实施例对此并不限定。
59.用户的优先资源剩余额度指的是用户的优先资源配额中当前剩余的还未使用的额度。用户的优先资源配额指的是可供该用户基于该用户的优先级优先调度的运行资源的数量。运行资源可以包括但不限于图形处理器(graphics processing unit,gpu)资源、中央处理器(central processing unit,cpu)资源、存储资源等中的一种或多种,这里并不限定。在实施时,用户的优先资源配额可以是预先配置的,也可以是默认的,还可以是根据用户提交的待执行任务的类型、数量等信息动态确定的,本技术实施例对此并不限定。
60.在一些实施方式中,可以预先为多个用户和/或用户组配置合适的优先级以及优先资源配额,基于相应的配置信息,可以确定每一用户和/或用户组的优先级、优先资源配额以及用户和/或用户组的优先资源配额中当前剩余的还未使用的额度。在以用户组为单位配置的优先级以及优先资源配额的情况下,用户的优先级可以是该用户所属用户组的优先级,用户的优先资源配额可以是用户所属用户组的优先资源配额中的部分或全部,用户的优先资源剩余额度也可以是用户所属用户组的优先资源剩余额度中的部分或全部,这里并不限定。
61.步骤s103,基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级。
62.这里,可以在用户的优先资源剩余额度足够的情况下,基于用户的优先级确定待执行任务的优先级。例如,可以在用户的优先资源剩余额度大于或等于执行该待执行任务所需的资源数量的情况下,将用户的优先级确定为待执行任务的优先级;在用户的优先资源剩余额度小于执行该待执行任务所需的资源数量的情况下,确定待执行任务的优先级为默认的较低优先级或者不为该待执行任务设置优先级。又如,可以在用户的优先资源剩余额度大于或等于设定的数量阈值的情况下,将用户的优先级确定为待执行任务的优先级;
在用户的优先资源剩余额度小于该数量阈值的情况下,确定待执行任务的优先级为默认的较低优先级或者不为该待执行任务设置优先级。再如,可以在未设置该用户的优先级的情况下,确定待执行任务的优先级为默认的较低优先级或者不为该待执行任务设置优先级。在实施时,本领域技术人员可以根据实际情况采用合适的方式基于用户的优先级和优先资源剩余额度,确定待执行任务的优先级,本技术实施例对此并不限定。
63.步骤s104,基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度。
64.这里,基于待执行任务的优先级可以确定待执行任务的调度顺序,根据该调度顺序可以在目标集群中对该待执行任务进行调度。在实施时,本领域技术人员可以根据实际情况基于待执行任务的优先级,采用合适的方式在目标集群中对待执行任务进行调度。例如,在当前正在运行的任务中存在优先级低于待执行任务的低优先级任务的情况下,可以为待执行任务抢占该低优先级任务占用的资源,用于运行该待执行任务;在当前正在运行的任务中不存在优先级低于待执行任务的低优先级任务的情况下,该待执行任务需要排队等待调度。
65.本技术实施例中,获取待执行任务以及提交该待执行任务的用户;确定该用户的优先级以及该用户的优先资源剩余额度;基于该用户的优先级和该优先资源剩余额度,确定该待执行任务的优先级;并基于该待执行任务的优先级,在目标集群中对该待执行任务进行调度。这样,由于待执行任务的优先级是基于提交该待执行任务的用户的优先级和优先资源剩余额度确定的,综合考虑了用户的优先级和用户的资源使用情况,可以使得任务调度更加灵活,且能减少用户滥用高优先级导致资源使用不合理的情况,从而能够更加合理地满足用户的任务执行需求。
66.在一些实施例中,上述步骤s102可以包括:
67.步骤s111,基于设定的优先级配置信息,确定所述用户的优先级以及所述用户的优先资源配额;
68.这里,优先级配置信息为用于描述用户的优先级及优先资源配额等相关参数的信息。在实施时,优先级配置信息可以是用户预先根据实际情况配置的,也可以是默认的,还可以是在任务调度过程中根据多个用户历史提交的任务的类型、数量等动态设定的,这里并不限定。
69.在一些实施方式中,优先级配置信息可以是包括多个用户的优先级以及优先资源配额的配置文件。在实施时,优先级配置信息可以是js对象简谱(javascript object notation,json)文件、可扩展标记语言(extensible markup language,xml)文件等中的一种或多种,本技术实施例对此并不限定。
70.步骤s112,获取所述用户的当前资源使用量;
71.这里,用户的当前资源使用量为该用户当前正在使用的运行资源的数量,可以通过统计当前正在运行的任务中由该用户提交的任务所占用的资源的数量,得到用户的当前资源使用量。
72.步骤s113,基于所述优先资源配额和所述当前资源使用量,确定所述用户的优先资源剩余额度。
73.这里,可以通过比较用户的优先资源配额和当前资源使用量,确定用户的优先资
源剩余额度。例如,可以在优先资源配额小于或等于当前资源使用量的情况下,确定用户的优先资源剩余额度为0;可以在优先资源配额大于当前资源使用量的情况下,确定用户的优先资源剩余额度为该优先资源配额与该当前资源使用量之间的差值。
74.在上述实施例中,基于设定的优先级配置信息确定用户的优先级以及用户的优先资源配额,获取用户的当前资源使用量,并基于该优先资源配额和该当前资源使用量,确定该用户的优先资源剩余额度。这样,可以简单快速地获取设定的用户的优先级和用户的优先资源剩余额度,从而可以提高任务调度的效率。
75.在一些实施例中,所述待执行任务是由所述用户提交至所述目标集群的目标分区的,所述用户的优先级和优先资源剩余额度分别为所述用户在所述目标分区的优先级和优先资源剩余额度;上述步骤s104可以包括:
76.步骤s121,基于所述待执行任务的优先级,在所述目标集群的所述目标分区中对所述待执行任务进行调度。
77.这里,目标集群中可以包括多个分区,用户在提交待执行任务时可以指定用于执行该待执行任务的目标分区。在实施时,可以为每个用户设定在目标集群的每个分区的优先级以及每个分区的优先资源配额,在确定用户提交的待执行任务的目标分区后,可以确定该用户在该目标分区的优先级以及在该目标分区的优先资源配额,进而可以确定用户在该目标分区的优先资源剩余额度,且基于该用户在该目标分区的优先级和优先资源剩余额度,可以确定该待执行任务的优先级,基于该待执行任务的优先级,在目标集群的该目标分区中对该待执行任务进行调度。
78.在上述实施例中,可以以分区为单位为用户设定的优先级和优先资源配额,并以分区为单位进行任务的调度。这样,可以进一步提高任务调度的灵活性,从而能够更加合理地满足用户的任务执行需求。
79.本技术实施例提供一种任务调度方法,该方法可以由计算机设备的处理器执行。如图2所示,该方法包括如下步骤s201至步骤s205:
80.步骤s201,获取待执行任务以及提交所述待执行任务的用户。
81.步骤s202,确定所述用户的优先级以及所述用户的优先资源剩余额度。
82.这里,上述步骤s201至步骤s202分别对应于前述步骤s101至步骤s102,在实施时可以参照前述步骤s101至步骤s102的具体实施方式。
83.步骤s203,确定执行所述待执行任务所需的目标资源数量。
84.这里,执行待执行任务所需的目标资源数量可以是用户在提交待执行任务时指定的,也可以是默认的,还可以对该待执行任务的任务类型、任务目标等信息进行分析后得到的,这里并不限定。
85.步骤s204,在所述目标资源数量不超过所述优先资源剩余额度的情况下,将所述用户的优先级确定为所述待执行任务的优先级。
86.步骤s205,基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度。
87.这里,上述步骤s205对应于前述步骤s104,在实施时可以参照前述步骤s104的具体实施方式。
88.在一些实施例中,该方法还包括:
89.步骤s211,在所述目标资源数量超过所述优先资源剩余额度的情况下,确定所述待执行任务的优先级为设定的基础优先级,所述基础优先级低于每一用户的优先级。
90.这里,基础优先级可以为默认设定的任务优先级。基础优先级低于每一用户的优先级。
91.例如,可以配置用户1的优先级为p0且用户1的优先资源额度为4,用户2的优先级为p1,且用户2的优先资源额度为8,其中优先级p0高于p1,用户提交任务的顺序依次为:用户1提交任务1且任务1所需的目标资源数量为2、用户1提交任务2且任务2所需的目标资源数量为4、用户2提交任务3且任务3所需的目标资源数量为4、用户2提交任务4且任务4所需的目标资源数量为6,这样,提交任务1时用户1的优先资源剩余额度为4,任务1的目标资源数量未超过该优先资源剩余额度,可以将任务1的优先级确定为用户1的优先级p0,此时用户1的优先资源剩余额度为2,提交任务2时任务2的目标资源数量超过该优先资源剩余额度,将该任务2的优先级确定为基础优先级p2,该基础优先级低于p0和p1,提交任务3时用户2的优先资源剩余额度为8,任务3的目标资源数量未超过该优先资源剩余额度,可以将任务3的优先级确定为用户2的优先级p1,此时用户2的优先资源剩余额度为4,提交任务4时任务4的目标资源数量超过该优先资源剩余额度,将该任务4的优先级确定为基础优先级p2,这样,任务1、2、3、4的优先级分别为p0、p2、p1、p2,其中,p0至p2的优先级依次降低。
92.本技术实施例中,在执行待执行任务所需的目标资源数量超过提交该待执行任务的用户的优先资源剩余额度的情况下,确定该待执行任务的优先级为设定的基础优先级,且该基础优先级低于每一用户的优先级。这样,可以将用户提交的超出优先资源剩余额度的任务的优先级设为基础优先级,从而可以减少用户滥用高优先级导致资源使用不合理的情况,从而能够更加合理地满足用户的任务执行需求。
93.本技术实施例提供一种任务调度方法,该方法可以由计算机设备的处理器执行。如图3所示,该方法包括如下步骤s301至步骤s307:
94.步骤s301,获取待执行任务以及提交所述待执行任务的用户。
95.步骤s302,确定所述用户的优先级以及所述用户的优先资源剩余额度。
96.步骤s303,基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级。
97.这里,上述步骤s301至步骤s303分别对应于前述步骤s101至步骤s103,在实施时可以参照前述步骤s101至步骤s103的具体实施方式。
98.步骤s304,获取当前正在运行的每一任务的优先级。
99.这里,本领域技术人员可以根据实际情况,采用任意合适的方式获取当前正在运行的每一任务的优先级,本技术实施例对此并不限定。在一些实施方式中,可以在目标集群的调度配置信息中记录当前正在运行的每一任务以及每一任务的优先级,通过查询该调度配置信息,可以获取当前正在运行的每一任务的优先级。
100.步骤s305,在所述当前正在运行的每一任务中存在至少一个目标任务的情况下,基于所述至少一个目标任务占用的资源总量,确定所述目标集群当前的目标可用资源总量;其中,所述目标任务的优先级低于所述待执行任务的优先级。
101.这里,目标集群当前的目标可用资源总量为当前可以通过资源抢占或资源分配的方式提供给待执行任务,以用于执行该待执行任务的资源的总量。在一些实施方式中,目标
集群当前的资源已经被全部占用,目标集群当前的目标可用资源总量即为该至少一个目标任务占用的资源总量。在一些实施方式中,目标集群当前还有空闲资源,目标集群当前的目标可用资源总量为该至少一个目标任务占用的资源总量与目标集群当前可用的空闲资源的数量之和。
102.步骤s306,确定执行所述待执行任务所需的目标资源数量。
103.步骤s307,在所述目标资源数量不超过所述目标可用资源总量的情况下,停止运行至少一个所述目标任务,以至少得到所述目标资源数量的目标资源,并利用所述目标资源运行所述待执行任务。
104.这里,可以通过结束运行目标任务的进程来停止运行该目标任务,也可以向运行中的目标任务发送运行结束指令,使得目标任务基于该运行结束指令停止运行。在实施时,本领域技术人员可以根据实际情况采用合适的方式停止运行指示一个目标任务,本技术实施例对此并不限定。
105.在一些实施方式中,可以将停止运行后的目标任务再次放入等待调度的任务队列。
106.本技术实施例中,在当前正在运行的每一任务中存在至少一个优先级低于待执行任务的目标任务的情况下,基于至少一个目标任务占用的资源总量,确定目标集群当前的目标可用资源总量,并在执行待执行任务所需的目标资源数量不超过目标可用资源总量的情况下,停止运行至少一个目标任务,以至少得到目标资源数量的目标资源,并利用得到的目标资源运行该待执行任务。这样,可以支持较高优先级的任务抢占较低优先级的任务占用的资源,使得较高优先级的任务能够优先执行。
107.在一些实施例中,上述步骤s307中所述的停止运行至少一个所述目标任务,以至少释放所述目标资源数量的目标资源,包括:
108.步骤s311,按照任务的优先级由低到高的顺序依次停止运行至少一个所述目标任务,直至得到所述目标资源数量的目标资源。
109.在实施时,在有多个目标任务处于同一优先级的情况下,可以根据该多个目标任务的提交时间确定该多个目标任务的停止顺序,例如,可以先停止提交时间在后的目标任务;也可以根据该多个目标任务的任务类型确定该多个目标任务的停止顺序,例如,可以先停止离线计算任务,后停止实时计算任务等。
110.在上述实施例中,按照任务的优先级由低到高的顺序依次停止运行至少一个所述目标任务,直至得到所述目标资源数量的目标资源。这样,可以进一步优先保障较高优先级的任务的稳定运行,从而能够更加合理地满足用户的任务执行需求。
111.在一些实施例中,该方法还包括:
112.步骤s321,在满足以下至少之一条件的情况下,将所述待执行任务放入等待调度的任务队列:当前正在运行的每一任务的优先级均不低于所述待执行任务的优先级;所述目标资源数量超过所述目标可用资源总量;所述待执行任务的优先级为设定的基础优先级。
113.这里,等待调度的任务队列中的任务会继续等待下一次任务调度,以等待分配足够的用于执行该任务的资源,并利用分配的资源执行该任务。这样,可以使得用户提交的每一任务都能被调度执行。
114.下面说明本技术实施例提供的任务调度方法在实际场景中的应用,该方法可以应用于任意合适的任务调度服务中,如基于用于资源管理的简单linux实用程序(simple linux utility for resource management,slurm)实现的任务调度服务、基于加载共享设施(load sharing facility,lsf)实现的任务调度服务、基于oracle网格引擎(oracle grid engine,oge)实现的任务调度服务。以目标集群中的执行任务的资源为gpu资源的场景为例进行说明。
115.本技术实施例提供一种任务调度方法,该方法可以由任务调度服务执行,该方法包括如下步骤s401至步骤s402:
116.步骤s401,在任务调度服务启动时,获取优先级配置信息;
117.这里,优先级配置信息包含每个用户在每个分区的优先级和gpu配额,优先级配置信息可以为一个json文件。
118.步骤s402,在任务调度服务运行的过程中,当用户向目标集群的目标分区提交待执行任务的情况下,执行如下步骤s421至步骤s423:
119.步骤s421,在用户提交的执行该待执行任务的gpu卡的数量小于或等于目标分区中当前空闲的gpu卡的数量的情况下,调度当前空闲的gpu卡执行该待执行任务;
120.步骤s422,在用户提交的执行该待执行任务所需的gpu卡的数量大于目标分区中当前空闲的gpu卡的数量,且用户提交的执行该待执行任务的gpu卡的数量小于或等于该用户的gpu配额的剩余额度的情况下,确定该待执行任务的优先级与配置的该用户的优先级相同,并按任务的优先级从低到高的顺序遍历运行中的任务,以按照各任务的优先级调度该待执行任务;
121.这里,在调度时,优先级较高的任务可以抢占优先级较低任务的资源,相同优先级的任务先保证先提交的任务的运行资源。
122.在一些实施方式中,任务调度的过程可以包括:
123.步骤s431,在当前运行每一任务的优先级均高于或等于待执行任务的优先级的情况下,将该待执行任务放入等待调度的任务队列,继续排队;
124.步骤s432,在当前运行每一任务中存在优先级小于待执行任务的至少一个目标任务,且该至少一个目标任务占用的gpu卡与目标分区中当前空闲的gpu卡的总数小于执行该待执行任务所需的gpu卡的数量的情况下,将该待执行任务放入等待调度的任务队列,继续排队;
125.步骤s433,在当前运行每一任务中存在优先级小于待执行任务的至少一个目标任务,且该至少一个目标任务占用的gpu卡与目标分区中当前空闲的gpu卡的总数不小于执行该待执行任务所需的gpu卡的数量的情况下,停止运行至少一个目标任务,以得到满足执行该待执行任务所需的至少一个gpu卡,并利用该至少一个gpu卡执行该待执行任务。
126.步骤s423,在用户提交的执行该待执行任务所需的gpu卡的数量大于目标分区中当前空闲的gpu卡的数量,且用户提交的执行该待执行任务的gpu卡的数量大于该用户的gpu配额的剩余额度的情况下,确定该待执行任务的优先级为基础优先级,并将该待执行任务放入等待调度的任务队列,继续排队。
127.例如,在目标集群的目标分区中运行了用户1提交的任务1和任务2,且该目标分区中的gpu资源被全部占用的情况下,任务调度服务接收到用户2提交的任务3,其中,用户1的
优先级为p0且gpu配额为4,执行任务1占用的gpu卡的数量为4且任务1的优先级为p0,执行任务2占用的gpu卡的数量为4且任务2的优先级为基础优先级,用户2的优先级为p1且gpu配额为8,p1的优先级低于p0且高于基础优先级,在这种情况下,对任务3的调度过程可以如下:在执行任务3所需的gpu卡的数量大于用户2的gpu配额的情况下,任务3的优先级为基础优先级,不能抢占任务1和任务2的资源,将任务3放入等待调度的任务队列,继续排队;在执行该任务3所需的gpu卡的数量小于或等于用户2的gpu配额的情况下,任务3的优先级为p1,可以抢占任务2的资源,比较执行任务3所需的gpu卡的数量与执行任务2占用的gpu卡的数量;在执行任务3所需的gpu卡的数量小于或等于任务2占用的gpu卡的数量的情况下,可以停止运行任务2以得到满足运行任务3所需要的gpu卡,并运行任务3;在执行任务3所需的gpu卡的数量大于任务2占用的gpu卡的数量的情况下,即使停止运行任务2也无法得到满足运行任务3所需要的gpu卡,因此,将任务3放入等待调度的任务队列,继续排队。
128.本技术实施例中,通过配置每个用户在每个分区的优先级和gpu配额,可以在任务调度的过程中,在支持较高优先级用户的任务优先执行的同时,可以兼顾同等或较低优先级用户执行任务的需求,以保障集群中的资源被合理使用。
129.图4为本技术实施例提供的一种任务调度装置的组成结构示意图,如图4所示,任务调度装置500包括:获取模块510、第一确定模块520、第二确定模块530和调度模块540,其中:
130.获取模块510,用于获取待执行任务以及提交所述待执行任务的用户;
131.第一确定模块520,用于确定所述用户的优先级以及所述用户的优先资源剩余额度;
132.第二确定模块530,用于基于所述用户的优先级和所述优先资源剩余额度,确定所述待执行任务的优先级;
133.调度模块540,用于基于所述待执行任务的优先级,在目标集群中对所述待执行任务进行调度。
134.在一些实施例中,所述第二确定模块还用于:确定执行所述待执行任务所需的目标资源数量;在所述目标资源数量不超过所述优先资源剩余额度的情况下,将所述用户的优先级确定为所述待执行任务的优先级。
135.在一些实施例中,所述第二确定模块还用于:在所述目标资源数量超过所述优先资源剩余额度的情况下,确定所述待执行任务的优先级为设定的基础优先级,所述基础优先级低于每一用户的优先级。
136.在一些实施例中,所述调度模块还用于:获取当前正在运行的每一任务的优先级;在所述当前正在运行的每一任务中存在至少一个目标任务的情况下,基于所述至少一个目标任务占用的资源总量,确定所述目标集群当前的目标可用资源总量;其中,所述目标任务的优先级低于所述待执行任务的优先级;确定执行所述待执行任务所需的目标资源数量;在所述目标资源数量不超过所述目标可用资源总量的情况下,停止运行至少一个所述目标任务,以至少得到所述目标资源数量的目标资源,并利用所述目标资源运行所述待执行任务。
137.在一些实施例中,所述调度模块还用于:按照任务的优先级由低到高的顺序依次停止运行至少一个所述目标任务,直至得到所述目标资源数量的目标资源。
138.在一些实施例中,所述调度模块还用于:在满足以下至少之一条件的情况下,将所述待执行任务放入等待调度的任务队列:当前正在运行的每一任务的优先级均不低于所述待执行任务的优先级;所述目标资源数量超过所述目标可用资源总量;所述待执行任务的优先级为设定的基础优先级。
139.在一些实施例中,所述第一确定模块还用于:基于设定的优先级配置信息,确定所述用户的优先级以及所述用户的优先资源配额;获取所述用户的当前资源使用量;基于所述优先资源配额和所述当前资源使用量,确定所述用户的优先资源剩余额度。
140.在一些实施例中,所述待执行任务是由所述用户提交至所述目标集群的目标分区的,所述用户的优先级和优先资源剩余额度分别为所述用户在所述目标分区的优先级和优先资源剩余额度;所述调度模块还用于:基于所述待执行任务的优先级,在所述目标集群的所述目标分区中对所述待执行任务进行调度。
141.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
142.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的任务调度方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
143.对应地,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
144.对应地,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
145.对应地,本技术实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
146.这里需要指出的是:以上存储介质、计算机程序产品和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质、计算机程序产品和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
147.需要说明的是,图5为本技术实施例中计算机设备的一种硬件实体示意图,如图5
所示,该计算机设备600的硬件实体包括:处理器601、通信接口602和存储器603,其中:
148.处理器601通常控制计算机设备600的总体操作。
149.通信接口602可以使计算机设备通过网络与其他终端或服务器通信。
150.存储器603配置为存储由处理器601可执行的指令和应用,还可以缓存待处理器601以及计算机设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器601、通信接口602和存储器603之间可以通过总线604进行数据传输。
151.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
152.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
153.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
154.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
155.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
156.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
157.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算
机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
158.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献