1.本公开涉及计算机技术领域,尤其涉及一种资源调度方法及装置、电子设备和存储介质。
背景技术:
2.目前通过可以利用slurm(一种可用于大型计算机集群的集权管理器和作业调度系统),可以对集群的大量计算资源(如gpu资源、cpu资源)进行管理,slurm通常是将大量的计算资源进行拆分为多个分区,将待执行的任务分配到指定的分区中运行。
3.由于基于slurm的集群中分区的资源分配原则是先到先得,也即按照资源申请顺序,分配计算资源,当计算资源分配完时,新申请的任务需要排队等待,这就存在需要优先执行的任务由于申请时间靠后,可能没有可用的计算资源分配该任务,该情况下虽然可以通过手动停止某正在执行的任务来为该需要优先执行的任务释放资源等,但这种方式依赖人工协调,增加人力成本,任务处理效率较低。
技术实现要素:
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.图1示出根据本公开实施例的资源调度方法的流程图。
41.图2示出根据本公开实施例的一种资源调度方法的示意图。
42.图3示出根据本公开实施例的一种资源调度方法的示意图。
43.图4示出根据本公开实施例的一种资源调度方法的示意图。
44.图5示出根据本公开实施例的一种资源调度方法的示意图。
45.图6示出根据本公开实施例的一种基于用户优先级的资源调度系统的示意图。
46.图7示出根据本公开实施例的一种基于任务优先级的资源调度系统的示意图。
47.图8示出根据本公开实施例的资源调度装置的框图。
48.图9示出根据本公开实施例的一种电子设备800的框图。
49.图10示出根据本公开实施例的另一种电子设备1900的框图。
具体实施方式
50.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
51.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
52.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
53.另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
54.在本公开实施例中,集群也即计算机集群,可以理解为一种通过计算机软件和计算机硬件结合起来完成计算任务的计算机系统。集群中的计算资源是被划分为多个分区,也即集群的各个分区中包括集群的部分计算资源。计算资源也即硬件资源,可以理解为中央处理器cpu、图形处理器gpu、神经网络处理器npu等处理器的数量。
55.在本公开实施例中,任一用户可以向集群的任一分区申请计算资源以及提交待执行任务,任一分区中的用户,可以理解为已向该分区中提交任务的用户,任一分区中的任
务,可以理解为该分区中正在执行的任务。
56.在一种可能的实现方式中,可以利用上述slurm调度系统结合本公开实施例的资源调度方法,综合管理集群各个分区的计算资源。通过该方式,能够充分合理地利用集群各个分区的计算资源,提高集群各个分区的资源利用率。
57.图1示出根据本公开实施例的资源调度方法的流程图,所述资源调度方法可以应用于集群,所述任务调度方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现,或者,可通过服务器执行所述方法。如图1所示,所述资源调度方法包括:
58.在步骤s11中,响应于目标用户向集群的指定分区提交待执行任务,检测指定分区中是否存在满足待执行任务所需的目标计算资源的空闲计算资源。
59.可知晓的是,用户可以基于上述slurm调度系统向集群的任一分区提交任务,或者说申请任一分区的计算资源来执行提交的待执行任务,指定分区可以理解为用户申请计算资源以提交待执行任务的分区,目标用户可以理解为向指定分区申请计算资源并提交待执行任务的用户。
60.其中,空闲计算资源可以理解为未被占用的计算资源,或者说未被占用的处理器数量;待执行任务所需的目标计算资源,可以理解为,执行该待执行任务所需的处理器数量,该目标计算资源可以是目标用户向指定分区申请的计算资源。
61.应理解的是,目标用户可以根据待执行任务的任务规模,自定义向指定分区申请待执行任务的目标计算资源,也即目标用户可以向指定分区申请至少一个处理器执行该目标用户提交的待执行任务,对此本公开实施例不作限制。
62.其中,检测指定分区中是否存在满足目标计算资源的空闲计算资源,可以理解为,检测指定分区中空闲的处理器数量是否小于或等于待执行任务所需的处理器数量。例如,待执行任务需要4台gpu,指定分区中空闲的处理器小于4台,例如0台或2台等,则可以认为指定分区中不存在满足目标计算资源的空闲计算资源;相应的,若指定分区中空闲的处理器大于或等于4台,例如6台或4台等,则可以认为该指定分区中存在满足目标计算资源的空闲计算资源。
63.在步骤s12中,在指定分区中不存在满足目标计算资源的空闲计算资源的情况下,获取目标用户在指定分区的第一用户优先级,和/或获取待执行任务的第一任务优先级。
64.在一种可能的实现方式中,集群分区的管理员可以根据各个项目的项目信息,通过交互界面或后台指令等方式,预先配置不同项目的项目成员在不同分区的用户优先级,和/或不同项目中各个任务的任务优先级,也即不同项目成员在项目中负责任务的任务优先级;进而基于管理员的优先级配置结果,生成优先级配置文件,例如json格式文件。
65.应理解的是,一个项目下可以包括至少一个项目成员,一个项目下可以包括至少一个任务,一个项目成员可以负责项目中的至少一个任务;以及管理员可以根据各个项目的执行情况以及实际需求等,随时调整项目下各个项目成员的用户优先级,以及项目中各个任务的任务优先级,对此本公开实施例不作限制。
66.当指定分区中不存在满足目标计算资源的空闲计算资源,并触发为待执行任务调
度计算资源时,可以读取上述优先级配置文件中的优先级配置信息,也即获取该目标用户在该指定分区的第一用户优先级以及该目标用户提交的待执行任务的第一任务优先级。可理解的是,目标用户可以是任一项目中的项目成员,或者说任一项目中的项目成员可以向集群的分区提交项目中的待执行任务。
67.在一种可能的实现方式中,目标用户的第一用户优先级是根据指定项目的第一项目信息确定的,第一项目信息包括项目规模、项目等级以及项目紧急程度中的至少一种;待执行任务的第一任务优先级是根据指定项目的第二项目信息确定的,第二项目信息包括项目规模、项目等级、项目紧急程度以及项目中任务的重要程度中的至少一种。
68.其中,用户优先级可以与第一项目信息正相关,任务优先级可以与第二项目信息正相关,也即项目规模越大,用户优先级与任务优先级的等级越高;项目等级越高,用户优先级与任务优先级的等级越高,项目等级表征项目的重要程度与优先程度;项目紧急程度越高,用户优先级与任务优先级的等级越高,项目紧急程序可以表征项目的交付完成时限;项目中任务的重要程度越高,项目中任务的任务优先级越高。
69.例如,当前周期内(如当前一个月内/当前一周内)项目a、b、c共用分区x,项目a在本月内有待交付任务,也即项目紧急程序较高,因此分区x的管理员可为项目a中负责该待交付任务的项目成员配置最高用户优先级,和/或直接为该待交付任务配置最高任务优先级,假设项目a启动的待交付任务都以a_jobname命名,则以a_jobname命名的任务代表最高任务优先级。
70.在一种可能的实现方式中,指定分区中还可能存在未配置用户优先级的用户或未配置任务优先级的任务,此时可以认为未配置用户优先级的用户,是具有最低用户优先级的用户,未配置任务优先级的任务,是具有最低任务优先级的任务。
71.如上所述,目标用户的第一用户优先级是根据指定项目的第一项目信息确定的,待执行任务的第一任务优先级是根据指定项目的第二项目信息确定的,在一种可能的实现方式中,获取目标用户在指定分区的第一用户优先级,和/或获取待执行任务的第一任务优先级,包括:根据第一项目信息,确定目标用户在指定分区的第一用户优先级,其中,第一用户优先级与第一项目信息正相关;和/或,根据第二项目信息,确定第一用户提交的待执行任务的第一任务优先级,其中,第一任务优先级与第二项目信息正相关。通过该方式,可以根据各个项目信息自动设置目标用户的第一用户优先级与待执行任务的第一任务优先级。
72.其中,确定第一用户优先级与第一任务优先级的方式,可以参照上述配置用户优先级与任务优先级的实现方式,在此不赘述。该方式可以理解为,当指定分区中不存在满足目标计算资源的空闲计算资源,并触发为待执行任务调度计算资源时,根据目标用户所在的指定项目的第一项目信息与第二项目信息,也即待执行任务所属的指定项目的第一项目信息与第二项目信息,分别确定目标用户的第一用户优先级以及待执行任务的第一任务优先级,通过该方式,无需管理员预先配置各个项目下项目成员的用户优先级与各个项目下任务的任务优先级。
73.在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源。
74.如上所述,在步骤s12中,可以获取目标用户的第一用户优先级,和/或获取待执行任务的第一任务优先级,那么应理解的是,在步骤s12获取的是目标用户的第一用户优先级
的情况下,才根据第一用户优先级,为待执行任务调度指定分区的计算资源;以及,在步骤s12获取的是待执行任务的第一任务优先级的情况下,才根据第一任务优先级,为待执行任务调度指定分区的计算资源;以及,在步骤s12获取的是目标用户的第一用户优先级和待执行任务的第一任务优先级的情况下,才根据第一用户优先级和第一任务优先级,为待执行任务调度指定分区的计算资源。
75.其中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源,可以包括:根据第一用户优先级,为待执行任务调度指定分区的计算资源;或,根据第一任务优先级,为待执行任务调度指定分区的计算资源;或根据第一用户优先级和第一任务优先级,为待执行任务调度指定分区的计算资源。
76.在一种可能的实现方式中,根据第一用户优先级,为待执行任务调度指定分区的计算资源,例如可以包括:可以按照用户优先级从低到高的顺序,停止执行指定分区中低于第一用户优先级的用户提交的任务,并释放该低于第一用户优先级的用户提交的任务所占用的计算资源,至满足目标计算资源。
77.举例来说,假设用户优先级p0》p1》p2》p3》p4》
…
,分区x共有8台cpu,目前正在执行p2用户的任务a1占用2台cpu和任务a2占用2台cpu,正在执行p3用户的任务b1占用4台cpu,那么当第一用户优先级p1的目标用户向分区x申请6台cpu,以执行提交的待执行任务时,可以停止执行p3用户的任务b1以及p2用户的任务a2,将释放的6台cpu调度给待执行任务。其中,p2用户也即用户优先级为p2的用户,p3用户也即为用户优先级为p3的用户,以此类推。
78.在一种可能的实现方式中,根据第一任务优先级,为待执行任务调度指定分区的计算资源,例如可以包括:可以按照任务优先级从低到高的顺序,停止执行指定分区中低于第一任务优先级的任务,并释放该低于第一任务优先级的任务所占用的计算资源,至满足目标计算资源。
79.举例来说,假设任务优先级l0》l1》l2》l3》l4》
…
,当第一任务优先级l0的待执行任务提交到分区p时,若该分区p的空闲计算资源不够,则会先查询并停止无任务优先级的任务,然后依次按照任务优先级从低到高的顺序,停止l1任务、l2任务等,直至释放的计算资源满足待执行任务所需的目标计算资源,将释放的计算资源调度给待执行任务。其中,l1任务也即任务优先级为l1的任务,l2任务也即任务优先级为l2的任务,以此类推。
80.在一种可能的实现方式中,根据第一用户优先级和第一任务优先级,为待执行任务调度指定分区的计算资源,可以包括:先按照用户优先级从低到高的顺序,停止执行小于第一用户优先级的用户提交的任务,并释放计算资源;若释放的计算资源仍不满足目标计算资源,再按照任务优先级从低到高的顺序,停止执行等于第一用户优先级的用户所提交的任务中、小于第一任务优先级的任务,至满足目标计算资源。
81.举例来说,分区x共有8台cpu,目前正在执行p1用户的l1任务a3占用2台cpu和l2任务a4占用2台cpu,以及p3用户的l1任务b1占用4台cpu,那么当第一用户优先级p1的目标用户向分区x申请6台cpu,以执行提交的第一任务优先级为l1的待执行任务时,可以停止执行p3用户的l1任务b1以及p1用户的l2任务a2,将释放的6台cpu调度给待执行任务c。
82.在一种可能的实现方式中,根据第一用户优先级和第一任务优先级,为待执行任务调度指定分区的计算资源,可以包括:先按照任务优先级从低到高的顺序,停止执行小于第一任务优先级的任务,并释放计算资源;若释放的计算资源仍不满足目标计算资源,再按
照用户优先级从低到高的顺序,停止执行等于第一任务优先级的任务所对应的用户中、小于第一用户优先级的用户的任务,至满足目标计算资源。
83.举例来说,分区x共有8台cpu,目前正在执行p2用户的l0任务a3占用2台cpu、p0用户的l2任务d1占用2台cpu以及l0任务d2占用2台,以及p3用户的l3任务b1占用2台cpu,那么当第一任务优先级l0的待执行任务需要6台cpu,待执行任务对应的目标用户的第一用户优先级为p1时,可以停止执行l3任务b1、l2任务d1以及l0任务a3,将释放的6台cpu调度给待执行任务。
84.在本公开实施例中,能够在集群的指定分区中不存在满足待执行任务所需的目标计算资源的空闲计算资源的情况下,根据目标用户在指定分区中的第一用户优先级和/或待执行任务的第一任务优先级,实现合理化地自动为待执行任务调度该指定分区的计算资源,降低人力成本,有利于提高任务处理效率。
85.如上所述,可以单根据第一用户优先级为待执行任务调度指定分区的计算资源,图2示出根据本公开实施例的一种资源调度方法的示意图,如图2所示,在一种可能的实现方式中,在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源,包括:
86.步骤s131,根据第一用户优先级,判断指定分区中是否存在第一用户,第一用户的用户优先级小于目标用户的第一用户优先级;
87.步骤s133,在指定分区中存在第一用户,且第一用户对应的第一任务在指定分区占用的计算资源满足目标计算资源的情况下,停止执行第一任务并释放第一任务占用的计算资源,以利用释放的计算资源执行待执行任务;或,
88.步骤s134,在指定分区中不存在第一用户,或第一任务占用的计算资源不满足目标计算资源的情况下,将待执行任务添加至待调度队列,以等待调度计算资源。
89.其中,根据第一用户优先级,判断指定分区中是否存在第一用户,也即判断指定分区中是否存在小于第一用户优先级的第一用户。
90.如图2所示,在一种可能的实现方式中,在判断指定分区中存在第一用户之后,还可以执行步骤s132,判断第一用户对应的第一任务在指定分区占用的计算资源是否满足目标计算资源。其中,第一用户对应的第一任务,可以理解为,第一用户在指定分区中提交的任务。第一任务占用的计算资源是否满足目标计算资源,可以理解为,第一任务占用的处理器数量是否大于或等于待执行任务所需的处理器数量。
91.应理解的是,指定分区中还可能存在空闲计算资源,但该空闲计算资源不满足目标计算资源,例如,指定分区y中空闲有1台cpu,待执行任务需要4台cpu(即目标用户为该待执行任务共申请4台cpu)。那么第一用户对应的第一任务在指定分区占用的计算资源满足目标计算资源,可以理解为,第一任务占用的计算资源与空闲计算资源共同满足目标计算资源。
92.其中,指定分区中不存在第一用户,可以理解为,不存在小于第一用户优先级的第一用户,也即,指定分区中正在执行的任务所对应用户的用户优先级均大于或等于第一用户优先级;第一任务占用的计算资源不满足目标计算资源,可以理解为,虽然指定分区中存在第一用户,但第一用户对应的第一任务在指定分区中占用的计算资源小于目标计算资源。在该些情况下,将待执行任务添加至待调度队列,等待指定分区中有可用的空闲计算资
源后,再执行该待执行任务。其中,待调度队列可以理解为缓存队列,用于暂存未被分配计算资源的待执行任务。
93.在一种可能的实现方式中,在步骤s133中,在停止执行第一任务时,可以通过打快照的方式,保存第一任务当前的执行状态,例如模型训练到第几轮、样本数据处理到第几个等,以便于有可用的空闲计算资源时,重新启动执行第一任务。
94.在本公开实施例中,能够实现根据用户优先级,合理地自动为待执行任务调度计算资源,降低人力成本,有利于提高任务处理效率。
95.考虑到,第一任务可能是多个,也即指定分区中正在执行多个第一任务,多个第一任务占用的计算资源可能大于目标计算资源,而有些第一任务可能已经执行了较长时间,有些第一任务可能刚开始执行,若随机停止第一任务,可能停止了已经执行了较长时间的第一任务,这就降低了指定分区完成所需执行任务的生产效能,在一种可能的实现方式中,在步骤s133中,停止执行第一任务并释放第一任务占用的计算资源,包括:
96.根据各个第一任务的运行时长以及目标计算资源,从多个第一任务中选取待停止执行的至少一个第一任务,其中,各个第一任务的运行时长表征各个第一任务从启动时刻至当前时刻之间的时长;停止执行选取的至少一个第一任务,并释放选取的至少一个第一任务占用的计算资源,以利用释放的计算资源执行待执行任务。
97.其中,启动时刻可以理解为第一任务开始运行的时刻,当前时刻可以理解为选取第一任务的时刻。根据各个第一任务的运行时长以及目标计算资源,从多个第一任务中选取待停止执行的至少一个第一任务,可以包括:按照运行时长从短到长的顺序,从多个第一任务中选取至少一个第一任务,至选取的至少一个第一任务所占用的计算资源满足目标计算资源。
98.举例来说,假设有第一任务b2占用1台cpu、第一任务b3占用1台cpu、第一任务b4占用1台cpu,b2运行了3小时,b3运行了6小时,b4运行了2小时,待执行任务需要2台cpu,则可以选取b2和b4并停止执行b2和b4。
99.在本公开实施例中,能够基于运行时长与目标计算资源,从多个可停止的第一任务中选取待停止的至少一个第一任务,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
100.如上所述,可以根据第一用户优先级和第一任务优先级,为待执行任务调度指定分区的计算资源,图3示出根据本公开实施例的一种资源调度方法的示意图,如图3所示,在一种可能的实现方式中,在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源,包括:
101.上述步骤s131至步骤s133;以及,
102.步骤s135,在指定分区中不存在第一用户的情况下,判断指定分区中是否存在第二用户,第二用户的用户优先级等于目标用户的第一用户优先级;
103.步骤s137,在指定分区中存在第二用户,且第二用户对应的第二任务的第二任务优先级小于第一任务优先级的情况下,判断第二任务在指定分区占用的计算资源是否满足目标计算资源;
104.步骤s138,在第二任务占用的计算资源满足目标计算资源的情况下,停止执行第二任务并释放第二任务占用的计算资源,以利用释放的计算资源执行待执行任务。
105.如图3所示,在一种可能的实现方式,在步骤s135判断指定分区中是否存在第二用户之后,还可以执行步骤s136,判断第二用户对应的第二任务的第二任务优先级是否小于第一任务优先级。其中,第二用户对应的第二任务,可以理解为第二用户在指定分区中提交的任务,或者说,指定分区中正在执行的第二用户所提交的任务。
106.在步骤s137中,判断第二任务在指定分区占用的计算资源是否满足目标计算资源,可以理解为,第二任务占用的处理器数量是否大于或等于待执行任务所需的处理器数量。其中,第二用户对应的第二任务的第二任务优先级小于第一任务优先级,可以理解为,第二用户对应的各个任务中存在小于第一任务优先级的第二任务。
107.应理解的是,第二用户对应的第二任务可以是多个,也即,指定分区中可以正在执行多个第二任务。在一种可能的实现方式中,在步骤s138中,停止执行第二任务并释放第二任务占用的计算资源,可以包括:按照各个第二任务的运行时长从短到长的顺序,从多个第二任务中选取至少一个第二任务,至选取的至少一个第二任务所占用的计算资源满足目标计算资源;停止执行选取的该至少一个第一任务,并释放选取的该至少一个第一任务占用的计算资源,以利用释放的计算资源执行待执行任务。
108.其中,各个第二任务的运行时长表征各个第二任务从启动时刻至当前时刻之间的时长,启动时刻可以理解为第二任务开始运行的时刻,当前时刻可以理解为选取第二任务的时刻。通过该方式,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
109.如上所述,指定分区中还可能存在空闲计算资源,但该空闲计算资源不满足目标计算资源,例如,指定分区y中空闲有1台cpu,待执行任务需要4台cpu(即目标用户为该待执行任务共申请4台cpu)。那么至少一个第二任务占用的计算资源满足目标计算资源,可以理解为,至少一个第二任务占用的计算资源与空闲计算资源共同满足目标计算资源。
110.如图3所示,在一种可能的实现方式中,在判断指定分区中是否存在第二用户之后,所述方法还包括:步骤s139,在指定分区中不存在第二用户,或者第二任务优先级大于或等于第一任务优先级,或者第二任务占用的计算资源不满足目标计算资源的情况下,将待执行任务添加至待调度队列,以等待调度计算资源。通过该方式,有利于合理调度指定分区的计算资源,降低人力成本,提高任务处理效率。
111.其中,第二任务优先级大于或等于第一任务优先级,可以理解为,第二用户对应的各个任务中不存在小于第一任务优先级的第二任务;第二任务占用的计算资源不满足目标计算资源,可以理解为,第二任务占用的处理器数量小于待执行任务所需的处理器数量。在该些情况下,将待执行任务添加至待调度队列,等待指定分区中有可用的空闲计算资源后,再执行该待执行任务。其中,待调度队列可以理解为缓存队列,用于暂存未被分配计算资源的待执行任务。
112.在一种可能的实现方式中,在步骤s138中,在停止执行第二任务时,可以通过打快照的方式,保存第二任务当前的执行状态,例如模型训练到第几轮、样本数据处理到第几个等,以便于有可用的空闲计算资源时,重新启动执行第二任务。
113.在本公开实施例中,能够实现根据用户优先级与任务优先级,合理地自动为待执行任务调度计算资源,降低人力成本,有利于提高任务处理效率。
114.如上所述,还可能存在第一任务占用的计算资源不满足目标计算资源的情况,图3
示出根据本公开实施例的一种资源调度方法的示意图,如图3所示,在一种可能的实现方式中,在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源,还可以包括:
115.步骤s140,在第一任务占用的计算资源不满足目标计算资源的情况下,判断指定分区中是否存在第二用户,第二用户的用户优先级等于目标用户的第一用户优先级;
116.步骤s142,在指定分区中存在第二用户,且第二用户对应的第二任务的第二任务优先级小于第一任务优先级的情况下,判断第一任务与第二任务共同占用的计算资源是否满足目标计算资源;
117.步骤s143,在第一任务与第二任务共同占用的计算资源满足目标计算资源的情况下,停止执行第一任务以及第二任务,并释放第一任务与第二任务分别占用的计算资源,以利用释放的计算资源执行待执行任务。
118.如图3所示,在一种可能的实现方式,在步骤s140判断指定分区中是否存在第二用户之后,还可以执行步骤s141,判断第二用户对应的第二任务的第二任务优先级是否小于第一任务优先级。
119.在步骤s142中,第二用户对应的第二任务的第二任务优先级小于第一任务优先级,可以理解为,第二用户对应的任务中存在小于第一任务优先级的第二任务。其中,第二用户对应的任务,可以理解为第二用户在指定分区中提交的任务,或者说,指定分区中正在执行的第二用户所提交的任务。
120.在步骤s142中,判断第一任务与第二任务共同占用的计算资源是否满足目标计算资源,可以理解为,第二任务占用的处理器数量与第一任务占用的处理器数量之间的和,是否大于或等于待执行任务所需的处理器数量。
121.应理解的是,第二用户对应的第二任务可以是多个,也即,指定分区中可以正在执行多个第二任务。在一种可能的实现方式中,在步骤s143中,停止执行第一任务以及第二任务,并释放第一任务与第二任务分别占用的计算资源,可以包括:按照各个第二任务的运行时长从短到长的顺序,从多个第二任务中选取至少一个第二任务,至选取的至少一个第二任务与第一任务共同占用的计算资源满足目标计算资源;停止执行选取的该至少一个第二任务与第一任务,并释放选取的该至少一个第二任务与第一任务共同占用的计算资源,以利用释放的计算资源执行待执行任务。
122.如上所述,指定分区中还可能存在空闲计算资源,但该空闲计算资源不满足目标计算资源,例如,指定分区y中空闲有1台cpu,待执行任务需要4台cpu(即目标用户为该待执行任务共申请4台cpu)。那么至少一个第二任务与第一任务共同占用的计算资源满足目标计算资源,可以理解为,第一任务占用的计算资源、至少一个第二任务占用的计算资源以及空闲计算资源三者共同满足目标计算资源。
123.其中,各个第二任务的运行时长表征各个第二任务从启动时刻至当前时刻之间的时长,启动时刻可以理解为第二任务开始运行的时刻,当前时刻可以理解为选取第二任务的时刻。通过该方式,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
124.如图3所示,在一种可能的实现方式中,在判断第一任务与第二任务共同占用的计算资源是否满足目标计算资源之后,所述方法还包括:在第一任务与第二任务共同占用的
计算资源不满足目标计算资源的情况下,执行步骤s139将待执行任务添加至待调度队列,以等待调度计算资源。通过该方式,有利于合理调度指定分区的计算资源,降低人力成本,提高任务处理效率。
125.在一种可能的实现方式中,在步骤s143中,在停止执行第一任务以及第二任务时,可以通过打快照的方式,保存第一任务以及第二任务当前的执行状态,例如模型训练到第几轮、样本数据处理到第几个等,以便于有可用的空闲计算资源时,重新启动执行第一任务与第二任务。
126.在本公开实施例中,能够实现根据用户优先级与任务优先级,合理地自动为待执行任务调度计算资源,降低人力成本,有利于提高任务处理效率。
127.如上所述,指定分区中可以正在执行多个第二任务,在一种可能的实现方式中,在步骤s143中,停止执行第一任务以及第二任务,并释放第一任务与第二任务分别占用的计算资源,包括:
128.根据各个第二任务的运行时长以及第一剩余目标计算资源,从多个第二任务中选取待停止执行的至少一个第二任务,其中,各个第二任务的运行时长表征各个第二任务从启动时刻至当前时刻之间的时长,第一剩余目标计算资源是目标计算资源与第一任务占用的计算资源之间的差值;
129.停止执行第一任务以及选取的至少一个第二任务,并释放第一任务占用的计算资源以及释放选取的至少一个第二任务占用的计算资源,以利用释放的计算资源执行待执行任务。
130.其中,第二任务的启动时刻可以理解为第二任务开始运行的时刻,当前时刻可以理解为选取第二任务的时刻。根据各个第二任务的运行时长以及第一剩余目标计算资源,从多个第二任务中选取待停止执行的至少一个第二任务,可以包括:按照运行时长从短到长的顺序,从多个第二任务中选取至少一个第二任务,至选取的至少一个第二任务所占用的计算资源满足第一剩余计算资源。
131.举例来说,假设有第二任务e1占用1台cpu、第二任务e2占用1台cpu、第二任务e3占用1台cpu,e1运行了3小时,e2运行了6小时,e3运行了2小时,第一任务b5占用2台cpu,待执行任务需要4台cpu,第一剩余目标计算资源可以是2台cpu,则可以选取e1和e3并停止执行e1、e3和b5。
132.在本公开实施例中,能够基于运行时长与目标计算资源,从多个可停止的第二任务中选取待停止的至少一个第二任务,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
133.如上所述,可以单根据第一任务优先级为待执行任务调度指定分区的计算资源,图4示出根据本公开实施例的一种资源调度方法的示意图,如图4所示,在一种可能的实现方式中,在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源,包括:
134.步骤s151,根据第一任务优先级,判断指定分区中是否存在第三任务,第三任务的任务优先级小于待执行任务的第一任务优先级;
135.步骤s153,在指定分区中存在第三任务,且第三任务占用的计算资源满足目标计算资源的情况下,停止执行第三任务并释放第三任务占用的计算资源,以利用释放的计算
资源执行待执行任务;或,
136.步骤s154,在指定分区中不存在第三任务,或第三任务占用的计算资源不满足目标计算资源的情况下,将待执行任务添加至待调度队列,以等待调度计算资源。
137.其中,根据第一任务优先级,判断指定分区中是否存在第三户,也即判断指定分区中是否存在小于第一任务优先级的第三任务。
138.如图4所示,在一种可能的实现方式中,在判断指定分区中存在第三任务之后,还可以执行步骤s152,判断第三任务占用的计算资源是否满足目标计算资源。其中,第三任务占用的计算资源是否满足目标计算资源,可以理解为,第三任务占用的处理器数量是否大于或等于待执行任务所需的处理器数量。
139.如上所述,指定分区中还可能存在空闲计算资源,但该空闲计算资源不满足目标计算资源,例如,指定分区y中空闲有1台cpu,待执行任务需要4台cpu(即目标用户为该待执行任务共申请4台cpu)。那么第三任务在指定分区占用的计算资源满足目标计算资源,可以理解为,第三任务占用的计算资源与空闲计算资源共同满足目标计算资源。
140.其中,指定分区中不存在第三任务,可以理解为,不存在小于第一任务优先级的第三任务,也即,指定分区中正在执行的任务的任务优先级均大于或等于第一任务优先级;第三任务占用的计算资源不满足目标计算资源,可以理解为,虽然指定分区中存在第三任务,但第三任务在指定分区中占用的计算资源小于目标计算资源。在该些情况下,将待执行任务添加至待调度队列,等待指定分区中有可用的空闲计算资源后,再执行该待执行任务。其中,待调度队列可以理解为缓存队列,用于暂存未被分配计算资源的待执行任务。
141.在一种可能的实现方式中,在步骤s153中,在停止执行第三任务时,可以通过打快照的方式,保存第三任务当前的执行状态,例如模型训练到第几轮、样本数据处理到第几个等,以便于有可用的空闲计算资源时,重新启动执行第三任务。
142.考虑到,第三任务可能是多个,也即指定分区中正在执行多个第三任务,多个第三任务占用的计算资源可能大于目标计算资源,而有些第三任务可能已经执行了较长时间,有些第三任务可能刚开始执行,若随机停止第三任务,可能停止了已经执行了较长时间的第三任务,这就降低了指定分区完成所需执行任务的生产效能。
143.基于此,在一种可能的实现方式中,在步骤s153中,停止执行第三任务并释放第三任务占用的计算资源,可以包括:按照各个第三任务的运行时长从短到长的顺序,从多个第三任务中选取至少一个第三任务,至选取的至少一个第三任务所占用的计算资源满足目标计算资源;并释放该选取的至少一个第三任务所占用的计算资源。其中,各个第三任务的运行时长表征各个第三任务从启动时刻至当前时刻之间的时长。
144.通过该方式,能够基于各个第三任务的运行时长与目标计算资源,从多个可停止的第三任务中选取待停止的至少一个第三任务,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
145.在本公开实施例中,能够实现根据任务优先级,合理地自动为待执行任务调度计算资源,降低人力成本,有利于提高任务处理效率。
146.如上所述,可以根据第一用户优先级和第一任务优先级,为待执行任务调度指定分区的计算资源,图5示出根据本公开实施例的一种资源调度方法的示意图,如图5所示,在一种可能的实现方式中,在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执
行任务调度指定分区的计算资源,包括:
147.上述步骤s151至步骤s153;以及,
148.步骤s155,在指定分区中不存在第三任务的情况下,判断指定分区中是否存在第四任务,第四任务的任务优先级等于待执行任务的第一任务优先级;
149.步骤s157,在指定分区中存在第四任务,且第四任务对应用户的用户优先级小于第一用户优先级的情况下,判断第四任务在指定分区占用的计算资源是否满足目标计算资源;
150.步骤s158,在第四任务占用的计算资源满足目标计算资源的情况下,停止执行第四任务并释放第四任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。
151.如图5所示,在一种可能的实现方式,在步骤s155判断指定分区中是否存在第第四任务之后,还可以执行步骤s156,判断第四任务对应用户的用户优先级是否小于第一用户优先级。其中,第四任务对应用户,可以理解为,在指定分区中提交该第四任务的用户。判断第四任务对应用户的用户优先级是否小于第一用户优先级,也即,判断提交该第四任务的用户所对应的用户优先级是否小于第一用户优先级。
152.在步骤s157中,判断第四任务在指定分区占用的计算资源是否满足目标计算资源,可以理解为,第四任务占用的处理器数量是否大于或等于待执行任务所需的处理器数量。
153.应理解的是,第四任务可以是多个,也即,指定分区中可以正在执行多个第四任务。在一种可能的实现方式中,在步骤s158中,停止执行第四任务并释放第四任务占用的计算资源,可以包括:按照各个第四任务的运行时长从短到长的顺序,从多个第四任务中选取至少一个第四任务,至选取的至少一个第四任务所占用的计算资源满足目标计算资源;停止执行选取的该至少一个第四任务,并释放选取的该至少一个第四任务占用的计算资源,以利用释放的计算资源执行待执行任务。
154.其中,各个第四任务的运行时长表征各个第四任务从启动时刻至当前时刻之间的时长,启动时刻可以理解为第四任务开始运行的时刻,当前时刻可以理解为选取第四任务的时刻。通过该方式,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
155.如上所述,指定分区中还可能存在空闲计算资源,但该空闲计算资源不满足目标计算资源,例如,指定分区y中空闲有1台cpu,待执行任务需要4台cpu(即目标用户为该待执行任务共申请4台cpu)。那么至少一个第四任务占用的计算资源满足目标计算资源,可以理解为,至少一个第四任务占用的计算资源与空闲计算资源共同满足目标计算资源。
156.如图5所示,在一种可能的实现方式中,在判断所述指定分区中是否存在第四任务之后,所述方法还包括:步骤s159,在指定分区中不存在第四任务,或者第四任务对应用户的用户优先级大于或等于第一用户优先级,或者第四任务占用的计算资源不满足目标计算资源的情况下,将待执行任务添加至待调度队列,以等待调度计算资源。通过该方式,有利于合理调度指定分区的计算资源,降低人力成本,提高任务处理效率。
157.其中,第四任务对应用户的用户优先级大于或等于第一用户优先级,可以理解为,第四任务对应的各个用户中不存在小于第一用户优先级的用户;第四任务占用的计算资源不满足目标计算资源,可以理解为,第四任务占用的处理器数量小于待执行任务所需的处
理器数量。在该些情况下,将待执行任务添加至待调度队列,等待指定分区中有可用的空闲计算资源后,再执行该待执行任务。其中,待调度队列可以理解为缓存队列,用于暂存未被分配计算资源的待执行任务。
158.在一种可能的实现方式中,在步骤s158中,在停止执行第四任务时,可以通过打快照的方式,保存第四任务当前的执行状态,例如模型训练到第几轮、样本数据处理到第几个等,以便于有可用的空闲计算资源时,重新启动执行第四任务。
159.在本公开实施例中,能够实现根据用户优先级与任务优先级,合理地自动为待执行任务调度计算资源,降低人力成本,有利于提高任务处理效率。
160.如上所述,还可能存在第三任务占用的计算资源不满足目标计算资源的情况,图5示出根据本公开实施例的一种资源调度方法的示意图,如图5所示,在一种可能的实现方式中,在步骤s13中,根据第一用户优先级和/或第一任务优先级,为待执行任务调度指定分区的计算资源,还可以包括:
161.步骤s160,在第三任务占用的计算资源不满足目标计算资源的情况下,判断指定分区中是否存在第四任务,第四任务的任务优先级等于待执行任务的第一任务优先级;
162.步骤s162,在指定分区中存在第四任务,且第四任务对应用户的用户优先级小于第一用户优先级的情况下,判断第三任务与第四任务共同占用的计算资源是否满足目标计算资源;
163.步骤s163,在第三任务与第四任务共同占用的计算资源满足目标计算资源的情况下,停止执行第三任务与第四任务,并释放第三任务与第四任务分别占用的计算资源,以利用释放的计算资源执行待执行任务。
164.如图5所示,在一种可能的实现方式,在步骤s160判断判断指定分区中是否存在第四任务之后,还可以执行步骤s161,判断第四任务对应用户的用户优先级是否小于第一用户优先级。
165.在步骤s162中,第四任务对应用户的用户优先级小于第一用户优先级,可以理解为,提交第四任务对应的各个用户中存在用户优先级小于第一用户优先级的用户。判断第三任务与第四任务共同占用的计算资源是否满足目标计算资源,可以理解为,第三任务占用的处理器数量与第四任务占用的处理器数量之间的和,是否大于或等于待执行任务所需的处理器数量。
166.应理解的是,第四任务可以是多个,也即,指定分区中可以正在执行多个第四任务。在一种可能的实现方式中,在步骤s163中,停止执行第三任务以及第四任务,并释放第三任务与第四任务分别占用的计算资源,可以包括:按照各个第四任务的运行时长从短到长的顺序,从多个第四任务中选取至少一个第四任务,至选取的至少一个第四任务与第三任务共同占用的计算资源满足目标计算资源;停止执行选取的该至少一个第四任务以及第三任务,并释放选取的该至少一个第四任务以及第三任务共同占用的计算资源,以利用释放的计算资源执行待执行任务。
167.其中,各个第四任务的运行时长表征各个第四任务从启动时刻至当前时刻之间的时长,启动时刻可以理解为第四任务开始运行的时刻,当前时刻可以理解为选取第四任务的时刻。通过该方式,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
168.如上所述,指定分区中还可能存在空闲计算资源,但该空闲计算资源不满足目标计算资源,例如,指定分区y中空闲有1台cpu,待执行任务需要4台cpu(即目标用户为该待执行任务共申请4台cpu)。那么第三任务与第四任务共同占用的计算资源满足目标计算资源,可以理解为,第三任务占用的计算资源、至少一个第四任务占用的计算资源以及空闲计算资源三者共同满足目标计算资源。
169.如图5所示,在一种可能的实现方式中,在判断第三任务与第四任务共同占用的计算资源是否满足目标计算资源之后,所述方法还包括:在第三任务与第四任务共同占用的计算资源不满足目标计算资源的情况下,执行步骤s159将待执行任务添加至待调度队列,以等待调度计算资源。通过该方式,有利于合理调度指定分区的计算资源,降低人力成本,提高任务处理效率。
170.在一种可能的实现方式中,在步骤s163中,在停止执行第三任务与第四任务时,可以通过打快照的方式,保存第三任务与第四任务当前的执行状态,例如模型训练到第几轮、样本数据处理到第几个等,以便于有可用的空闲计算资源时,重新启动执行第三任务与第四任务。
171.在本公开实施例中,能够实现根据用户优先级与任务优先级,合理地自动为待执行任务调度计算资源,降低人力成本,有利于提高任务处理效率。
172.如上所述,指定分区中可以正在执行多个第四任务,在一种可能的实现方式中,在步骤s163中,停止执行第三任务与第四任务,并释放第三任务与第四任务分别占用的计算资源,包括:
173.根据各个第四任务的运行时长以及第二剩余目标计算资源,从多个第四任务中选取待停止执行的至少一个第四任务,其中,各个第四任务的运行时长表征各个第四任务从启动时刻至当前时刻之间的时长,第二剩余目标计算资源是目标计算资源与第三任务占用的计算资源之间的差值;
174.停止执行第三任务以及选取的至少一个第四任务,并释放第三任务占用的计算资源与选取的至少一个第四任务占用的计算资源,以利用释放的计算资源执行待执行任务。
175.其中,第四任务的启动时刻可以理解为第四任务开始运行的时刻,当前时刻可以理解为选取第四任务的时刻。根据各个第四任务的运行时长以及第二剩余目标计算资源,从多个第四任务中选取待停止执行的至少一个第四任务,可以包括:按照运行时长从短到长的顺序,从多个第四任务中选取至少一个第四任务,至选取的至少一个第四任务所占用的计算资源满足第二剩余计算资源。
176.举例来说,假设有第四任务f1占用1台cpu、第四任务f2占用1台cpu、第四任务f3占用1台cpu,f1运行了3小时,f2运行了6小时,f3运行了2小时,第三任务c1占用2台cpu,待执行任务需要4台cpu,第二剩余目标计算资源可以是2台cpu,则可以选取f1和f3并停止执行f1、f3和c1。
177.在本公开实施例中,能够基于运行时长与目标计算资源,从多个可停止的第四任务中选取待停止的至少一个第四任务,有利于实现合理的资源调度,以及有利于保证指定分区完成所需执行任务的生产效能。
178.图6示出根据本公开实施例的一种基于用户优先级的资源调度系统的示意图,如图6所示,本公开实施例的基于用户优先级的资源调度系统可以用于调度集群的各个集群
分区(也即分区)中的计算资源。
179.其中,自动调整资源分配,也即调度各个分区中的计算资源;用户请求资源分配,也即用户向集群分区中申请计算资源,以执行提交的待执行任务;读取优先级配置,也即读取优先级配置文件中的用户优先级配置信息。
180.如上所述,可以将slurm调度系统与本公开实施例的资源调度方法共同应用于集群的资源调度管理,本公开实施例的基于用户优先级的资源调度系统可以包括slurm调度系统与上述本公开实施例中的单根据用户优先级调度计算资源的资源调度方法。
181.在一种可能的实现方式中,在启动基于用户优先级的资源调度系统时,先会获取用户优先级配置信息,用户优先级配置信息为预先配置的各个用户在各个分区中的用户优先级,用户优先级配置信息可以存储在一个json格式的优先级配置文件中,应理解的是,优先级配置文件包含了基于用户优先级进行资源调度的规则。
182.其中,用户优先级配置原理可以简述为:根据任意时间周期内实际项目的项目信息,对项目组内各个项目成员进行用户优先级配置,用户优先级=项目规模/项目等级(可理解为项目的优先级)*紧急程度。例如:当前周期内(如当前一个月内/当前一周内)项目a、b、c共用分区x,项目a在本月内有待交付任务,因此分区管理员可为项目a对应的项目中的各个项目成员配置最高的用户优先级。
183.在一种可能的实现方式中,各分区的用户优先级可以由该分区的管理员进行配置,通过web前端填写用户名和各用户对应的用户优先级,进而形成优先级配置文件应理解是,本公开实施例不限制任务优先级的级数与配置方式,未配置任务优先级的任务默认为最低优先级的任务。
184.例如,设置用户优先级为p0》p1》p2》p3》p4》
…
,当用户优先级为p0的用户向某分区提交待执行任务并申请计算资源,但该分区的空闲计算资源不够时,则会先查询并终止无用户优先级的任务,然后依次按照从低到高到的顺序,终止p4用户的任务、p3用户的任务等,直至释放的计算资源可以满足待执行任务所需的计算资源或者分区的计算资源分配完为止,以此类推。
185.基于用户优先级的资源调度系统的用户优先级资源调度原理可以简述为:在启动用户优先级资源调度系统的情况下,当某用户向某个分区提交任务时,如果当前分区的所有计算资源被其他用户的任务占满,基于用户优先级的资源调度系统会遍历当前正在使用该分区的所有用户,并获取每位用户的用户优先级信息,并与当前提交任务的用户的用户优先级进行比较,如果当前分区中存在用户优先级比提交任务用户的用户优先级低的用户,则终止该更低优先级的用户的任务,以释放计算资源。
186.举例来说,存在分区u,该分区u有8个cpu,用户a目前存在紧急项目任务需要使用4个cpu,用户b也存在紧急项目任务需要时候用2个cpu,而当前有多个用户a到z的26个用户都拥有该分区的使用权,若不采用本公开实施例的基于用户优先级的资源调度系统,该分区u的8个cpu被其它用户先用占用满的情况下,用户a和b便需要等待分区u的管理员进行人工协调,或者联系当前在占用8个cpu的其它用户终止任务,这样的资源调度管理成本很高。
187.若采用本公开实施例的基于用户优先级的资源调度系统,管理员可以直接为用户a和b用户配置最高的用户优先级,当用户a和b申请计算资源时,将通过本公开实施例的基于用户优先级的资源调度系统自动终止分区u中其它用户的任务,来为用户a和b提交的任
务释放计算资源,保证用户a和b的优先使用分区u的计算资源。
188.可理解的是,用户可以使用slurm调度系统向集群申请计算资源,也即可以直接使用slurm命令申请集群的各个分区中的计算资源。
189.相关技术中slurm调度系统,通常是按照先申请先分配的原则对请求分配计算资源的任务进行资源分配,当先申请的用户将分区的总计算资源占用完之后,后申请的用户所申请的任务都将进入排队等候状态。那么如果有高用户优先级的用户提交任务时,需要分区管理员手动清除掉分区的一些任务,以给高用户优先级的用户所提交的任务提供计算资源,当这种情况频繁发生的时候,人力维护的成本就会急速上升。而本公开实施例的基于任务优先级的资源调度系统会帮助分区管理员自动根据用户或者任务的优先级进行计算资源的协调。
190.根据本公开实施例的基于用户优先级的资源调度系统,先读取用户优先级配置文件,基于对用户预先设置的用户优先级进行资源调度,当高用户优先级的用户在申请资源分配时,如果分区的总计算资源已经被占用完,将按照用户优先级从低到高的顺序,终止当前占用计算资源的用户的任务,为高用户优先级的用户所提交的任务释放计算资源。
191.图7示出根据本公开实施例的一种基于任务优先级的资源调度系统的示意图,如图7所示,本公开实施例的基于任务优先级的资源调度系统可以用于调度集群的各个分区中的计算资源。
192.其中,自动调整资源分配,也即调度各个分区中的计算资源;任务请求资源分配,也任务请求集群分区中分配计算资源;读取优先级配置,也即读取优先级配置文件中的任务优先级配置信息。
193.如上所述,可以将slurm调度系统与本公开实施例的资源调度方法共同应用于集群的资源调度管理,本公开实施例的基于任务优先级的资源调度系统可以包括slurm调度系统与上述本公开实施例中的单根据任务优先级调度计算资源的资源调度方法。
194.在一种可能的实现方式中,在启动基于任务优先级的资源调度系统时,先会获取任务优先级配置信息,任务优先级配置信息为预先配置的各个任务的任务优先级,任务优先级配置信息可以存储在一个json格式的优先级配置文件中,应理解的是,优先级配置文件包含了基于任务优先级进行资源调度的规则。
195.应理解的是,该优先级配置文件中可以同时存储上述用户优先级配置信息与任务优先级配置信息,当然,任务优先级配置信息与用户优先级配置信息可以分别存储于两个优先级配置文件中,对此本公开实施例不作限制。
196.其中,任务优先级配置原理可以简述为:根据任意时间周期内实际项目的项目信息,对项目中相关的任务进行任务优先级配置,任务优先级=项目规模/项目等级(可理解为项目的优先级)*紧急程度。例如:当前周期内(如当前一个月内/当前一周内)项目a、b、c共用分区x,项目a在本月内有待交付任务,因此分区管理员可为项目a中的待交付任务配置最高优先级,项目a对应的待交付任务可以都以a_jobname命名,在通过本公开实施例的资源调度方法进行资源调度时,可以认为以a_jobname命名的任务为最高任务优先级的任务,并优先为以a_jobname命名的任务调度计算资源。
197.在一种可能的实现方式中,各分区中任务的任务优先级可以由该分区的管理员预先配置好任务优先级关键词与任务优先级的实际对应关系,通过网页前端填写每个任务优
先级的任务数,进而形成优先级配置文件。应理解是,本公开实施例不限制任务优先级的级数与配置方式,未配置任务优先级的任务默认为最低优先级的任务。
198.例如,设置任务优先级为l0》l1》l2》l3》l4》
…
,当任务优先级为l0的任务启动时,若该分区的空闲计算资源不够,则会先查询并终止无任务优先级的任务,然后依次按照从低到高到的顺,终止l4任务、l3任务、l3任务等,直至释放的计算资源可以满足l0任务所需的计算资源或者分区的计算资源分配完为止,以此类推。
199.基于任务优先级的资源调度系统的任务优先级资源调度原理可以简述为:在启动任务优先级资源调度系统的情况下,当任一用户向某个分区提交具有特定前缀(包含任务优先级信息)的任务名的任务时,如果当前分区的计算资源被其他任务占满,基于任务优先级的资源调度系统会遍历当前分区中正在运行的所有任务,并根据任务前缀判断是否存在比提交的任务优先级更低的任务,如果存在比提交的任务优先级更低的任务,则会立即终止该任务,以释放资源。
200.举例来说,可以为拥有10台gpu的分区q配置3层优先级,且优先级顺序为p0》p1》p2,可以指定3层优先级p0~p2的任务数分别为p0=1,p1=3,p2=5,那么在该分区p,每个用户都可以启动1个p0任务,3个p1任务,5个p2任务,当该分区的用户在启动任务时可以将最高任务优先级的任务jobname命名为p0_jobname,次优任务命名为p1_jobname,低优任务命名为p2_jobname,其他无指定优先级命名的任务默认为最低优先级。
201.若该分区q只有用户a启动1个l0任务l0_a,3个l2任务l1_aa1,l1_aa2,l 1_aa3,5个l2任务l2_aaa1,l2_aaa2,l2_aaa3,l2_aaa4,l2_aaa5,假设每个任务均需占用1台gpu,则此时分区q的10台gpu有9台分配给了用户a的所有任务,若此时用户b启动1个l0的任务l0_b,则分区q剩1台gpu将分配给l0_b使用,此时分区q的10台机器被全部分配完;若用户b此时再启动3个l1任务l1_bb1,l1_bb2,l1_bb3,则按照任务优先级资源调度原理,任务优先级资源调度系统将会终止掉a用户的3个l2任务为用户b的3个l1任务释放计算资源;若用户c启动一个l0任务l0_c时,任务优先级资源调度系统将会终止掉a用户剩下的2个l2任务中任一个l2任务,以为l0_c任务释放资源。
202.可理解的是,用户可以使用slurm调度系统向集群申请计算资源,也即可以直接使用slurm命令申请集群的各个分区中的计算资源。
203.相关技术中slurm调度系统,通常是按照先申请先分配的原则对请求分配计算资源的任务进行资源分配,当先申请的任务将分区的总资源占用完之后,其余后续申请的任务都将进入排队等候状态。那么当高优先级任务需要执行时,需要分区管理员手动清除掉分区的一些任务,以给高优任务提供计算资源,当这种情况频繁发生的时候,人力维护的成本就会急速上升。而本公开实施例的基于任务优先级的资源调度系统会帮助分区管理员自动根据用户或者任务的优先级进行计算资源的协调。
204.根据本公开实施例的基于任务优先级的资源调度系统,先读取任务优先级配置文件,基于对预先设置的任务优先级进行资源调度,当高优先级的任务在申请资源分配时,如果分区的总计算资源已经被占用完,将按照任务优先级从低到高的顺序,终止当前占用计算资源的任务,为高优先级的任务释放计算资源。
205.根据本公开的实施例,能够大幅降低了集群分区中计算资源的管理成本,提高了分区计算资源的利用率。
206.可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
207.此外,本公开还提供了资源调度装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种资源调度方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
208.图8示出根据本公开实施例的资源调度装置的框图,如图8所示,所述装置包括:
209.检测模块101,用于响应于目标用户向集群的指定分区提交待执行任务,检测所述指定分区中是否存在满足所述待执行任务所需的目标计算资源的空闲计算资源;
210.获取模块102,用于在所述指定分区中不存在满足所述目标计算资源的空闲计算资源的情况下,获取所述目标用户在所述指定分区的第一用户优先级,和/或获取所述待执行任务的第一任务优先级;
211.调度模块103,用于根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源。
212.在一种可能的实现方式中,所述目标用户的第一用户优先级是根据指定项目的第一项目信息确定的,所述第一项目信息包括项目规模、项目等级以及项目紧急程度中的至少一种;所述待执行任务的第一任务优先级是根据所述指定项目的第二项目信息确定的,所述第二项目信息包括所述项目规模、所述项目等级、所述项目紧急程度以及项目中任务的重要程度中的至少一种;其中,所述获取模块102,包括:用户优先级确定子模块,用于根据所述第一项目信息,确定所述目标用户在所述指定分区的第一用户优先级,其中,所述第一用户优先级与所述第一项目信息正相关;和/或,任务优先级确定子模块,用于根据所述第二项目信息,确定所述第一用户提交的待执行任务的第一任务优先级,其中,所述第一任务优先级与所述第二项目信息正相关。
213.在一种可能的实现方式中,所述调度模块103,包括:第一判断子模块,用于根据所述第一用户优先级,判断所述指定分区中是否存在第一用户,所述第一用户的用户优先级小于所述目标用户的第一用户优先级;第一停止子模块,用于在所述指定分区中存在所述第一用户,且所述第一用户对应的第一任务在所述指定分区占用的计算资源满足所述目标计算资源的情况下,停止执行所述第一任务并释放所述第一任务占用的计算资源,以利用释放的计算资源执行所述待执行任务;或,第一添加子模块,用于在所述指定分区中不存在所述第一用户,或所述第一任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。
214.在一种可能的实现方式中,所述指定分区中正在执行多个第一任务,所述停止执行所述第一任务并释放所述第一任务占用的计算资源,包括:根据各个第一任务的运行时长以及所述目标计算资源,从所述多个第一任务中选取待停止执行的至少一个第一任务,其中,所述各个第一任务的运行时长表征所述各个第一任务从启动时刻至当前时刻之间的时长;停止执行选取的所述至少一个第一任务,并释放选取的所述至少一个第一任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。
215.在一种可能的实现方式中,所述调度模块103,还包括:第二判断子模块,用于在所
述指定分区中不存在所述第一用户的情况下,判断所述指定分区中是否存在第二用户,所述第二用户的用户优先级等于所述目标用户的第一用户优先级;第三判断子模块,用于在所述指定分区中存在所述第二用户,且所述第二用户对应的第二任务的第二任务优先级小于所述第一任务优先级的情况下,判断所述第二任务在所述指定分区占用的计算资源是否满足所述目标计算资源;第二停止子模块,用于在所述第二任务占用的计算资源满足所述目标计算资源的情况下,停止执行所述第二任务并释放所述第二任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。
216.在一种可能的实现方式中,在判断所述指定分区中是否存在第二用户之后,所述调度模块103还包括:第二添加子模块,用于第二添在所述指定分区中不存在所述第二用户,或者所述第二任务优先级大于或等于所述第一任务优先级,或者所述第二任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。
217.在一种可能的实现方式中,所述调度模块103,还包括:第四判断子模块,用于在所述第一任务占用的计算资源不满足所述目标计算资源的情况下,判断所述指定分区中是否存在第二用户,所述第二用户的用户优先级等于所述目标用户的第一用户优先级;第五判断子模块,用于在所述指定分区中存在所述第二用户,且所述第二用户对应的第二任务的第二任务优先级小于所述第一任务优先级的情况下,判断所述第一任务与所述第二任务共同占用的计算资源是否满足所述目标计算资源;第三停止子模块,用于在所述第一任务与所述第二任务共同占用的计算资源满足所述目标计算资源的情况下,停止执行所述第一任务以及所述第二任务,并释放所述第一任务与所述第二任务分别占用的计算资源,以利用释放的计算资源执行所述待执行任务。
218.在一种可能的实现方式中,在判断所述第一任务与所述第二任务共同占用的计算资源是否满足所述目标计算资源之后,所述调度模块103还包括:第三添加子模块,用于在所述第一任务与所述第二任务共同占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。
219.在一种可能的实现方式中,所述指定分区中正在执行多个第二任务,所述停止执行所述第一任务以及所述第二任务,并释放所述第一任务与所述第二任务分别占用的计算资源,包括:根据各个第二任务的运行时长以及第一剩余目标计算资源,从所述多个第二任务中选取待停止执行的至少一个第二任务,其中,所述各个第二任务的运行时长表征所述各个第二任务从启动时刻至当前时刻之间的时长,所述第一剩余目标计算资源是所述目标计算资源与所述第一任务占用的计算资源之间的差值;停止执行所述第一任务以及选取的所述至少一个第二任务,并释放所述第一任务占用的计算资源以及释放选取的所述至少一个第二任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。
220.在一种可能的实现方式中,所述调度模块103,包括:第六判断子模块,用于根据所述第一任务优先级,判断所述指定分区中是否存在第三任务,所述第三任务的任务优先级小于所述待执行任务的第一任务优先级;第四停止子模块,用于在所述指定分区中存在所述第三任务,且所述第三任务占用的计算资源满足所述目标计算资源的情况下,停止执行所述第三任务并释放所述第三任务占用的计算资源,以利用释放的计算资源执行所述待执行任务;或,第四添加子模块,用于在所述指定分区中不存在所述第三任务,或所述第三任
务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。
221.在一种可能的实现方式中,所述调度模块103,还包括:第七判断子模块,用于在所述指定分区中不存在所述第三任务的情况下,判断所述指定分区中是否存在第四任务,所述第四任务的任务优先级等于所述待执行任务的第一任务优先级;第八判断子模块,用于在所述指定分区中存在所述第四任务,且所述第四任务对应用户的用户优先级小于所述第一用户优先级的情况下,判断所述第四任务在所述指定分区占用的计算资源是否满足所述目标计算资源;第五停止子模块,用于在所述第四任务占用的计算资源满足所述目标计算资源的情况下,停止执行所述第四任务并释放所述第四任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。
222.在一种可能的实现方式中,在判断所述指定分区中是否存在第四任务之后,所述调度模块103还包括:第五添加子模块,用于在所述指定分区中不存在所述第四任务,或者第四任务对应用户的用户优先级大于或等于所述第一用户优先级,或者所述第四任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。
223.在一种可能的实现方式中,所述调度模块103,还包括:第九判断子模块,用于在所述第三任务占用的计算资源不满足所述目标计算资源的情况下,判断所述指定分区中是否存在第四任务,所述第四任务的任务优先级等于所述待执行任务的第一任务优先级;第十判断子模块,用于在所述指定分区中存在所述第四任务,且所述第四任务对应用户的用户优先级小于所述第一用户优先级的情况下,判断所述第三任务与所述第四任务共同占用的计算资源是否满足所述目标计算资源;第六停止子模块,用于在所述第三任务与所述第四任务共同占用的计算资源满足所述目标计算资源的情况下,停止执行所述第三任务与所述第四任务,并释放所述第三任务与所述第四任务分别占用的计算资源,以利用释放的计算资源执行所述待执行任务。
224.在一种可能的实现方式中,在判断所述第三任务与所述第四任务共同占用的计算资源是否满足所述目标计算资源之后,所述调度模块103还包括:第六添加子模块,用于在所述第三任务与所述第四任务共同占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。
225.在一种可能的实现方式中,所述指定分区中正在执行多个第四任务,所述停止执行所述第三任务与所述第四任务,并释放所述第三任务与所述第四任务分别占用的计算资源,包括:根据各个第四任务的运行时长以及第二剩余目标计算资源,从所述多个第四任务中选取待停止执行的至少一个第四任务,其中,所述各个第四任务的运行时长表征所述各个第四任务从启动时刻至当前时刻之间的时长,所述第二剩余目标计算资源是所述目标计算资源与所述第三任务占用的计算资源之间的差值;停止执行所述第三任务以及选取的所述至少一个第四任务,并释放所述第三任务占用的计算资源与选取的所述至少一个第四任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。
226.在本公开实施例中,能够在集群的指定分区中不存在满足待执行任务所需的目标计算资源的空闲计算资源的情况下,根据目标用户在指定分区中的第一用户优先级和/或待执行任务的第一任务优先级,实现合理化地自动为待执行任务调度该指定分区的计算资
源,降低人力成本,有利于提高任务处理效率。
227.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
228.本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
229.本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
230.本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
231.电子设备可以被提供为终端、服务器或其它形态的设备。
232.图9示出根据本公开实施例的一种电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端。
233.参照图9,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/o)接口812,传感器组件814,以及通信组件816。
234.处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
235.存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
236.电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
237.多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置
摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
238.音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
239.i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
240.传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如互补金属氧化物半导体(cmos)或电荷耦合装置(ccd)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
241.通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如无线网络(wi-fi)、第二代移动通信技术(2g)、第三代移动通信技术(3g)、第四代移动通信技术(4g)、通用移动通信技术的长期演进(lte)、第四代移动通信技术(5g)或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
242.在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
243.在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由电子设备800的处理器820执行以完成上述方法。
244.图10示出根据本公开实施例的另一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图10,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
245.电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服
务器操作系统(windows server
tm
),苹果公司推出的基于图形用户界面操作系统(mac os x
tm
),多用户多进程的计算机操作系统(unix
tm
),自由和开放原代码的类unix操作系统(linux
tm
),开放原代码的类unix操作系统(freebsd
tm
)或类似。
246.在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
247.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
248.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的队列)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
249.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
250.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
251.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
252.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
253.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
254.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
255.该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
256.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
技术特征:
1.一种资源调度方法,其特征在于,包括:响应于目标用户向集群的指定分区提交待执行任务,检测所述指定分区中是否存在满足所述待执行任务所需的目标计算资源的空闲计算资源;在所述指定分区中不存在满足所述目标计算资源的空闲计算资源的情况下,获取所述目标用户在所述指定分区的第一用户优先级,和/或获取所述待执行任务的第一任务优先级;根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源。2.根据权利要求1所述的方法,其特征在于,所述目标用户的第一用户优先级是根据指定项目的第一项目信息确定的,所述第一项目信息包括项目规模、项目等级以及项目紧急程度中的至少一种;所述待执行任务的第一任务优先级是根据所述指定项目的第二项目信息确定的,所述第二项目信息包括所述项目规模、所述项目等级、所述项目紧急程度以及项目中任务的重要程度中的至少一种;其中,所述获取所述目标用户在所述指定分区的第一用户优先级,和/或获取所述待执行任务的第一任务优先级,包括:根据所述第一项目信息,确定所述目标用户在所述指定分区的第一用户优先级,其中,所述第一用户优先级与所述第一项目信息正相关;和/或,根据所述第二项目信息,确定所述第一用户提交的待执行任务的第一任务优先级,其中,所述第一任务优先级与所述第二项目信息正相关。3.根据权利要求1所述的方法,其特征在于,所述根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源,包括:根据所述第一用户优先级,判断所述指定分区中是否存在第一用户,所述第一用户的用户优先级小于所述目标用户的第一用户优先级;在所述指定分区中存在所述第一用户,且所述第一用户对应的第一任务在所述指定分区占用的计算资源满足所述目标计算资源的情况下,停止执行所述第一任务并释放所述第一任务占用的计算资源,以利用释放的计算资源执行所述待执行任务;或,在所述指定分区中不存在所述第一用户,或所述第一任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。4.根据权利要求3所述的方法,其特征在于,所述指定分区中正在执行多个第一任务,所述停止执行所述第一任务并释放所述第一任务占用的计算资源,包括:根据各个第一任务的运行时长以及所述目标计算资源,从所述多个第一任务中选取待停止执行的至少一个第一任务,其中,所述各个第一任务的运行时长表征所述各个第一任务从启动时刻至当前时刻之间的时长;停止执行选取的所述至少一个第一任务,并释放选取的所述至少一个第一任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。5.根据权利要求3所述的方法,其特征在于,所述根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源,还包括:在所述指定分区中不存在所述第一用户的情况下,判断所述指定分区中是否存在第二用户,所述第二用户的用户优先级等于所述目标用户的第一用户优先级;
在所述指定分区中存在所述第二用户,且所述第二用户对应的第二任务的第二任务优先级小于所述第一任务优先级的情况下,判断所述第二任务在所述指定分区占用的计算资源是否满足所述目标计算资源;在所述第二任务占用的计算资源满足所述目标计算资源的情况下,停止执行所述第二任务并释放所述第二任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。6.根据权利要求5所述的方法,其特征在于,在判断所述指定分区中是否存在第二用户之后,所述方法还包括:在所述指定分区中不存在所述第二用户,或者所述第二任务优先级大于或等于所述第一任务优先级,或者所述第二任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。7.根据权利要求要求3-6任一项所述的方法,其特征在于,所述根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源,还包括:在所述第一任务占用的计算资源不满足所述目标计算资源的情况下,判断所述指定分区中是否存在第二用户,所述第二用户的用户优先级等于所述目标用户的第一用户优先级;在所述指定分区中存在所述第二用户,且所述第二用户对应的第二任务的第二任务优先级小于所述第一任务优先级的情况下,判断所述第一任务与所述第二任务共同占用的计算资源是否满足所述目标计算资源;在所述第一任务与所述第二任务共同占用的计算资源满足所述目标计算资源的情况下,停止执行所述第一任务以及所述第二任务,并释放所述第一任务与所述第二任务分别占用的计算资源,以利用释放的计算资源执行所述待执行任务。8.根据权利要求7所述的方法,其特征在于,在判断所述第一任务与所述第二任务共同占用的计算资源是否满足所述目标计算资源之后,所述方法还包括:在所述第一任务与所述第二任务共同占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。9.根据权利要求7所述的方法,其特征在于,所述指定分区中正在执行多个第二任务,所述停止执行所述第一任务以及所述第二任务,并释放所述第一任务与所述第二任务分别占用的计算资源,包括:根据各个第二任务的运行时长以及第一剩余目标计算资源,从所述多个第二任务中选取待停止执行的至少一个第二任务,其中,所述各个第二任务的运行时长表征所述各个第二任务从启动时刻至当前时刻之间的时长,所述第一剩余目标计算资源是所述目标计算资源与所述第一任务占用的计算资源之间的差值;停止执行所述第一任务以及选取的所述至少一个第二任务,并释放所述第一任务占用的计算资源以及释放选取的所述至少一个第二任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。10.根据权利要求1所述的方法,其特征在于,所述根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源,包括:根据所述第一任务优先级,判断所述指定分区中是否存在第三任务,所述第三任务的任务优先级小于所述待执行任务的第一任务优先级;
在所述指定分区中存在所述第三任务,且所述第三任务占用的计算资源满足所述目标计算资源的情况下,停止执行所述第三任务并释放所述第三任务占用的计算资源,以利用释放的计算资源执行所述待执行任务;或,在所述指定分区中不存在所述第三任务,或所述第三任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。11.根据权利要求10所述的方法,其特征在于,所述根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源,还包括:在所述指定分区中不存在所述第三任务的情况下,判断所述指定分区中是否存在第四任务,所述第四任务的任务优先级等于所述待执行任务的第一任务优先级;在所述指定分区中存在所述第四任务,且所述第四任务对应用户的用户优先级小于所述第一用户优先级的情况下,判断所述第四任务在所述指定分区占用的计算资源是否满足所述目标计算资源;在所述第四任务占用的计算资源满足所述目标计算资源的情况下,停止执行所述第四任务并释放所述第四任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。12.根据权利要求11所述的方法,其特征在于,在判断所述指定分区中是否存在第四任务之后,所述方法还包括:在所述指定分区中不存在所述第四任务,或者第四任务对应用户的用户优先级大于或等于所述第一用户优先级,或者所述第四任务占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。13.根据权利要求10-12任一项所述的方法,其特征在于,所述根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源,还包括:在所述第三任务占用的计算资源不满足所述目标计算资源的情况下,判断所述指定分区中是否存在第四任务,所述第四任务的任务优先级等于所述待执行任务的第一任务优先级;在所述指定分区中存在所述第四任务,且所述第四任务对应用户的用户优先级小于所述第一用户优先级的情况下,判断所述第三任务与所述第四任务共同占用的计算资源是否满足所述目标计算资源;在所述第三任务与所述第四任务共同占用的计算资源满足所述目标计算资源的情况下,停止执行所述第三任务与所述第四任务,并释放所述第三任务与所述第四任务分别占用的计算资源,以利用释放的计算资源执行所述待执行任务。14.根据权利要求13所述的方法,其特征在于,在判断所述第三任务与所述第四任务共同占用的计算资源是否满足所述目标计算资源之后,所述方法还包括:在所述第三任务与所述第四任务共同占用的计算资源不满足所述目标计算资源的情况下,将所述待执行任务添加至待调度队列,以等待调度计算资源。15.根据权利要求13所述的方法,其特征在于,所述指定分区中正在执行多个第四任务,所述停止执行所述第三任务与所述第四任务,并释放所述第三任务与所述第四任务分别占用的计算资源,包括:根据各个第四任务的运行时长以及第二剩余目标计算资源,从所述多个第四任务中选取待停止执行的至少一个第四任务,其中,所述各个第四任务的运行时长表征所述各个第
四任务从启动时刻至当前时刻之间的时长,所述第二剩余目标计算资源是所述目标计算资源与所述第三任务占用的计算资源之间的差值;停止执行所述第三任务以及选取的所述至少一个第四任务,并释放所述第三任务占用的计算资源与选取的所述至少一个第四任务占用的计算资源,以利用释放的计算资源执行所述待执行任务。16.一种资源调度装置,其特征在于,包括:检测模块,用于响应于目标用户向集群的指定分区提交待执行任务,检测所述指定分区中是否存在满足所述待执行任务所需的目标计算资源的空闲计算资源;获取模块,用于在所述指定分区中不存在满足所述目标计算资源的空闲计算资源的情况下,获取所述目标用户在所述指定分区的第一用户优先级,和/或获取所述待执行任务的第一任务优先级;调度模块,用于根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源。17.一种电子设备,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至15中任意一项所述的方法。18.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至15中任意一项所述的方法。
技术总结
本公开涉及一种资源调度方法及装置、电子设备和存储介质,所述方法包括:响应于目标用户向集群的指定分区提交待执行任务,检测所述指定分区中是否存在满足所述待执行任务所需的目标计算资源的空闲计算资源;在所述指定分区中不存在满足所述目标计算资源的空闲计算资源的情况下,获取所述目标用户在所述指定分区的第一用户优先级,和/或获取所述待执行任务的第一任务优先级;根据所述第一用户优先级和/或所述第一任务优先级,为所述待执行任务调度所述指定分区的计算资源。本公开实施例可实现合理化地自动为待执行任务调度该指定分区的计算资源。区的计算资源。区的计算资源。
技术研发人员:张馨月
受保护的技术使用者:上海商汤科技开发有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8