CN114356516A - 资源调度方法及相关装置、设备和存储介质 - Google Patents
资源调度方法及相关装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114356516A CN114356516A CN202111592745.8A CN202111592745A CN114356516A CN 114356516 A CN114356516 A CN 114356516A CN 202111592745 A CN202111592745 A CN 202111592745A CN 114356516 A CN114356516 A CN 114356516A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- executed
- resource
- node
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种资源调度方法及相关装置、设备和存储介质,该方法包括:基于节点设备所具备的计算资源的种类,获取节点设备的节点标签;其中,节点设备设有资源参数,资源参数反映节点设备各种计算资源的可用数量;基于各个节点设备的节点标签,将各个节点设备分别与若干任务队列中至少一个进行映射绑定;基于待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列;其中,任务信息包括待执行任务是否需要GPU资源,以及待执行任务所需的各种计算资源的需求数量;调度目标队列中的目标设备的计算资源执行待执行任务。上述方案,能够提升同时调度管理各种计算资源的便利性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种资源调度方法及相关装置、设备和存储介质。
背景技术
在计算任务处理过程,为了提升资源调度效率,目前通常采用资源管理***来实现资源调度、管理。代表性地,另一种资源协调者(Yet Another Resource Negotiator,YARN)是Hadoop平台自2.X版本以来使用的通用资源管理***,为上层应用提供统一的中央处理器(Central Processing Unit,CPU)资源和内存等资源的管理和调度。
目前,如前述YARN,现有的资源管理***通常只支持对CPU资源的调度。然而,在现实场景中,诸如FLINK等处理程序往往存在同时调用CPU资源和GPU资源的场景。因此,如何提升同时调度管理各种计算资源的便利性成为亟待解决的问题。
发明内容
本申请主要解决的技术问题是提供一种资源调度方法及相关装置、设备和存储介质,能够提升同时调度管理各种计算资源的便利性。
为了解决上述技术问题,本申请第一方面提供了一种资源调度方法,包括:基于节点设备所具备的计算资源的种类,获取节点设备的节点标签;其中,节点设备设有资源参数,资源参数反映节点设备各种计算资源的可用数量;基于各个节点设备的节点标签,将各个节点设备分别与若干任务队列中至少一个进行映射绑定;基于待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列;其中,任务信息包括待执行任务是否需要GPU资源,以及待执行任务所需的各种计算资源的需求数量;调度目标队列中的目标设备的计算资源执行待执行任务。
为了解决上述技术问题,本申请第二方面提供了一种资源调度装置,包括:标签获取模块、映射绑定模块、选择模块和调度模块;标签获取模块用于基于节点设备所具备的计算资源的种类,获取节点设备的节点标签;其中,节点设备设有资源参数,资源参数反映节点设备各种计算资源的可用数量;映射绑定模块用于基于各个节点设备的节点标签,将各个节点设备分别与若干任务队列中至少一个进行映射绑定;选择模块用于基于待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列;其中,任务信息包括待执行任务是否需要GPU资源,以及待执行任务所需的各种计算资源的需求数量;调度模块用于调度目标队列中的目标设备的计算资源执行待执行任务。
为了解决上述技术问题,本申请第三方面提供了一种资源调度设备,包括通信电路、存储器和处理器,通信电路、存储器耦接至处理器,存储器中存储有程序指令,处理器用于执行程序指令以实现上述第一方面中的资源调度方法。
为了解决上述技术问题,本申请第四方面提供了一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面中的资源调度方法。
上述方案,通过节点设备各种计算资源的可用数量来为节点设备设置资源参数,并获取节点设备的节点标签以及根据各个节点设备的节点标签将节点设备与任务队列进行映射绑定,在此基础上,再根据待执行任务是否需要GPU资源以及待执行任务所需的各种计算资源的需求数量,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列,故一方面通过资源参数来反映节点设备各种计算资源的可用数量,而无需通过插件方式发现GPU资源的索引号,另一方面通过节点设备与任务队列映射绑定,来调度目标队列中的目标设备的计算资源执行待执行任务,也无需额外配置算子程序专门调度GPU资源,故在资源调度过程中,能够提升同时调度管理各种计算资源的便利性。
附图说明
图1是本申请提供的资源调度方法一实施例的流程示意图;
图2是图1所示步骤S13一实施例的流程示意图;
图3是图2所示步骤S132一实施例的流程示意图;
图4图1所示步骤S14一实施例的流程示意图;
图5是本申请提供的资源调度装置一实施例的框架示意图;
图6是本申请提供的电子设备一实施例的框架示意图;
图7是本申请提供的计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请提供的资源调度方法一实施例的流程示意图。需要注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。如图1所示,本实施例包括:
步骤S11:基于节点设备所具备的计算资源的种类,获取节点设备的节点标签。
本实施方式中,根据节点设备所具备的计算资源的种类,获取节点设备的节点标签。也就是说,不同节点设备由于其具备的计算资源的种类不同,所获取到的节点设备的节点标签不同,节点标签反映出该节点设备所具备的计算资源的种类。可选地,在一实施方式中,计算资源的种类包括但不限于CPU资源、图形处理器(Graphics Processing Unit,GPU)资源或者其他内存资源等,在此不做具体限定。需要说明的是,在下文中,为了便于描述,本申请将以计算资源的种类包括CPU资源和GPU资源为例进行描述说明,但可以理解的是,这样的描述并不是限定计算资源的种类。
举例来说,某一节点设备所具备的计算资源为CPU资源。又例如,某一节点设备所具备的计算资源为GPU资源。又例如,某一节点设备所具备的计算资源为CPU资源和GPU资源。
其中,节点设备设有资源参数,资源参数反映节点设备的各种计算资源的可用数量。也就是说,能够通过各节点设备的资源参数,获知各节点设备的各种计算资源的可用数量。举例来说,某一节点设备所具备的计算资源包括CPU资源和GPU资源,根据节点设备设有的资源参数可得知CPU资源的可用数量为32核、GPU资源的可用数量为4张。
在一实施方式中,资源参数包括各种计算资源的虚拟核数值,且每种计算资源的虚拟核数值基于对应种类的计算资源的可用数量确定得到的。举例来说,某一节点设备所具备的计算资源包括CPU资源和GPU资源,CPU资源和GPU资源的虚拟核数值能够根据各自的可用数量确定得到。在一具体实施方式中,在计算资源包括CPU资源的情况下,根据CPU资源的物理核数,确定CPU资源的虚拟核数。在其他具体实施方式中,在计算资源包括GPU资源的情况下,根据GPU资源的显卡数量,确定GPU资源的虚拟核数。在其他具体实施方式中,在计算资源包括CPU资源和GPU资源的情况下,根据CPU资源的物理核数确定CPU资源的虚拟核数,并将GPU资源的显卡数量转换成CPU资源的虚拟核数,此时在资源参数中对应GPU资源的位置做相应标记,以让***得知标记处对应的是GPU资源。
可选地,在一实施方式中,可直接将CPU资源的物理核数或者GPU资源的显卡数量作为虚拟核数值。例如,某一节点设备的计算资源仅包括CPU资源,CPU资源的可用数量为32核即CPU资源的物理核数为32,所以直接将CPU资源的物理核数作为虚拟核数值,即CPU资源的虚拟核数值为32。又例如,某一节点设备的计算资源仅包括GPU资源,GPU资源的可用数量为4张即GPU资源的显卡数量为4,所以直接将GPU资源的显卡数量作为虚拟核数值,即GPU资源的虚拟核数值为4。可以理解地,在其他实施方式中,也可将CPU资源的物理核数或者GPU资源的显卡数量乘以一定大小的系数后得到的数值作为虚拟核数值,其中,不对系数的大小进行限定,可根据实际使用需要具体设置。
步骤S12:基于各个节点设备的节点标签,将各个节点设备分别与若干任务队列中至少一个进行映射绑定。
本实施方式中,根据各个节点设备的节点标签,将各个节点设备分别与若干任务队列中至少一个进行映射绑定。其中,不对任务队列的数量以及各个节点设备映射绑定的任务队列的数量进行限定,可根据实际使用需要具体设置。可选地,在一实施方式中,若干任务队列包括但不限于CPU队列、GPU队列等,CPU队列主要用于处理指令等任务即CPU队列更擅于处理指令等任务,CPU队列当然也可用于处理其他任务,其对应映射绑定的节点设备只包括CPU资源或者包括的CPU资源的可用数量较多;GPU队列主要用于处理图形类并行数值计算等任务即GPU队列更擅于处理图形类并行数值计算等任务,GPU队列当然也可以用于处理其他任务,其对应映射绑定的节点设备只包括GPU资源或者包括的GPU资源的可用数量较多。
也就是说,将各个节点设备分别与若干任务队列中的至少一个进行映射绑定,相当于为各个节点设备指定其能够执行的任务类型。例如,若干任务队列包括CPU队列和GPU队列,将A节点设备与CPU队列进行映射绑定,CPU队列主要用于处理指令等任务,则相当于指定A节点设备主要用于处理指令等任务;又例如,若干任务队列包括CPU队列和GPU队列,将B节点设备与GPU队列进行映射绑定,GPU队列主要用于处理图形类并行数值计算等任务,则相当于指定B节点设备主要用于处理图形类并行数值计算等任务。
需要说明的是,在下文中,为了便于描述,本申请将以若干任务队列包括CPU队列和GPU队列为例进行描述说明,但可以理解的是,这样的描述并不是限定若干任务队列的数量和类型。
步骤S13:基于待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列。
本实施方式中,根据待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列。其中,任务信息包括待执行任务是否需要GPU资源,以及待执行任务所需的各种计算资源的需求数量。也就是说,会根据执行任务是否需要GPU资源以及待执行任务所需的各种计算资源的需求数量选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列。
举例来说,若干任务队列包括CPU队列和GPU队列,会选择具备GPU资源这一计算资源且计算资源的需求数量足以完成该待执行任务的节点设备作为目标设备,并选择与该目标设备绑定的GPU队列作为目标队列。
在一实施方式中,在选择了某一节点设备作为目标设备后,将目标设备的节点标签修改为预设标签。其中,具有预设标签的节点设备正在执行任务。也就是说,在将一节点设备作为目标设备后,修改其的节点标签为预设标签,预设标签不同于任何节点标签,用预设标签表示其对应的节点设备已被任务占用。
在一实施方式中,在具备GPU资源这一计算资源且计算资源的需求数量能够足以完成该待执行任务的节点设备包括多个时,可将符合要求的节点设备作为候选设备,并从候选设备中选择一个节点设备作为目标设备。
步骤S14:调度目标队列中的目标设备的计算资源执行待执行任务。
本实施方式中,调度目标队列中的目标设备的计算资源执行待执行任务。也就是说,根据上述方式确定的目标设备以及目标队列,调度目标队列中的目标设备的计算资源,以执行待执行任务,实现资源调度。
在一实施方式中,可通过分配目标设备的虚拟核来调度对应的计算资源,实现资源调度。例如,目标设备的资源参数包含其CPU资源的虚拟核(vcore)数值为32,且根据任务信息,执行待执行任务CPU资源的需求数量为2,可以调度其中ID为i至i+1的虚拟核来执行待执行任务。当然,i的取值可以根据实际情况进行设置。示例性地,i可以设置为目标设备可用的虚拟核中ID的最小值,在此不做限定。其他情况可以以此类推,在此不再一一举例。
需要说明的是,为了实现调度GPU资源,也可以通过GPU插件来发现GPU资源索引(index),该索引可以从ExternalResourceInfo(扩展资源信息)中获取,并通过脚本来发现GPU资源,灵活度不够强。此外,在Standalone模式下,需要确保所有节点都正确按照GPU资源的驱动程序,且集群中所有节点设备上的GPU资源都可以访问,扩展性不足,不适用于生产环境;同时,该方式也不能够兼顾CPU资源和GPU资源的调度。所以,本申请的技术方案相比于通过GPU插件获取GPU资源的方式,能够兼顾CPU资源和GPU资源的调度,且无需所有节点设备都存在GPU资源,提高了灵活性、扩展性和兼容性。
上述实施方式中,通过节点设备各种计算资源的可用数量来为节点设备设置资源参数,并获取节点设备的节点标签以及根据各个节点设备的节点标签将节点设备与任务队列进行映射绑定,在此基础上,再根据待执行任务是否需要GPU资源以及待执行任务所需的各种计算资源的需求数量,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列,故一方面通过资源参数来反映节点设备各种计算资源的可用数量,而无需通过插件方式发现GPU资源的索引号,另一方面通过节点设备与任务队列映射绑定,来调度目标队列中的目标设备的计算资源执行待执行任务,也无需额外配置算子程序专门调度GPU资源,故在资源调度过程中,能够提升同时调度管理各种计算资源的便利性。
请参阅图2,图2是图1所示步骤S13一实施例的流程示意图。需要注意的是,若有实质上相同的结果,本实施例并不以图2所示的流程顺序为限。如图2所示,本实施例包括:
S131:基于待执行任务的第一任务信息和各个节点设备的资源参数,选择若干候选设备。
本实施方式中,根据待执行任务的第一任务信息和各个节点设备的资源参数,选择若干候选设备。其中,第一任务信息包括待执行任务所需的各种计算资源的需求数量。也就是说,会根据待执行任务所需的各种计算资源的需求数量和各个节点设备的计算资源的可用数量,选择计算资源的可用数量能够满足待执行任务所需的计算资源的需求数量所对应的节点设备,以作为候选设备。
具体地,根据每一个节点设备的计算资源的可用数量,判定该节点设备的计算资源的可用数量是否能够满足待执行任务所需的各种计算资源的需求数量,如果不满足,则不将该节点设备作为候选设备;如果满足,则将该节点设备作为执行待执行任务的候选设备。逐一判定各个节点设备的计算资源的可用数量是否能够满足待执行任务所需的各个计算资源的需求数量,以选择得到若干候选设备。
在一实施方式中,如果某一节点设备的节点标签被修改为了预设标签的话,则表明该节点设备正在被某一任务占用,所以此节点设备不会被选择为候选设备。
在一实施方式中,如果各个节点设备的计算资源的可用数量均不能够满足待执行任务所需的各个计算资源的需求数量,则当前资源不足,资源调度失败。
S132:基于各个候选设备映射绑定的任务队列和待执行任务的第二任务信息,选择目标设备和目标队列。
本实施方式中,根据各个候选设备映射绑定的任务队列和待执行任务的第二任务信息,选择目标设备和目标队列。其中,第二任务信息包括待执行任务是否需要GPU资源。也就是说,会根据待执行任务是否需要GPU资源以及各个候选设备映射绑定的任务队列,从若干候选设备中选择出目标设备以及目标队列。
在一实施方式中,在目标设备选择确定后,记录目标设备的节点标签,以在调度计算资源执行待执行任务时,根据记录的节点标签来调度目标设备的计算资源。也就是说,在确定某一节点设备为目标设备后,会记录该节点设备对应的节点标签,以供后续调度计算资源时使用,从而后续可直接将待执行任务分配到记录的节点标签对应的节点设备上进行处理。
在一实施方式中,如图3所示,图3是图2所示步骤S132一实施例的流程示意图,目标设备和目标队列的选择具体包括如下子步骤:
步骤S1321:判断第二任务信息包括的待执行任务是否需要GPU资源。
本实施方式中,通过判断第二任务信息包括的待执行任务是否需要GPU资源,以确定目标设备和目标队列。其中,在待执行任务需要GPU资源时,执行步骤S1322;在待执行任务无需GPU资源时,执行步骤S1323。
步骤S1322:响应于第二任务信息包括待执行任务需要GPU资源,选择映射绑定GPU队列的候选设备作为目标设备,并选择目标设备映射绑定的GPU队列作为目标队列。
本实施方式中,若干任务队列包括CPU队列和GPU队列,响应于第二任务信息包括待执行任务需要GPU资源,选择映射绑定GPU队列的候选设备作为目标设备,并选择目标设备映射绑定的GPU队列作为目标队列。也就是说,在待执行任务需要GPU资源时,从若干候选设备中选择映射绑定了GPU队列的候选设备作为目标设备,并将目标设备映射绑定的GPU队列作为目标队列。
在一实施方式中,如果若干候选设备中,映射绑定GPU队列的候选设备包括多个,可任选其中一个候选设备作为目标设备。可以理解地,在其他实施方式中,也可选择计算资源的可用数量与待执行任务所需的各个计算资源的需求数量相近的候选设备作为目标设备,以提高资源的利用率,避免资源浪费。
步骤S1323:响应于第二任务信息包括待执行任务无需GPU资源,选择映射绑定CPU队列的候选设备作为目标设备,并选择目标设备映射绑定的CPU队列作为目标队列。
本实施方式中,响应于第二任务信息包括待执行任务无需GPU资源,选择映射绑定CPU队列的候选设备作为目标设备,并选择目标设备映射绑定的CPU队列作为目标队列。也就是说,在待执行任务无需GPU资源时,从若干候选设备中选择映射绑定了CPU队列的候选设备作为目标设备,并将目标设备映射绑定的CPU队列作为目标队列。
在一实施方式中,如果若干候选设备中,映射绑定CPU队列的候选设备包括多个,可任选其中一个候选设备作为目标设备。可以理解地,在其他实施方式中,也可选择计算资源的可用数量与待执行任务所需的各个计算资源的需求数量相近的候选设备作为目标设备,以提高资源的利用率,避免资源浪费。
请参阅图4,图4图1所示步骤S14一实施例的流程示意图。需要注意的是,若有实质上相同的结果,本实施例并不以图4所示的流程顺序为限。如图4所示,本实施例包括:
步骤S41:基于需求数量,指定目标设备若干虚拟核作为目标核。
本实施方式中,通过为待执行任务分配虚拟核来实现资源的调度。具体地,根据待执行任务所需的各种计算资源的需求数量,指定目标设备若干虚拟核作为目标核。
步骤S42:调度目标核对应的计算资源,执行待执行任务。
本实施方式中,调度目标核对应的计算资源,以用来执行待执行任务,从而实现资源调度。
在一实施方式中,在待执行任务执行完毕之后,释放对应的目标核,并释放目标核对应的计算资源,以能够后续被其他任务调度使用。
在一实施方式中,以第一模式执行待执行任务。在第一模式下,待执行任务作为flink任务提交至目标队列,并由目标核对应的计算资源执行该flink任务。在一具体实施方式中,第一模式为yarn-cluster模式,具体把每一个flink任务当成是一个application,在yarn上进行分别管理,不同待执行任务对应的flink任务之间相互独立,可分别直接接受监测。
在一实施方式中,以第二模式执行待执行任务。在第二模式下,目标队列中预先启动有多个调度会话,多个调度会话包括第一调度会话和第二调度会话,第一调度会话所占用的GPU资源多于占用的CPU资源,第二调度会话所占用的CPU资源多于占用的GPU资源,且根据待执行任务的任务信息将待执行任务作为flink任务提交至第一调度会话或第二调度会话,并有目标核对应的计算资源执行。在一具体实施方式中,第二模式为yarn-session,目标队列会预先启动两个yarn-session,启动后在yarn中会有两个application分别对应能够使用CPU资源和GPU资源的两个flinkyarn-session集群。任务启动后,通过分析任务是否需要使用GPU资源,将对应的flink任务提交到对应yarn-session集群上。
在一实施方式中,在第二模式下,不同待执行任务对应的flink任务所在的调度会话作为整体接受监测。第二模式中,会先启动一个yarn-session当成一个flink容器,然后将提交到yarn上面的全部flink任务全部提交到这个flink容器中,各个flink任务之间是相互独立的,但由于都存在于flink容器中,yarn上只能监测到一个flink服务即flink容器,无法监测到flink单个任务,需要进入到flink容器内部才能看到。
请参阅图5,图5是本申请提供的资源调度装置一实施例的框架示意图。资源调度装置50包括标签获取模块51、映射绑定模块52、选择模块53和调度模块54。标签获取模块51用于基于节点设备所具备的计算资源的种类,获取节点设备的节点标签;其中,节点设备设有资源参数,资源参数反映节点设备各种计算资源的可用数量;映射绑定模块52用于基于各个节点设备的节点标签,将各个节点设备分别与若干任务队列中至少一个进行映射绑定;选择模块53用于基于待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列;其中,任务信息包括待执行任务是否需要GPU资源,以及待执行任务所需的各种计算资源的需求数量;调度模块54用于调度目标队列中的目标设备的计算资源执行待执行任务。
上述方案,通过节点设备各种计算资源的可用数量来为节点设备设置资源参数,并获取节点设备的节点标签以及根据各个节点设备的节点标签将节点设备与任务队列进行映射绑定,在此基础上,再根据待执行任务是否需要GPU资源以及待执行任务所需的各种计算资源的需求数量,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列,故一方面通过资源参数来反映节点设备各种计算资源的可用数量,而无需通过插件方式发现GPU资源的索引号,另一方面通过节点设备与任务队列映射绑定,来调度目标队列中的目标设备的计算资源执行待执行任务,也无需额外配置算子程序专门调度GPU资源,故在资源调度过程中,能够提升同时调度管理各种计算资源的便利性。
其中,选择模块53用于基于待执行任务的任务信息和节点设备的资源参数,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列,具体包括:基于待执行任务的第一任务信息和各个节点设备的资源参数,选择若干候选设备;基于各个候选设备映射绑定的任务队列和待执行任务的第二任务信息,选择目标设备和目标队列;其中,第一任务信息包括待执行任务所需的各种计算资源的需求数量,第二任务信息包括待执行任务是否需要GPU资源。
因此,基于待执行任务的第一任务信息和各个节点设备的资源参数,选择若干候选设备,在此基础上,基于各个候选设备映射绑定的任务队列和待执行任务的第二任务信息,选择目标设备和目标队列,且第一任务信息包括待执行任务所需的各种计算资源的需求数量,第二任务信息包括待执行任务是否需要GPU资源,从而能够分别先后确定候选设备,并在候选设备基础上确定出目标队列和目标设备,有利于提升目标队列和目标设备的确定准确性。
其中,上述若干任务队列包括GPU队列、CPU队列,选择模块53用于基于各个候选设备映射绑定的任务队列和待执行任务的第二任务信息,选择目标设备和目标队列,具体包括:响应于第二任务信息包括待执行任务需要GPU资源,选择映射绑定GPU队列的候选设备作为目标设备,并选择目标设备映射绑定的GPU队列作为目标队列;响应于第二任务信息包括待执行任务无需GPU资源,选择映射绑定CPU队列的候选设备作为目标设备,并选择目标设备映射绑定的CPU队列作为目标队列。
因此,基于第二任务信息包括的待执行任务是否需要GPU资源,选择目标设备和目标队列。
其中,在基于各个候选设备映射绑定的任务队列和待执行任务的第二任务信息,选择目标队列和目标设备之后,选择模块53还用于:记录目标设备的节点标签,以在调度计算资源执行待执行任务时,基于记录的节点标签来调度目标设备的计算资源。
因此,可通过记录目标设备的节点标签,以使得后续可直接将待执行任务分配至节点标签对应的目标设备处进行处理。
其中,上述资源参数包括各种计算资源的虚拟核数值,且每种计算资源的虚拟核数值基于对应种类的计算资源的可用数量确定得到;调度模块54用于调度目标队列中的目标设备的计算资源执行待执行任务,具体包括:基于需求数量,指定目标设备若干虚拟核作为目标核;调度目标核对应的计算资源,执行待执行任务。
因此,每种计算资源的虚拟核数值能够根据对应种类的计算资源的可用数量确定得到。
其中,上述虚拟核数值的确定步骤包括以下至少一者:在计算资源包括CPU资源的情况下,基于CPU资源的物理核数,确定CPU资源的虚拟核数;在计算资源包括GPU资源的情况下,基于GPU资源的显卡数量,确定GPU资源的虚拟核数。
因此,可通过CPU资源的物理核数确定CPU资源的虚拟核数,以及可通过GPU资源的显卡数量确定GPU资源的虚拟核数。
其中,在调度目标核对应的计算资源,执行待执行任务之前,调度模块54还用于:将目标设备的节点标签修改为预设标签;其中,具有预设标签的节点设备正在执行任务。
因此,通过修改目标设备的节点标签为预设标签,以表明目标设备正在执行任务,不能接受资源调度。
其中,上述待执行任务以第一模式、第二模式中任一种模式执行;其中,在第一模式中,待执行任务作为flink任务提交至目标队列,并由目标核对应的计算资源执行,在第二模式中,目标队列中预先启动有多个调度会话,多个调度会话包括第一调度会话和第二调度会话,第一调度会话所占用的GPU资源多于占用的CPU资源,第二调度会话所占用的CPU资源多于占用的GPU资源,且基于待执行任务的任务信息将待执行任务作为flink任务提交至第一调度会话或第二调度会话,并由目标核对应的计算资源执行。
因此,待执行任务可根据实际情况选择在第一模式下执行还是在第二模式下执行。
其中,资源调度装置50还包括释放模块55,释放模块55用于在待执行任务执行完毕之后,具体包括:释放目标核,并释放目标核对应的计算资源。
因此,在待执行任务执行完毕之后,通过释放目标核和目标核对应的计算资源,以用于后续的资源调度中。
请参阅图6,图6是本申请提供的电子设备一实施例的框架示意图。电子设备60包括通信电路61、存储器62和处理器63,通信电路61、存储器62耦接至处理器63,存储器62中存储有程序指令,处理器63用于执行程序指令以实现上述任一资源调度方法实施例中的步骤。具体地,电子设备60可以包括但不限于:台式计算机、笔记本电脑、服务器、手机、平板电脑等等,在此不做限定。
具体而言,处理器63用于控制其自身以及存储器62以实现上述任一资源调度方法实施例中的步骤。处理器63还可以称为CPU(Central Processing Unit,中央处理单元)。处理器63可能是一种集成电路芯片,具有信号的处理能力。处理器63还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器63可以由集成电路芯片共同实现。
上述方案,通过节点设备各种计算资源的可用数量来为节点设备设置资源参数,并获取节点设备的节点标签以及根据各个节点设备的节点标签将节点设备与任务队列进行映射绑定,在此基础上,再根据待执行任务是否需要GPU资源以及待执行任务所需的各种计算资源的需求数量,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列,故一方面通过资源参数来反映节点设备各种计算资源的可用数量,而无需通过插件方式发现GPU资源的索引号,另一方面通过节点设备与任务队列映射绑定,来调度目标队列中的目标设备的计算资源执行待执行任务,也无需额外配置算子程序专门调度GPU资源,故在资源调度过程中,能够提升同时调度管理各种计算资源的便利性。
请参阅图7,图7是本申请提供的计算机可读存储介质一实施例的框架示意图。计算机可读存储介质70存储有能够被处理器运行的程序指令71,程序指令71用于实现上述任一资源调度方法实施例中的步骤。
上述方案,通过节点设备各种计算资源的可用数量来为节点设备设置资源参数,并获取节点设备的节点标签以及根据各个节点设备的节点标签将节点设备与任务队列进行映射绑定,在此基础上,再根据待执行任务是否需要GPU资源以及待执行任务所需的各种计算资源的需求数量,选择节点设备作为目标设备,并选择与目标设备映射绑定的任务队列作为目标队列,故一方面通过资源参数来反映节点设备各种计算资源的可用数量,而无需通过插件方式发现GPU资源的索引号,另一方面通过节点设备与任务队列映射绑定,来调度目标队列中的目标设备的计算资源执行待执行任务,也无需额外配置算子程序专门调度GPU资源,故在资源调度过程中,能够提升同时调度管理各种计算资源的便利性。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (12)
1.一种资源调度方法,其特征在于,包括:
基于节点设备所具备的计算资源的种类,获取所述节点设备的节点标签;其中,所述节点设备设有资源参数,所述资源参数反映所述节点设备各种所述计算资源的可用数量;
基于各个所述节点设备的节点标签,将各个所述节点设备分别与若干任务队列中至少一个进行映射绑定;
基于待执行任务的任务信息和所述节点设备的资源参数,选择所述节点设备作为目标设备,并选择与所述目标设备映射绑定的任务队列作为目标队列;其中,所述任务信息包括所述待执行任务是否需要GPU资源,以及所述待执行任务所需的各种所述计算资源的需求数量;
调度所述目标队列中的目标设备的计算资源执行所述待执行任务。
2.根据权利要求1所述的方法,其特征在于,所述基于待执行任务的任务信息和所述节点设备的资源参数,选择所述节点设备作为目标设备,并选择与所述目标设备映射绑定的任务队列作为目标队列,包括:
基于待执行任务的第一任务信息和各个所述节点设备的资源参数,选择若干候选设备;
基于各个所述候选设备映射绑定的任务队列和所述待执行任务的第二任务信息,选择所述目标设备和所述目标队列;
其中,所述第一任务信息包括所述待执行任务所需的各种所述计算资源的需求数量,所述第二任务信息包括所述待执行任务是否需要所述GPU资源。
3.根据权利要求2所述的方法,其特征在于,所述若干任务队列包括GPU队列、CPU队列,所述基于各个所述候选设备映射绑定的任务队列和所述待执行任务的第二任务信息,选择所述目标设备和所述目标队列,包括:
响应于所述第二任务信息包括所述待执行任务需要所述GPU资源,选择映射绑定所述GPU队列的候选设备作为所述目标设备,并选择所述目标设备映射绑定的GPU队列作为所述目标队列;
响应于所述第二任务信息包括所述待执行任务无需所述GPU资源,选择映射绑定所述CPU队列的候选设备作为所述目标设备,并选择所述目标设备映射绑定的CPU队列作为所述目标队列。
4.根据权利要求2所述的方法,其特征在于,在所述基于各个所述候选设备映射绑定的任务队列和所述待执行任务的第二任务信息,选择所述目标队列和所述目标设备之后,所述方法还包括:
记录所述目标设备的节点标签,以在调度所述计算资源执行所述待执行任务时,基于记录的节点标签来调度所述目标设备的计算资源。
5.根据权利要求1所述的方法,其特征在于,所述资源参数包括各种所述计算资源的虚拟核数值,且每种所述计算资源的虚拟核数值基于对应种类的计算资源的可用数量确定得到;所述调度所述目标队列中的目标设备的计算资源执行所述待执行任务,包括:
基于所述需求数量,指定所述目标设备若干所述虚拟核作为目标核;
调度所述目标核对应的计算资源,执行所述待执行任务。
6.根据权利要求5所述的方法,其特征在于,所述虚拟核数值的确定步骤包括以下至少一者:
在所述计算资源包括CPU资源的情况下,基于所述CPU资源的物理核数,确定所述CPU资源的虚拟核数;
在所述计算资源包括所述GPU资源的情况下,基于所述GPU资源的显卡数量,确定所述GPU资源的虚拟核数。
7.根据权利要求5所述的方法,其特征在于,在所述调度所述目标核对应的计算资源,执行所述待执行任务之前,所述方法还包括:
将所述目标设备的节点标签修改为预设标签;其中,具有所述预设标签的节点设备正在执行任务。
8.根据权利要求5所述的方法,其特征在于,所述待执行任务以第一模式、第二模式中任一种模式执行;
其中,在所述第一模式中,所述待执行任务作为flink任务提交至所述目标队列,并由所述目标核对应的计算资源执行,在所述第二模式中,所述目标队列中预先启动有多个调度会话,所述多个调度会话包括第一调度会话和第二调度会话,所述第一调度会话所占用的GPU资源多于占用的CPU资源,所述第二调度会话所占用的CPU资源多于占用的GPU资源,且基于所述待执行任务的任务信息将所述待执行任务作为所述flink任务提交至所述第一调度会话或所述第二调度会话,并由所述目标核对应的计算资源执行。
9.根据权利要求5所述的方法,其特征在于,在所述待执行任务执行完毕之后,所述方法还包括:
释放所述目标核,并释放所述目标核对应的计算资源。
10.一种资源调度装置,其特征在于,包括:
标签获取模块,用于基于节点设备所具备的计算资源的种类,获取所述节点设备的节点标签;其中,所述节点设备设有资源参数,所述资源参数反映所述节点设备各种所述计算资源的可用数量;
映射绑定模块,用于基于各个所述节点设备的节点标签,将各个所述节点设备分别与若干任务队列中至少一个进行映射绑定;
选择模块,用于基于待执行任务的任务信息和所述节点设备的资源参数,选择所述节点设备作为目标设备,并选择与所述目标设备映射绑定的任务队列作为目标队列;其中,所述任务信息包括所述待执行任务是否需要GPU资源,以及所述待执行任务所需的各种所述计算资源的需求数量;
调度模块,用于调度所述目标队列中的目标设备的计算资源执行所述待执行任务。
11.一种资源调度设备,其特征在于,包括通信电路、存储器和处理器,所述通信电路、所述存储器耦接至所述处理器,所述存储器中存储有程序指令,所述处理器用于执行所述程序指令以实现权利要求1至9任一项所述的资源调度方法。
12.一种计算机可读存储介质,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至9任一项所述的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111592745.8A CN114356516A (zh) | 2021-12-23 | 2021-12-23 | 资源调度方法及相关装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111592745.8A CN114356516A (zh) | 2021-12-23 | 2021-12-23 | 资源调度方法及相关装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356516A true CN114356516A (zh) | 2022-04-15 |
Family
ID=81102314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111592745.8A Pending CN114356516A (zh) | 2021-12-23 | 2021-12-23 | 资源调度方法及相关装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356516A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860453A (zh) * | 2022-05-27 | 2022-08-05 | 中国第一汽车股份有限公司 | 场景引擎的任务执行方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-23 CN CN202111592745.8A patent/CN114356516A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860453A (zh) * | 2022-05-27 | 2022-08-05 | 中国第一汽车股份有限公司 | 场景引擎的任务执行方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684065B (zh) | 一种资源调度方法、装置及*** | |
US8418177B2 (en) | Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores | |
US10833955B2 (en) | Dynamic delivery of software functions | |
CN109491801B (zh) | 微服务访问调度方法、装置、介质及电子设备 | |
US10996997B2 (en) | API-based service command invocation | |
KR20050076750A (ko) | 인터-포지션된 메시지 변경을 사용하는, 코드에 대한 수신메시지의 적응성 디스패치 | |
CN111800450A (zh) | 用于云资源管理的多维标签命名空间 | |
US10055393B2 (en) | Distributed version control of orchestration templates | |
US9225662B2 (en) | Command management in a networked computing environment | |
US20210203714A1 (en) | System and method for identifying capabilities and limitations of an orchestration based application integration | |
US10635492B2 (en) | Leveraging shared work to enhance job performance across analytics platforms | |
US10452371B2 (en) | Automating enablement state inputs to workflows in z/OSMF | |
CN115292014A (zh) | 图像渲染方法、装置和服务器 | |
CN114356516A (zh) | 资源调度方法及相关装置、设备和存储介质 | |
CN113835830A (zh) | 基于ai的rpa集群管理方法、装置以及存储介质 | |
EP4044058A1 (en) | Capability management method and computer device | |
CN115729724B (zh) | 故障注入方法、故障测试***、电子设备及可读存储介质 | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
CN109634812A (zh) | Linux***的进程CPU占用率控制方法、终端设备及存储介质 | |
CN115080242A (zh) | 一种pci设备资源统一调度的方法、装置及介质 | |
CN114675954A (zh) | 任务调度方法及装置 | |
US11709750B2 (en) | Dynamically mapping software infrastructure utilization | |
US11061743B2 (en) | Event loop optimization through event ordering | |
US20180004629A1 (en) | Run time smf/rmf statistical formula methodology for generating enhanced workload data points for customer profiling visualization | |
CN110955599A (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 |