一种资源调度方法、装置及系统
文献发布时间:2024-04-18 19:52:40
本申请要求于2022年06月27日提交国家知识产权局、申请号202210741724.6、申请名称为“一种资源调度的方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种资源调度方法、装置及系统。
背景技术
在集群计算的场景中,用户可以向集群计算系统申请计算资源以运行该用户提交的作业,集群计算系统中的管理节点为该作业调度计算资源。
通常,集群计算系统的计算资源是有限的,管理节点会采用预留资源方式为作业分配资源。然而,作业并非处于持续运行状态,也即为作业预留的资源往往不是一直处于被使用状态,这就导致资源的利用率较低。
发明内容
本申请提供一种资源调度方法、装置及系统,能够有效提升资源利用率。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种资源调度方法,包括:集群计算系统的管理节点获取待调度资源的第一作业;并且在集群计算系统中筛选可借调资源的作业集合,该作业集合包括至少一个作业,该至少一个作业为已分配资源,且与第一作业匹配的可借调资源的作业;进而根据该作业集合的可借调资源确定第一作业的资源调度策略,该资源调度策略用于指示在资源可借阶段利用可借调资源执行第一作业的处理方式。
本申请中,对于待调度资源的第一作业,由于管理节点可以根据集群计算系统中与第一作业匹配的可借调资源的作业集合确定第一作业的资源调度策略,如此,能够灵活地将已分配资源的作业集合的可借调资源借调至第一作业,充分利用集群计算系统的资源,提升了集群计算系统的资源利用率。
在一种可能的实现方式中,上述在集群计算系统中筛选可借调资源的作业集合,包括:根据集群计算系统中的一个或多个作业的资源借调信息,从一个或多个作业中筛选与第一作业的作业类型匹配的第一作业集合,再从第一作业集合中筛选可借调资源满足第一作业的资源需求的第二作业集合。其中,资源借调信息用于指示将作业的可借调资源借调至其他作业时该可借调资源支持的作业类型,作业类型包括:断点续传型、终止型或连续型中的至少一种;资源需求包括资源类型的需求以及资源类型的配置需求,该资源类型包括计算资源、存储资源或网络资源中的至少一种。
在另一种可能的实现方式中,上述根据作业集合的可借调资源确定第一作业的资源调度策略,包括:根据第二作业集合的可借调资源确定第一作业的资源调度策略。
本申请中,根据作业类型以及资源需求筛选的作业集合(即上述的第二作业集合)与第一作业匹配,即该作业集合中的作业的资源具备借调至第一作业的条件,在此基础上,将该作业集合的可借调资源借调至第一作业,使得作业集合中的作业的资源得到充分利用。
在另一种可能的实现方式中,可借调资源的借调时长小于或等于资源可借阶段的时长,从而管理节点依据借调时长为第一作业调度资源。在借调时长到期之前,将可借调资源借调至第一作业;当借调时长到期时,不能再将其资源借调至第一作业。
在另一种可能的实现方式中,上述第二作业集合包括第二作业,当第一作业的作业类型为断点续传型时,上述根据第二作业集合的可借调资源确定第一作业的资源调度策略,包括:在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,暂停将第二作业的可借调资源借调至第一作业;当第二作业运行结束时,将可借调资源调度至第一作业,以继续运行第一作业,能够将第二作业的资源可借阶段将资源借调至第一作业,提升了为第二作业分配的资源的利用率,并且可借时长到期暂停第一作业,如此,不影响第二作业的运行。
在另一种可能的实现方式中,上述第二作业集合包括第二作业,当第一作业的作业类型为终止型时,上述根据第二作业集合的可借调资源确定第一作业的资源调度策略,包括:在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,终止将第二作业的可借调资源借调至第一作业,能够将第二作业的资源可借阶段将资源借调至第一作业,提升了为第二作业分配的资源的利用率,并且可借时长到期终止第一作业,如此,不影响第二作业的运行。
在另一种可能的实现方式中,上述第二作业集合包括第二作业,当第一作业的作业类型为连续型时,上述根据第二作业集合的可借调资源确定第一作业的资源调度策略,包括:在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,继续将第二作业的资源借调至第一作业,能够将第二作业的资源可借阶段将资源借调至第一作业,提升了为第二作业分配的资源的利用率。
第二方面,本申请提供一种管理节点,包括:获取模块、第一确定模块以及第二确定模块,其中,获取模块用于获取待调度资源的第一作业;第一确定模块用于在集群计算系统中筛选可借调资源的作业集合,该作业集合包括至少一个作业,该至少一个作业为已分配资源,且与第一作业匹配的可借调资源的作业;第二确定模块用于根据作业集合的可借调资源确定第一作业的资源调度策略,该资源调度策略用于指示在资源可借阶段利用可借调资源执行第一作业的处理方式。
一种可能的实现方式中,上述第一确定模块具体用于根据集群计算系统中的一个或多个作业的资源借调信息,从一个或多个作业中筛选与第一作业的作业类型匹配的第一作业集合,并且从第一作业集合中筛选可借调资源满足第一作业的资源需求的第二作业集合。其中,资源借调信息用于指示将作业的可借调资源借调至其他作业时该可借调资源支持的作业类型,作业类型包括:断点续传型、终止型或连续型中的至少一种;资源需求包括资源类型的需求以及资源类型的配置需求,该资源类型包括计算资源、存储资源或网络资源中的至少一种。
在另一种可能的实现方式中,上述第二确定模块具体用于根据第二作业集合的可借调资源确定第一作业的资源调度策略。
在另一种可能的实现方式中,可借调资源的借调时长小于或等于资源可借阶段的时长。
在另一种可能的实现方式中,上述第二作业集合包括第二作业,当第一作业的作业类型为断点续传型时,第二确定模块具体用于在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,暂停将第二作业的可借调资源借调至第一作业;当第二作业运行结束时,将可借调资源调度至第一作业,以继续运行第一作业。
在另一种可能的实现方式中,上述第二作业集合包括第二作业,当第一作业的作业类型为终止型时,第二确定模块具体用于在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,终止将第二作业的可借调资源借调至第一作业。
在另一种可能的实现方式中,上述第二作业集合包括第二作业,当第一作业的作业类型为连续型时,第二确定模块具体用于在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,继续将第二作业的资源借调至第一作业。
第三方面,本申请提供一种管理节点,包括存储器和与存储器连接的至少一个处理器,存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,当计算机指令被至少一个处理器执行时,使得管理节点执行第一方面及其可能的实现方式中任意之一所述的方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,该计算机指令在计算机上述运行时,执行第一方面及其可能的实现方式中任意之一所述的方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包含计算机指令,当计算机指令在计算机上运行时,执行第一方面及其可能的实现方式中任意之一所述的方法。
第六方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行第一方面及其可能的实现方式中任意之一所述的方法。
第七方面,本申请提供一种集群计算系统,包括管理节点和至少一个计算节点,该管理节点第一方面及其可能的实现方式中任意之一所述的方法。
应当理解的是,本申请的第二方面至第七方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请提供的一种集群计算系统的架构示意图;
图2为本申请提供的一种作业的阶段划分示意图;
图3为本申请提供的一种管理节点的硬件结构示意图;
图4为本申请提供的一种资源调度方法示意图之一;
图5为本申请提供的一种资源调度策略的示意图之一;
图6为本申请提供的一种资源调度策略示意图之二;
图7为本申请提供的一种资源调度策略示意图之三;
图8为本申请提供的一种资源调度策略示意图之四;
图9为本申请提供的一种管理节点的结构示意图之一;
图10为本申请提供的一种管理节点的结构示意图之二。
具体实施方式
为了解决现有技术中资源利用率低的问题,本申请提供一种资源调度方法,在集群系统中筛选可调借资源的作业集合,进而确定第一作业的资源调度策略。由此利用作业的可借调资源执行其他作业的处理过程,实现充分利用资源的目的。
下面结合附图详细介绍本申请所提供的资源调度方法。
本申请提供的方法应用于集群计算系统,用户可以向集群计算系统提交作业,集群计算系统中的管理节点为该用户的作业分配资源,并基于分配的资源运行作业。集群计算系统的应用场景可以包括高性能计算(high performance computing,HPC)、人工智能(artificial intelligence,AI)以及大数据融合等。
图1为一种集群计算系统的架构示意图,参考图1,集群计算系统包括管理节点101和一个或多个计算节点102。其中,管理节点101主要负责集群计算系统的管理工作(包括配置管理、资源管理等),该管理节点101中包括调度器,调度器用于为用户提交的作业分配计算资源,并将作业调度(或派发)至对应的计算节点102,从而使得计算节点102基于分配的资源执行作业的处理过程。上述调度器为作业分配资源并调度作业至对应的计算节点的过程即为资源调度。
作业的资源可借阶段,指作业的计算资源允许借出的阶段,即在作业的资源可借阶段,允许将该作业的资源(该作业的资源指为该作业分配的资源)借调给其他作业。
作业的资源不可借阶段,指作业的计算资源不允许借出的阶段,即在作业的资源不可借阶段,不允许将该作业的资源借调给其他作业。
作业的资源可借阶段和资源不可借阶段可以依据计算节点运行该作业过程中对资源的利用率和/或作业运行的时间段来定义,当然资源可借阶段也可以依据其他因素来定义,本申请实施例不做限定。
在一种实现方式中,在计算节点上运行用户提交的作业的过程中,计算节点的资源利用率无法达到充分利用的状态,有些阶段计算节点的资源利用率较高,而部分阶段计算节点的资源利用率较低。因此,可以将资源利用率低于预设利用率的作业运行阶段作为资源可借阶段,将资源利用率高于预设利用率的阶段作为资源不可借阶段。
在作业运行过程中,有些作业除了存在真实的计算阶段(以下简称为run阶段)之外,还有作业准备阶段(以下简称为pre-job阶段)和/或作业后处理阶段(以下简称为post-job阶段)。其中,pre-job阶段发生在run阶段之前,post-job阶段发生在run阶段之后,在pre-job阶段执行作业的环境部署与检查,或作业数据传输(也可以称为大文件传输)等,在post-job阶段执行环境清理或作业数据删除等。
示例性的,参考图2,作业1包括pre-job阶段、run阶段以及post-job阶段,其中,在pre-job阶段进行环境部署与检查,在post-job阶段进行环境清理;作业2也包括pre-job阶段、run阶段以及post-job阶段,其中,pre-job阶段进行作业数据传输,在post-job阶段进行作业数据删除。通常,pre-job阶段和post-job阶段通常只消耗少量的资源,即资源利用率较低,因此,本申请实施例中,可以将作业的pre-job阶段或post-job阶段作为资源可借阶段,例如图2中的作业1包括两个资源可借阶段,作业2也包括两个资源可借阶段。
另外,在作业的run阶段中,也可能存在一个或多个资源利用率较低的阶段,也可以将作业的run阶段中资源利用率较低的阶段作为资源可借阶段。除此之外,run阶段中的其他阶段即是资源不可借阶段。
在另一种实现方式中,作业运行过程中,一个或多个时间段属于作业的空闲时间段,因此,可以将作业的空闲阶段作为资源可借阶段,将作业的忙碌阶段作为资源不可借阶段。
本申请实施例中,执行资源调度方法的装置为集群计算系统的管理节点,管理节点可以为台式机、便携式电脑、掌上电脑(personal digital assistant,PDA)等设备。请参考图3,对本申请提供的管理节点的硬件结构进行介绍。图3中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
如图3所示,管理节点可以包括:处理器301、存储器302、通信接口303。其中,处理器301、存储器302以及通信接口303之间可以通过总线304连接,或采用其他方式相互连接。
其中,处理器301是通信设备的控制中心,处理器301可以是通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等,其中,通用处理器可以是微处理器或者是任何常规的处理器等。例如,处理器301可以包括应用处理器(applicationprocessor,AP),图形处理器(graphics processing unit,GPU),图像信号处理器(imagesignal processor,ISP),控制器等。
处理器301中的控制器是通信设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。可选地,处理器301中还可以设置存储器,用于存储指令和数据。
示例性的,处理器301可以包括一个或多个CPU,例如图3中所示的CPU 0和CPU 1。
存储器302包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmableread-only memory,EPROM)、快闪存储器、或光存储器、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。本申请实施例中,存储器302可以存储计算机指令,该计算机指令包括用于执行本申请提供的资源调度方法的指令。
一种可能的实现方式中,存储器302可以独立于处理器301存在。存储器302可以通过总线304与处理器301相连接,用于存储数据、指令或者程序代码。处理器301调用并执行存储器302中存储的指令或程序代码可以实现调度器的功能,以对用户提交的作业进行资源调度。
另一种可能的实现方式中,存储器302也可以和处理器301集成在一起。
通信接口303用于管理节点与其他设备或通信网络通信,如与以太网,RAN,无线局域网(wireless local area networks,WLAN)等通信。
总线304可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线、CXL、UB等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要说明的是,图3所示的管理节点仅仅是管理节点的一个范例,该管理节点可以具有比图3中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。
下面参考附图描述本申请实施例提供的资源调度方法,该资源调度方法的执行主体为集群计算系统的管理节点。
在上述实施例所述描述的内容的基础上,如图4所示,本申请实施例提供的资源调度方法可以包括以下步骤:
S401、获取待调度资源的第一作业。
第一作业为用户当前提交的一个作业,即该第一作业是等待管理节点为其调度资源的作业。
本申请实施例中,用户提交第一作业时,需指示该第一作业对于资源的需求,即需指示第一作业的资源需求,资源需求包括资源类型的需求以及资源类型的配置需求,如此,管理节点获取到第一作业的资源需求之后,为该第一作业调度资源时根据该第一作业的资源需求为第一作业分配合适的资源。
其中,资源类型可以包括计算资源、存储资源或网络资源中的至少一种。计算资源包括CPU或GPU,存储资源包括内存、硬盘,网络资源包括带宽。示例性的,若资源类型为计算资源,对应的资源配置需求可以是CPU和/或GPU的核的数量;若资源类型为存储资源,对应的资源配置需求可以是内存和/或硬盘的大小;若资源类型为网络资源,对应的资源配置需求可以是带宽大小。示例性的,用户提交第一作业时,可以指示为该第一作业分配资源时需满足为其调度2个核的GPU。
用户提交第一作业时还需携带该第一作业的作业类型,如此,集群计算系统中的管理节点可以获知该第一作业的作业类型。本申请实施例中,作业类型包括:断点续传型、终止型或连续型中的至少一种。
断点续传型的作业,是指运行的过程中具有检查点(即checkpoint)的作业,即作业运行过程中需要将中间计算结果缓存起来。对于有些应用的作业,例如AI训练作业,需要定期缓存中间计算结果(可以称为需要定期进行checkpoint)。通常,在作业运行过程中,不保存中间计算结果,待计算流程结束时保存最终的计算结果,但是对于有的计算流程比较长(例如AI训练作业)的作业,如果计算过程中不缓存中间计算结果,一旦中间计算结果丢失,就需要重新开始运行作业。因此,通过建立检查点可以将比较重要的中间计算结果存储至可靠的存储空间,以保证业务顺利运行。
终止型的作业,是指可以定期终止运行的作业,例如,对于一些定期保存计算结果的应用,该应用的作业保存结果之后可以终止运行,即作业定期被杀掉(killed)。
连续型的作业,是指运行的过程中不允许暂停的作业,即需要保证该作业连续运行,直至运行结束。
用户通过命令行提交作业,在命令行中携带作业的参数,作业的参数包括上述作业类型、作业的资源需求,管理节点运行该命令行之后,可以获取到作业的资源需求以及作业类型。
上述用户提交借用资源的作业(例如上述的第一作业)之后,管理节点根据作业类型,将作业归入该作业类型对应的作业队列。在管理节点中的文本配置文件里可以设置借用资源的作业队列的参数,例如队列参数可以包括队列名(QueueName)和队列类型(LoanType),队列名和队列类型均是按照作业类型进行相应的划分的。例如,队列名可以为runlimitQueue或ckpntQueue或waitQueue,其中,runlimitQueue表示终止型的作业队列,ckpntQueue表示断点续传型的作业队列,waitQueue表示连续型的作业队列;队列类型为runlimit型或ckpnt型或wait型,其中,runlimit型对应终止型作业,ckpnt型对应断点续传型作业,wait对应连续型作业。
S402、在集群计算系统中筛选与第一作业匹配的可借调资源的作业集合。
上述筛选得到的可借调资源的作业集合包括至少一个作业,该至少一个作业为已分配资源的作业。
当用户提交第一作业时,集群计算系统中已经存在一个或多个已分配资源的作业。应理解,管理节点为该一个或多个作业分配资源的方法是:按照该一个或多个作业的资源需求为该一个或多个作业分配资源。
在一种可能的实现方式中,如图4所示,上述S402可以通过S4021-S4022实现。
S4021、根据集群计算系统中可借调资源的一个或多个作业的资源借调信息,从该一个或多个作业中筛选与第一作业的作业类型匹配的第一作业集合。
应理解,对于一个或多个作业中的任意一个作业,用户提交该作业时也携带该作业的资源借调信息,从而管理节点可以存储该作业的资源借调信息,作业的资源借调信息用于指示将该作业的可借调资源借调至其他作业时其可借调资源支持的作业类型。至少一个作业的可借调资源支持的作业类型可以理解为该至少一个作业的可借调资源可以借调给哪些类型的作业使用。
另外,用户提交作业时,也需要携带指示作业的阶段的信息以及指示各个阶段的资源是否可借的信息,如此,管理节点可以获知作业的哪一个阶段是资源可借调阶段,哪一个阶段是资源不可借阶段,例如作业的资源可借阶段是作业的资源利用率低于预设利用率的阶段,预设资源利用率可以根据实际情况确定,例如可以设置为50%,关于资源可借调阶段的描述参考上述实施例的相关描述,此处不再赘述。
可选地,一个或多个已分配资源的作业中,有的作业可能包括多个资源可借阶段,同一作业的多个资源可借阶段的可借调资源支持的业务类型可以相同的,也可以不同,本申请实施例不做限定。
下面以一个示例说明第一作业集合的获取过程,假设集群计算系统中已分配资源的作业包括job1、job2、job3、job4以及job5,将第一作业记为job6。作业的具体情况如表1所示。
表1
若job6为断点续传型作业,通过执行上述S4021,从该job1、job2、job3、job4以及job5中筛选与第一作业(即job6)的作业类型匹配的作业为job1和job5,因此第一作业集合表示为{job1,job5}。
S4022、从第一作业集合中筛选可借调资源满足第一作业的资源需求的第二作业集合。
其中,资源类型包括计算资源、存储资源或网络资源中的至少一种,关于计算资源、存储资源以及网络资源的相关内容可以参考上述实施例的描述,此处不再赘述。
至少一个作业的资源需求满足第一作业的资源需求指的是:至少一个作业对应的资源中资源配置高于第一作业对资源配置需求。继续以S4021中的第一作业集合为例,该第一作业集合中包括两个作业,分别为job1和job5,假设为job1分配的资源为4核CPU,4M的内存;为job5分配的资源是1核CPU,8M的内存,第一作业的资源需求是5M的内存;那么从job1和job5中筛选到的满足第一作业的资源需求的作业为job5,因此第二作业集合表示为{job5}。
可选地,本申请实施例中,从集群计算系统中的一个或多个已分配资源的作业中筛选出该作业集合的过程中,不限定按照资源需求以及可借调资源支持的作业类型进行筛选的顺序,即可以按照S4021-S4022中先筛选可借调资源支持第一作业的作业类型的作业,再从作业类型匹配的作业中筛选出资源需求匹配的作业,得到作业集合;或者6也可以先筛选资源需求匹配的作业,再从资源需求匹配的作业中筛选出可借调资源支持第一作业的作业类型的作业,得到作业集合,本申请实施例不做限定。
上述S4021-S4022是根据作业类型筛选与第一作业的资源需求匹配的至少一个作业,也就是说,至少一个作业的资源需求满足第一作业的资源需求,并且至少一个作业的可借调资源支持第一作业的作业类型。
另一种可能的实现方式中,在集群计算系统中筛选与第一作业匹配的可借调资源的作业集合可以包括:从集群计算系统中可借调资源的一个或多个作业中筛选满足第一作业的资源需求或者筛选与第一作业的作业类型匹配的作业集合。
S403、根据作业集合的可借调资源确定第一作业的资源调度策略。
第一作业的资源调度策略用于指示在资源可借阶段利用可借调资源执行第一作业的处理方式,应理解,第一作业的作业类型不同时,执行第一作业的处理方式不同。
结合S402的内容,作业集合包括至少一个作业,上述S403中确定第一作业的资源调度策略包括以下两种情况:
情况1、若该至少一个作业的资源需求以及可借调资源支持的作业类型与第一作业均匹配,则基于作业集合的可借调资源中的全部资源确定第一作业的资源调度策略。
情况2、若该至少一个作业的资源需求或可借调资源支持的作业类型与第一作业匹配,则基于作业集合的可借调资源的子集(可借调资源的子集指的是可借调资源中的部分资源)确定第一作业的资源调度策略。例如,若至少一个作业的可借调资源支持的作业类型与第一作业匹配,则还需进一步从该至少一个作业中筛选出一个或多个作业,该一个或多个作业的资源需求与第一作业的资源需求匹配,进而基于该一个或多个作业的可借调资源确定第一作业的资源调度策略,即上述的可借调资源的子集是指作业集合中的一个或多个作业的可借调资源。
在一种可能的实现方式中,对于已分配资源的一个或多个作业,用户还可以指定作业的可借调资源的借调时长,该可借调资源的借调时长指的是将该作业的可借调资源借调至第一作业时,第一作业可利用该可借调资源的时长。如此,管理节点获取到借调时长之后,可以根据该借调时长为第一作业调度资源,应注意,当借调时长到期时,不能再将其资源借调至第一作业。
需要说明的是,作业的可借调资源的借调时长小于或等于该作业资源可借阶段的时长,当作业的可借调资源的借调时长等于该作业资源可借阶段的时长时,用户提交作业时也可以不指定借调时长,如此,默认借调时长为资源可借阶段的时长。
基于以上S4021-S4022及其相关内容,继续参考图4,相应地,上述S403可以通过S4031实现。
S4031、根据第二作业集合的可借调资源确定第一作业的资源调度策略。
本申请实施例中,第二作业集合包括第二作业,如此,根据第二作业集合的可借调资源确定第一作业的资源调度策略具体是根据第二作业的可借调资源确定第一作业的资源调度策略。
对于不同类型的作业,资源调度策略不同,下面以上述实施例中的断点续传型、终止型以及连续型为例,分别介绍这三种类型的作业的调度策略。
当第一作业的作业类型为断点续传型时,第二作业集合包括第二作业时,上述S4031具体包括S4031a:
S4031a、在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,暂停将第二作业的可借调资源借调至第一作业;当第二作业运行结束时,将可借调资源调度至第一作业,以继续运行第一作业。
示例性的,假设集群计算系统中已分配资源的作业包括作业1至作业7,作业的具体情况如下表2所示。
表2
待调度资源的第一作业记为作业8,假设该作业8为的作业类型为断点续传型。
一种情况下,执行上述S4021筛选作业类型与第一作业匹配的作业,得到第一作业集合为{作业1,作业3,作业6},假设执行S4022筛选资源需求与第一作业匹配的作业,得到第二作业集合为{作业1}。作业1与作业8的运行情况可参考图5中的(a),其中,第二作业为作业1,调度器将作业1被派发至一个计算节点,作业1进入资源可借阶段之后,调度器将用户提交的作业8也派发至该计算机节点,并指示计算节点在作业1的资源可借阶段,利用作业1的资源运行作业8;待作业1的资源可借阶段到期,管理节点通知该计算节点停止运行作业8(即作业8进行checkpoint),并通知计算节点启动作业1的计算阶段;当作业1的计算阶段运行结束,计算节点通知调度器作业1已运行结束,之后,调度器再通知该计算节点继续运行作业8,即重启作业8。
另一种情况下,执行上述S4021筛选作业类型与第一作业匹配的作业,得到第一作业集合为{作业1,作业3,作业6},假设执行S4022筛选资源需求与第一作业匹配的作业,得到第二作业集合为{作业6},该作业6的可借调资源的借调时长为30分钟(作业6的资源可借阶段的时长大于30分钟),作业6与作业8的运行情况可参考图5中的(b),计算节点在作业6的资源可借阶段,利用作业6的资源运行作业8;当作业6的借调时长到期时,停止运行作业8(即作业8进行checkpoint);当作业6运行结束时,该计算节点再继续运行作业8,即重启作业8。
当第一作业的作业类型为终止型时,第二作业集合包括第二作业,上述S4031具体包括S4031b:
S4031b、在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,终止将第二作业的可借调资源借调至第一作业。
仍以S4031a中的作业1至作业7为例,待调度资源的第一作业记为作业8,假设该作业8的作业类型为终止型。
一种情况下,执行上述S4021筛选作业类型与第一作业匹配的作业,得到第一作业集合为{作业2,作业5,作业7},假设执行S4022筛选资源需求与第一作业匹配的作业,得到第二作业集合为{作业2}。作业2与作业8的运行情况可参考图6中的(a),计算节点在作业2的资源可借阶段,利用作业2的资源运行作业8;当作业2的资源可借阶段到期时,终止运行作业8(即作业8被killed)。
另一种情况下,执行上述S4021筛选作业类型与第一作业匹配的作业,得到第一作业集合为{作业2,作业5,作业7},假设执行S4022筛选资源需求与第一作业匹配的作业,得到第二作业集合为{作业5}。作业5与作业8的运行情况可参考图6中的(b),计算节点在作业5的资源可借阶段,利用作业5的资源运行作业8;当作业5的资源可借阶段到期时,终止运行作业8(即作业8被killed)。
当第一作业的作业类型为连续型时,第二作业集合包括第二作业,上述S4031具体包括S4031c:
S4031c、在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,继续将第二作业的资源借调至第一作业。
仍以S4031a中的作业1至作业7为例,待调度资源的第一作业记为作业8,假设该作业8的作业类型为连续型,在一种情况下,执行上述S4021筛选作业类型与第一作业匹配的作业,得到第一作业集合为{作业4},并且执行S4022确定作业4满足第一作业的资源需求,因此得到第二作业集合为{作业4}。作业4与作业8的运行情况可参考图7中,计算节点在作业4的资源可借阶段,利用作业4的资源运行作业8;当作业4的资源可借阶段到期时,暂停作业4,继续运行作业8;当作业8运行结束时,再继续运行作业4,即作业4需要等待作业8运行结束才可以继续运行。
在一种可能的实现方式中,通过执行上述S4021-S4022得到的与第一作业匹配的作业集合中可能包括多个作业,该多个作业既与第一作业的资源需求匹配,也支持第一作业的作业类型。在这种情况下,调度器可以从多个作业中选择一个作业作为目标作业(即上述的第二作业),进而将目标作业的资源借调至第一作业。
可选地,调度器可以根据先进先出的原则,从多个作业中选择最先进入作业队列的作业作为目标作业;或者,调度器也可以从多个作业中随机选择一个作业作为目标作业,将该目标作业的资源借调至第一作业;又或者,调度器可以按照多个作业的借调优先级,选择优先级最高的一个作业作为目标作业。
在另一种可能的实现方式中,上述第二作业的资源可借阶段的资源除了借调至第一作业之外,也可以借调至其他的一个或多个作业,如此,使得第二作业的资源得到充分利用。例如,第一作业为短作业,由于短作业消耗的资源很少,这样,在第二作业的资源可借阶段仍有较多的剩余资源,剩余资源也可以借调至其他的短作业。示例性的,如图8所示,假设第二作业为上述7个作业中的作业3,第一作业为作业8,在作业3的资源可借阶段,可以运行作业8,作业9以及作业10。
在又一种可能的实现方式中,通过执行上述S4021-S4022得到的与第一作业匹配的作业集合中包括多个作业,该多个作业支持第一作业的作业类型,该多个作业中每一个单独的作业的资源无法满足第一作业的资源需求,该多个作业的资源总和可以满足第一作业的资源需求。在这种情况下,将该多个作业均作为目标作业(即第二作业包括多个作业),即调度器将多个作业的可借调资源借调至第一作业。
示例性的,仍以S4031a中的作业1至作业7为例,待调度资源的第一作业记为作业8,若该作业8的作业类型为断点续传型,在一种情况下,通过执行S4021-S4022得到的与第一作业匹配的作业集合为{作业1,作业3},如此,在作业1和作业3的资源可借阶段,利用作业1和作业3的资源运行作业8,当作业1和作业3中借调时长最短的一个借调时长到期时,暂停作业8;当作业1和作业3均运行结束时,再继续运行作业8。
若该作业8的作业类型为终止型,在一种情况下,通过执行S4021-S4022得到的与第一作业匹配的作业集合为{作业2,作业7},如此,在作业2和作业7的资源可借阶段,利用作业2和作业7的资源运行作业8,当作业2和作业7中借调时长最短的一个借调时长到期时,终止运行作业8。
上述实施例中仅以部分示例示出了资源调度的方式,具体实施过程中,可以有更多情况,本申请实施例不再一一列举。
综上,本申请实施例提供的资源调度方法中,对于待调度资源的第一作业,管理节点可以在集群计算系统的多个作业中筛选出至少一个已分配资源且与第一作业匹配的可借调资源的作业,得到作业集合,进而根据该作业集合的可借调资源确定第一作业的资源调度策略,如此,能够灵活地将已分配资源的作业集合的可借调资源借调至第一作业,充分利用集群计算系统的资源,提升了集群计算系统的资源利用率。
相应地,本申请实施例提供一种管理节点,本申请实施例中,可以根据上述方法示例对该管理节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出上述实施例中所涉及的管理节点的一种可能的结构示意图。如图9所示,该管理节点包括获取模块901、第一确定模块902以及第二确定模块903。其中,获取模块901用于获取待调度资源的第一作业,例如执行上述方法实施例中的S401。第一确定模块902用于在集群计算系统中筛选可借调资源的作业集合,该作业集合包括至少一个作业,该至少一个作业为已分配资源,且与第一作业匹配的可借调资源的作业,例如执行上述方法实施例中的S402。第二确定模块903用于根据作业集合的可借调资源确定第一作业的资源调度策略,该资源调度策略用于指示在资源可借阶段利用可借调资源执行第一作业的处理方式,例如执行上述方法实施例中的S403。
应理解的是,本发明本申请实施例的管理节点可以通过中央处理单元(centralprocessing unit,CPU)实现,也可以通过专用集成电路(application-specificintegrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)、数据处理单元(data processing unit,DPU)、片上系统(system onchip,SoC)或其任意组合。也可以通过软件实现图4所示的资源调度方法时,管理节点及其各个模块也可以为软件模块。
可选地,上述第一确定模块902,具体用于根据集群计算系统中的一个或多个作业的资源借调信息,从该一个或多个作业中筛选与第一作业的作业类型匹配的第一作业集合,并且从第一作业集合中筛选可借调资源满足第一作业的资源需求的第二作业集合。其中,资源借调信息用于指示将作业的可借调资源借调至其他作业时该可借调资源支持的作业类型,作业类型包括:断点续传型、终止型或连续型中的至少一种;资源需求包括资源类型的需求以及资源类型的配置需求,资源类型包括计算资源、存储资源或网络资源中的至少一种,例如执行上述方法实施例中的S4021-S4022。
可选地,上述第二确定模块903,具体用于根据第二作业集合的可借调资源确定第一作业的资源调度策略,例如执行上述方法实施例中的S4031。
可选地,第二作业集合包括第二作业,当第一作业的作业类型为断点续传型时,第二确定模块903,具体用于在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,暂停将第二作业的可借调资源借调至第一作业;当第二作业运行结束时,将可借调资源调度至第一作业,以继续运行第一作业,例如执行上述方法实施例中的S4031a。
可选地,上述第二作业集合包括第二作业,当第一作业的作业类型为终止型时,第二确定模块903,具体用于在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,终止将第二作业的可借调资源借调至第一作业,例如执行上述方法实施例中的S4031b。
可选地,上述第二作业集合包括第二作业,当第一作业的作业类型为连续型时,第二确定模块903具体用于在第二作业的资源可借阶段,将第二作业的可借调资源借调至第一作业,且当可借调资源的借调时长到期时,继续将第二作业的资源借调至第一作业,例如执行上述方法实施例中的S4031c。
上述管理节点的各个模块还可以用于执行上述方法实施例中的其他动作,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的管理节点的另一种可能的结构示意图。如图10所示,本申请实施例提供的管理节点可以包括:处理模块1001和通信模块1002。处理模块1001可以用于对该管理节点的动作进行控制管理,例如,处理模块1001可以用于支持该管理节点执行上述方法实施例中的S401、S402(包括S4021)、S403(包括S4031、S4031a、S4031b以及S4031c),和/或用于本文所描述的技术的其它过程。通信模块1002可以用于支持该管理节点与其他网络实体的通信,例如支持该管理节点与计算节点通信。可选地,如图10所示,该管理节点还可以包括存储模块1003,用于存储计算机指令和数据。
其中,处理模块1001可以是处理器或控制器(例如可以是上述如图3所示的处理器301),上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1002可以是通信接口(例如可以是上述如图3所示的通信接口303)。存储模块1003可以是存储器(例如可以是上述如图1所示的存储器302)。
当处理模块1001为处理器,通信模块1002为通信接口,存储模块1003为存储器时,处理器、收发器和存储器可以通过总线连接。
上述管理节点包含的模块实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 一种电力线载波与无线融合的多信道传输方法及装置
- 一种电力开关无线测温装置
- 一种用于电力抱杆施工的无线应力检测装置
- 一种无线电力装置的低电力检查装置
- 一种无线电力装置的低电力检查装置