CN115220907A - 资源调度方法、装置、电子设备及存储介质 - Google Patents

资源调度方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115220907A
CN115220907A CN202210508371.5A CN202210508371A CN115220907A CN 115220907 A CN115220907 A CN 115220907A CN 202210508371 A CN202210508371 A CN 202210508371A CN 115220907 A CN115220907 A CN 115220907A
Authority
CN
China
Prior art keywords
task
hardware
hardware resource
queuing
target
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
Application number
CN202210508371.5A
Other languages
English (en)
Inventor
陈友宣
李文丰
何景峰
冯韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Automobile Group Co Ltd
Original Assignee
Guangzhou Automobile Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Automobile Group Co Ltd filed Critical Guangzhou Automobile Group Co Ltd
Priority to CN202210508371.5A priority Critical patent/CN115220907A/zh
Publication of CN115220907A publication Critical patent/CN115220907A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本申请提供了一种资源调度方法、装置、电子设备及存储介质,所述方法包括:针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量;针对空闲有残余核心的第一硬件资源平台,获取所述第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果;基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,指示所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点计算所述排队任务。本申请实施例能够提高硬件资源平台的整体资源利用率和整体计算效率。

Description

资源调度方法、装置、电子设备及存储介质
技术领域
本申请涉及资源管理领域,具体涉及一种资源调度方法、装置、电子设备及存储介质。
背景技术
众多领域中在进行数据处理时,凡是涉及到计算的任务,均需要为其分配一定的硬件资源以提供必要支持。其中,硬件资源通常为硬件资源平台的硬件核心,例如:CPU平台将其中的CPU核心作为硬件资源分配给任务,以支持任务的计算。现有技术中,在对硬件资源平台中的硬件核心进行调度分配的过程中,常常会导致部分硬件核心被浪费,从而导致硬件资源平台的资源利用率和计算效率均较为低下。
发明内容
本申请的一个目的在于提出一种资源调度方法、装置、电子设备及存储介质,能够提高硬件资源平台的整体资源利用率和整体计算效率。
根据本申请实施例的一方面,公开了一种资源调度方法,所述方法包括:
针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量;
针对空闲有残余核心的第一硬件资源平台,获取所述第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;
基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果;
基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,指示所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点计算所述排队任务。
根据本申请实施例的一方面,公开了一种资源调度装置,所述装置包括:
目标核心确定模块,配置为针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量;
残余核心确定模块,配置为针对空闲有残余核心的第一硬件资源平台,获取所述第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;
硬件资源匹配模块,配置为基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果;
排队任务推送模块,配置为基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,指示所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点计算所述排队任务。
在本申请的一示例性实施例中,所述装置配置为:
确定所述排队任务所需求的软件证书;
在检测到软件资源平台存在空闲的所述软件证书,并且基于所述硬件资源匹配结果检测到存在所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点时,将所述软件证书分配给所述排队任务,并将所述排队任务推送至所述第一硬件资源平台。
在本申请的一示例性实施例中,所述装置配置为:
所述排队任务计算完成之后,将所述软件资源平台中的所述软件证书进行释放,并将所述第一硬件资源平台中被所述排队任务占用的残余核心进行释放。
在本申请的一示例性实施例中,所述装置配置为:
将排队队列中标签与所述第二硬件资源平台绑定的队列成员筛选出来,得到所述排队任务;
基于所述硬件资源匹配结果确定所述第一硬件资源平台存在所述残余核心数量大于或等于所述目标核心数量的硬件处理节点时,将所述排队任务的标签修改为与所述第一硬件资源平台绑定,并将所述排队任务推送至所述第一硬件资源平台。
在本申请的一示例性实施例中,所述装置配置为:
基于所述硬件资源匹配结果确定所述第一硬件资源平台存在所述残余核心数量大于或等于所述目标核心数量的硬件处理节点时,将所述排队任务与所述第一硬件资源平台中用于计算所述排队任务的目标硬件处理节点的标签绑定;
在所述排队任务计算完成之后,将所述目标硬件处理节点中被所述排队任务占用的残余核心进行释放,并将所述排队任务与所述目标硬件处理节点的标签解绑。
在本申请的一示例性实施例中,所述装置配置为:
筛选出所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点;
确定筛选出的第一硬件处理节点中所述残余核心数量最小的目标硬件处理节点,并将所述目标硬件处理节点与所述排队任务匹配绑定,得到所述硬件资源匹配结果。
在本申请的一示例性实施例中,所述装置配置为:
针对等待所述第二硬件资源平台计算的至少两个排队任务,确定所述至少两个排队任务分别所需求的目标核心数量;
将所述至少两个排队任务分别所需求的目标核心数量分别作为不可分割的数字,填补所述各第一硬件处理节点的残余核心数量,并计算所述第一硬件资源平台在填补后的残余核心总数;
按照值最小的所述残余核心总数的填补方式,将所述至少两个排队任务与所述各第一硬件处理节点进行匹配,得到所述硬件资源匹配结果。
根据本申请实施例的一方面,公开了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各种可选实现方式中提供的方法。
根据本申请实施例的一方面,公开了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述各种可选实现方式中提供的方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
本申请实施例中,针对等待第二硬件资源平台计算的排队任务,基于该排队任务所需求的目标核心数量与第一硬件资源平台的各第一硬件处理节点空闲的残余核心数量,将该排队任务与第一硬件资源平台的各第一硬件处理节点进行匹配。从而基于匹配结果,使得该排队任务能够由残余核心数量大于或等于目标核心数量的第一硬件处理节点计算该排队任务。从而通过二次利用第一硬件资源平台的残余核心,提高第二硬件资源平台和第一硬件资源平台的整体资源利用率和整体计算效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参考附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本申请一个实施例的基础资源调度策略示意图。
图2示出了根据本申请一个实施例的资源调度方法的流程图。
图3示出了根据本申请一个实施例的资源调度前的硬件资源分布示意图。
图4示出了根据本申请一个实施例的图3实施例在资源调度后的硬件资源分布示意图。
图5示出了根据本申请一个实施例的本申请所提供资源调度方法与基础资源调度策略耦合的流程图。
图6示出了根据本申请一个实施例的资源调度的详细流程图。
图7示出了根据本申请一个实施例的资源调度开发逻辑架构示意图。
图8示出了根据本申请一个实施例的资源调度装置的框图。
图9示出了根据本申请一个实施例的电子设备硬件图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本申请的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本申请的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本申请提供了一种资源调度方法,可用于高性能计算集群HPC(High PerformanceComputing)的资源调度系统PBS(Portable Batch System)。作为HPC中用于资源调度的计算任务管理器,PBS可通过本申请提供的资源调度方法,对HPC的计算资源进行调度,从而提升HPC的整体资源利用率和整体计算效率。
图1示出了本申请一实施例的基础资源调度策略示意图。
参考图1,本实施例中,资源调度系统PBS接收到待计算的任务Q后,确认任务Q的相关信息:需求48核心,指定硬件资源平台P。
进而检测硬件资源平台P是否有空闲的硬件处理节点,并检测软件资源平台是否有任务Q的license证书。若二者同时成立,即,既有空闲的硬件处理节点又有证书,则将任务Q从存储拷贝到硬件资源平台P,交由空闲的硬件处理节点进行计算。用于计算任务Q的两个空闲的硬件处理节点,分别被占用24个核心,并分别空闲4个残余核心。
需要说明的是,本实施例主要是用于展示资源调度的基础策略逻辑,故任务Q和硬件资源平台P均是抽象的概念主体,数量、类型均不应受到限制。
图2示出了本申请一实施例的资源调度方法的流程图,该方法的示例性执行主体为资源调度系统PBS,该方法包括:
步骤S110、针对等待第二硬件资源平台计算的排队任务,确定排队任务所需求的目标核心数量;
步骤S120、针对空闲有残余核心的第一硬件资源平台,获取第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;
步骤S130、基于目标核心数量与残余核心数量,将排队任务与各第一硬件处理节点进行匹配,得到硬件资源匹配结果;
步骤S140、基于硬件资源匹配结果,将排队任务推送至第一硬件资源平台,指示残余核心数量大于或等于目标核心数量的第一硬件处理节点计算排队任务。
具体的,本申请实施例中,针对应由第二硬件资源平台P2计算,但由于P2暂时无法即刻计算,所以排队以等待P2计算的排队任务Q2,获取其所需求的目标核心数量n2。目标核心数量为n2,说明计算排队任务Q2需要占用n2个核心。
其中,核心作为硬件资源平台中的硬件资源占用单位,位于硬件资源平台中作为硬件资源调度单位的硬件处理节点。核心包括但不限于CPU核心、GPU核心等。当硬件资源平台为通过CPU节点搭建起来的CPU平台时,其硬件处理节点为CPU节点,其核心为CPU核心。当硬件资源平台为通过GPU节点搭建起来的GPU平台时,其硬件处理节点为GPU节点,其核心为GPU核心。
需要说明的是,以硬件处理节点为硬件资源调度单位将一个任务分配给一个硬件处理节点进行计算,并以核心为硬件资源占用单位确认硬件处理节点是否能够承担任务时,硬件资源平台中的硬件处理节点即使处于计算状态,也有可能空闲有部分核心。本申请实施例中,主要针对处于计算状态的硬件处理节点,将其空闲的核心称为残余核心。例如:第一硬件资源平台P1中的一个硬件处理节点C1具有28个核心。将需求20个核心的任务分配给C1进行处理后,C1虽然被占用而处于计算状态,但其还有8个核心是空闲的。即,C1的残余核心有8个。
考虑到残余核心一般情况下会被浪费,如果能够将其二次利用起来的话,将会更为充分地利用硬件资源。因此,本申请实施例中,为了提高P2和P1的整体资源利用率和整体计算效率,在检测到等待P2计算的排队任务Q2,且检测到P1存在空闲的残余核心时,获取排队任务Q2所需求的目标核心数量n2,并获取P1中的各第一硬件处理节点C1(C11,C12……C1m)空闲的残余核心数量N1(N11,N12……N1m)。进而基于目标核心数量n2与残余核心数量N1(N11,N12……N1m),将排队任务Q2与各第一硬件处理节点C1(C11,C12……C1m)进行匹配,得到硬件资源匹配结果。进而基于硬件资源匹配结果,将排队任务Q2推送至P1,指示残余核心数量大于或等于目标核心数量n2的C1计算排队任务Q2。其中,m为正整数。
例如:排队任务Q2所需求的目标核心数量n2为6;第一硬件资源平台Q1中的四个第一硬件处理节点C1(C11,C12,C13,C14)空闲的残余核心数量N1(N11,N12,N13,N14)为(4,6,8,5)。由于C12的残余核心数量N12为6,C13的残余核心数量N13为8,均大于或等于n2,故可以将排队任务Q2推送至第一硬件资源平台P1,指示第一硬件处理节点C12计算排队任务Q2,或者指示第一硬件处理节点C13计算排队任务Q2。
图3示出了本申请一实施例的资源调度前的硬件资源分布示意图。图4示出了图3实施例在资源调度后的硬件资源分布示意图。
参考图3和图4,可见,在资源调度之前,硬件资源平台P1中部分处于计算状态的第一硬件处理节点具有空闲的残余核心。若任由这些残余核心闲置的话,将导致整体资源的浪费。因此,当存在等待硬件资源平台P2计算的排队任务时,通过将这些排队任务分配给P1中空闲有残余核心的第一硬件处理节点,使得这些残余核心得到了二次利用,从而提高了P1和P2的整体资源利用率和整体计算效率。
由此可见,本申请实施例中,针对等待第二硬件资源平台计算的排队任务,基于该排队任务所需求的目标核心数量与第一硬件资源平台的各第一硬件处理节点空闲的残余核心数量,将该排队任务与第一硬件资源平台的各第一硬件处理节点进行匹配。从而基于匹配结果,使得该排队任务能够由残余核心数量大于或等于目标核心数量的第一硬件处理节点计算该排队任务。从而通过二次利用第一硬件资源平台的残余核心,提高第二硬件资源平台和第一硬件资源平台的整体资源利用率和整体计算效率。
在一实施例中,确定排队任务所需求的软件证书。在检测到软件资源平台存在空闲的软件证书,并且基于硬件资源匹配结果检测到存在残余核心数量大于或等于目标核心数量的第一硬件处理节点时,将软件证书分配给排队任务,并将排队任务推送至第一硬件资源平台。
本实施例中,PBS除了确定排队任务Q2所需求的目标核心数量n2外,还确定排队任务Q2所需求的软件证书L2。确定出的目标核心数量n2用于进行硬件资源匹配,确定出的软件证书L2用于进行软件资源匹配。当软硬件资源均匹配成功时,再对排队任务Q2进行软件资源分配和硬件资源分配。
具体的,PBS可以先确定排队任务Q2所需求的软件证书L2,检测到软件资源平台存在空闲的软件证书L2后,再根据目标核心数量n2进行硬件资源匹配。进而在根据硬件资源匹配结果确定第一硬件资源平台P1存在残余核心数量N1大于或等于目标核心数量n2的第一硬件处理节点C1后,将软件证书L2分配给排队任务Q2,并将排队任务Q2推送至Q1。
PBS也可以在检测软件资源平台是否存在空闲的软件证书L2的同时,根据目标核心数量n2进行硬件资源匹配。进而在检测到软件资源平台存在空闲的软件证书L2,并且根据硬件资源匹配结果确定第一硬件资源平台P1存在残余核心数量N1大于或等于目标核心数量n2的第一硬件处理节点C1时,将软件证书L2分配给排队任务Q2,并将排队任务Q2推送至Q1。
图5示出了本申请一实施例的本申请所提供资源调度方法与基础资源调度策略耦合的流程图。
参考图5。本实施例中,PBS接收到用户提交的待计算的任务Q1后,确认任务Q1的信息:软件名称为S1,指定的CPU平台为P1,需求的目标核心数量为n1。
PBS在软件资源平台进行检索,检测软件S1的证书L1,即,任务Q1的软件证书L1;并在P1进行检索,检测残余核心数量N1。
若不存在空闲的软件证书L1,或者残余核心数量N1小于目标核心数量n1,则将任务Q1进行排队,等待P1有足够的残余核心时再计算任务Q1。
若存在空闲的软件证书L1,并且残余核心数量N1大于或等于目标核心数量n1,则调取任务执行脚本,将任务Q1推送至P1,并将P1的残余核心数量更新为N1-n1。P1的残余核心数量更新为(N1-n1)后,若存在等待CPU平台P2计算的排队任务Q2,则可以确认排队任务Q2的软件证书L2和目标核心数量n2,进而在存在空闲的软件证书L2并且(N1-n1)大于或等于n2时,将排队任务Q2推送至P1,由P1进行计算。
在一实施例中,排队任务计算完成之后,将软件资源平台中的软件证书进行释放,并将第一硬件资源平台中被排队任务占用的残余核心进行释放。
本实施例中,PBS将软件证书L2分配给排队任务Q2,并将排队任务Q2推送至第一硬件资源平台P1后,残余核心数量N1大于或等于目标核心数量n2的第一硬件处理节点C1将其中n2个残余核心分配给排队任务Q2,并通过该n2个残余核心计算排队任务Q2。
由此可见,排队任务Q2的计算过程中,占用软件资源平台中的软件证书L2的同时,还占用残余核心数量N1大于或等于目标核心数量n2的C1的n2个残余核心。
由于被占用的软硬件资源暂时无法用于计算其他任务,为了保证软硬件资源的高效利用,排队任务Q2计算完成之后,PBS将被排队任务Q2占用的软硬件资源进行释放。即,将软件证书L2进行释放,并将第一硬件资源平台P1中被排队任务Q2占用的n2个残余核心进行释放。释放后的软硬件资源恢复为可利用的空闲状态。
在一实施例中,将排队队列中标签与第二硬件资源平台绑定的队列成员筛选出来,得到排队任务。基于硬件资源匹配结果确定第一硬件资源平台存在残余核心数量大于或等于目标核心数量的硬件处理节点时,将排队任务的标签修改为与第一硬件资源平台绑定,并将排队任务推送至第一硬件资源平台。
本实施例中,PBS通过标签绑定的方式对任务的调度方向进行管理。
具体的,PBS接收到请求计算的任务后,确认任务应当交由哪一硬件资源平台进行计算。若需要交由第一硬件资源平台P1进行计算,则将任务的标签与P1进行绑定;若需要交由第二硬件资源平台P2进行计算,则将任务的标签与P2进行绑定。
在后续对任务进行资源调度的过程中,PBS通过任务的标签确认对应的硬件资源平台,进而将任务分配至对应的硬件资源平台进行计算。若在分配任务的过程中,确认对应的硬件资源平台暂时没有足够的硬件资源计算该任务,则将该任务推送入排队队列进行等待。
PBS将排队队列中标签与P2绑定的队列成员筛选出来,得到等待P2计算的排队任务Q2。在确认将排队任务Q2推送至P1后,PBS将排队任务Q2的标签修改为与P1绑定,再将排队任务Q2推送至P1。
图6示出了本申请一实施例的资源调度的详细流程图。
参考图6。本实施例中,PBS确认CPU平台P1的残余核心数量N1,并确认应由CPU平台P2计算的任务Q2的软件名称S2,需求的目标核心数量n2。
若P1存在残余核心,即,残余核心数量N1大于0,并且任务Q2正在排队,则将软件资源平台与任务Q2进行匹配,确认任务Q2的软件证书L2是否空闲,并将硬件资源平台与任务Q2进行匹配,确认P1的残余核心数量N1是否大于或等于任务Q2的目标核心数量n2。
若任务Q2的软件证书L2空闲,并且P1的残余核心数量N1大于或等于任务Q2的目标核心数量n2,则修改任务Q2的标签与P1绑定,进而将任务Q2推送至P1计算。
计算完成后,PBS释放被任务Q2占用的软件证书L2,并释放P1中被任务Q2占用的n2个核心。
在一实施例中,基于硬件资源匹配结果确定第一硬件资源平台存在残余核心数量大于或等于目标核心数量的硬件处理节点时,将排队任务与第一硬件资源平台中用于计算排队任务的目标硬件处理节点的标签绑定。在排队任务计算完成之后,将目标硬件处理节点中被排队任务占用的残余核心进行释放,并将排队任务与目标硬件处理节点的标签解绑。
本实施例中,针对原本与第二硬件资源平台P2绑定的排队任务Q2,PBS确认将其推送至第一硬件资源平台P1进行计算后,还会将排队任务Q2与目标硬件处理节点的标签绑定。目标硬件处理节点为P1中用于计算排队任务Q2的第一硬件处理节点。
在排队任务Q2计算完成之后,将目标硬件处理节点中被排队任务Q2占用的残余核心进行释放,并将排队任务Q2与目标硬件处理节点的标签解绑。
图7示出了本申请一实施例的资源调度开发逻辑架构示意图。
参考图7。本实施例中,在资源调度开发逻辑的阶段一,建立四个关联数据库:软硬件匹配关系数据库Hardware_software,集群节点信息数据库Nodes_test,任务操作信息数据库Job_operation,软件license信息数据库Job_lic_data。
具体的,通过分析各类仿真软件特性,匹配最佳的CPU平台,建立软硬件匹配关系数据库Hardware_software。其中的关键字段包括:CPU平台、核心数量、硬盘、内存、适用软件等。
建立集群节点信息数据库Nodes_test,监测集群节点状态。其中的关键字段包括:节点名称、节点状态、物理核心数、物理内存量、系统内核心数、在计算的任务号、CPU利用率、内存用量、平台名称、软件名称、核数用量等。
建立任务操作信息数据库Job_operation,记录任务操作日志。其中的关键字段包括:节点名称、节点状态、物理核心数、物理内存量、系统内核心数、在计算的任务号、CPU利用率、内存用量、平台名称、软件名称、核数用量等。
建立软件license信息数据库Job_lic_data,监测软件license状态。其中的关键字段包括:记录数、时间、星期、软件名称、license总数、license使用数、在计算任务数、在排队任务数、任务总数、在算核数、排队核数等。
在资源调度开发逻辑的阶段二,通过自主开发的shell+python自动化脚本,建立残余核心二次利用判断逻辑。
具体的,通过PBS的命令qstat,获取排队任务的信息:任务ID、软件名称、需求的平台名称、需求的目标核心数量。
进而利用排队任务的信息,检索软件license信息数据库Job_lic_data,查看软件license。
当license不满足排队任务的需求,继续排队。当license满足排队任务的需求,利用排队任务的信息,检索软硬件匹配关系数据库Hardware_software,获取适配的CPU平台名称P1。检索集群节点信息数据库Nodes_test,确认P1的残余核心数量。若P1的残余核心数量小于目标核心数量,继续排队;若P1的残余核心数量大于或等于目标核心数量,进入资源调度开发逻辑的阶段三。
在资源调度开发逻辑的阶段三,通过自主开发的shell+python自动化脚本,重建软、硬件资源平台与排队任务的映射关系。
具体的,在P1的节点标签中添加排队任务的软件标签Sc,记录相关操作于任务操作信息数据库Job_operation中。修改排队任务的标签中的CPU平台信息为P1,记录相关操作于任务操作信息数据库Job_operation中。通过脚本调用PBS命令qrun,将排队任务推送至P1进行计算。
在资源调度开发逻辑的阶段四,通过自主开发的shell+python自动化脚本,还原软、硬件资源平台与排队任务的映射关系。
具体的,排队任务计算完成后,释放计算资源。并根据任务ID,检索任务操作信息数据库Job_operation,查找适配CPU平台修改前的软件标签信息,并恢复P1的节点标签,从而恢复原软硬件资源平台与排队任务的映射关系。
在一实施例中,筛选出残余核心数量大于或等于目标核心数量的第一硬件处理节点。确定筛选出的第一硬件处理节点中残余核心数量最小的目标硬件处理节点,并将目标硬件处理节点与排队任务匹配绑定,得到硬件资源匹配结果。
本实施例中,PBS将能够承接排队任务Q2的、且残余核心数量最小的第一硬件处理节点作为与排队任务Q2匹配绑定的目标硬件处理节点,进而以指示目标硬件处理节点计算排队任务Q2。
具体的,PBS筛选出残余核心数量N1大于或等于目标核心数量n2的第一硬件处理节点C1。进而将筛选出的C1中N1最小的确定为目标硬件处理节点,并将目标硬件处理节点与排队任务Q2匹配绑定。进而将排队任务q2推送至第一硬件资源平台P1,指示目标硬件处理节点计算排队任务Q2。
例如:排队任务Q2所需求的目标核心数量n2为6;第一硬件资源平台P1中的残余核心数量N1大于或等于n2的第一硬件处理节点C1包括C12和C13。C12的残余核心数量N12为6,C13的残余核心数量N13为8。由于筛选出的C1中N1最小的为C12,故将C12与排队任务Q2匹配绑定。进而将排队任务Q2推送至P1,指示C12计算排队任务Q2。
在一实施例中,针对等待第二硬件资源平台计算的至少两个排队任务,确定至少两个排队任务分别所需求的目标核心数量。将至少两个排队任务分别所需求的目标核心数量分别作为不可分割的数字,填补各第一硬件处理节点的残余核心数量,并计算第一硬件资源平台在填补后的残余核心总数。按照值最小的残余核心总数的填补方式,将至少两个排队任务与各第一硬件处理节点进行匹配,得到硬件资源匹配结果。
本实施例中,PBS同时将多个排队任务与各第一硬件处理节点进行匹配,以进一步提高第一硬件资源平台的残余核心的整体利用率。
具体的,PBS针对等待第二硬件资源平台P2计算的多个排队任务Q2(Q21,Q22……Q2k),确定该多个排队任务Q2(Q21,Q22……Q2k)分别需求的目标核心数量n2(n21,n22……n2k)。然后使用n2(n21,n22……n2k)填补各第一硬件处理节点C1(C11,C12……C1m)的残余核心数量N1(N11,N12……N1m)。其中,k与m均为正整数。
在填补过程中,用于填补的目标核心数量n2必须小于或等于被填补的残余核心数量N1;并且,n21,n22……n2k分别是不可分割的,但可以相互组合。例如:若n21小于或等于N11,可以使用n21填补N11;若n21与n22之和小于或等于N11,可以使用n21与n22共同填补N11。
通过遍历各种填补方式,计算各种填补方式下,第一硬件资源平台P1在填补后的残余核心总数。进而筛选出值最小的残余核心总数,并按照对应的填补方式,将多个排队任务Q2(Q21,Q22……Q2k)与各第一硬件处理节点C1(C11,C12……C1m)进行匹配,得到硬件资源匹配结果。
例如:三个排队任务Q2(Q21,Q22,Q23)需求的目标核心数量n2(n21,n22,n23)为(2,6,7);第一硬件资源平台P1中的两个第一硬件处理节点C1(C11,C12)的残余核心数量N1(N11,N12)为(2,7)。
填补方式1:将n21填补N11,将n22填补N12。P1在填补后的残余核心总数为(N11-n21)+(N12-n22)=(2-2)+(7-6)=1。
填补方式2:将n21填补N11,将n23填补N12。P1在填补后的残余核心总数为(N11-n21)+(N12-n23)=(2-2)+(7-7)=0。
填补方式3:将n21填补N12。P1在填补后的残余核心总数为N11+(N12-n21)=2+(7-2)=7。
这三种填补方式中,填补方式2下,P1在填补后的残余核心总数最小。故按照填补方式2,将排队任务Q21与第一硬件处理节点C11匹配绑定,将排队任务Q23与第一硬件处理节点C12匹配绑定。进而可以将排队任务Q21和Q23推送至P1,并指示C11计算排队任务Q21,C12计算排队任务Q23。
图8示出了根据本申请一实施例的资源调度装置的框图,所述装置包括:
目标核心确定模块210,配置为针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量;
残余核心确定模块220,配置为针对空闲有残余核心的第一硬件资源平台,获取所述第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;
硬件资源匹配模块230,配置为基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果;
排队任务推送模块240,配置为基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,指示所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点计算所述排队任务。
在本申请的一示例性实施例中,所述装置配置为:
确定所述排队任务所需求的软件证书;
在检测到软件资源平台存在空闲的所述软件证书,并且基于所述硬件资源匹配结果检测到存在所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点时,将所述软件证书分配给所述排队任务,并将所述排队任务推送至所述第一硬件资源平台。
在本申请的一示例性实施例中,所述装置配置为:
所述排队任务计算完成之后,将所述软件资源平台中的所述软件证书进行释放,并将所述第一硬件资源平台中被所述排队任务占用的残余核心进行释放。
在本申请的一示例性实施例中,所述装置配置为:
将排队队列中标签与所述第二硬件资源平台绑定的队列成员筛选出来,得到所述排队任务;
基于所述硬件资源匹配结果确定所述第一硬件资源平台存在所述残余核心数量大于或等于所述目标核心数量的硬件处理节点时,将所述排队任务的标签修改为与所述第一硬件资源平台绑定,并将所述排队任务推送至所述第一硬件资源平台。
在本申请的一示例性实施例中,所述装置配置为:
基于所述硬件资源匹配结果确定所述第一硬件资源平台存在所述残余核心数量大于或等于所述目标核心数量的硬件处理节点时,将所述排队任务与所述第一硬件资源平台中用于计算所述排队任务的目标硬件处理节点的标签绑定;
在所述排队任务计算完成之后,将所述目标硬件处理节点中被所述排队任务占用的残余核心进行释放,并将所述排队任务与所述目标硬件处理节点的标签解绑。
在本申请的一示例性实施例中,所述装置配置为:
筛选出所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点;
确定筛选出的第一硬件处理节点中所述残余核心数量最小的目标硬件处理节点,并将所述目标硬件处理节点与所述排队任务匹配绑定,得到所述硬件资源匹配结果。
在本申请的一示例性实施例中,所述装置配置为:
针对等待所述第二硬件资源平台计算的至少两个排队任务,确定所述至少两个排队任务分别所需求的目标核心数量;
将所述至少两个排队任务分别所需求的目标核心数量分别作为不可分割的数字,填补所述各第一硬件处理节点的残余核心数量,并计算所述第一硬件资源平台在填补后的残余核心总数;
按照值最小的所述残余核心总数的填补方式,将所述至少两个排队任务与所述各第一硬件处理节点进行匹配,得到所述硬件资源匹配结果。
下面参考图9来描述根据本申请实施例的电子设备30。图9显示的电子设备30仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,电子设备30以通用计算设备的形式表现。电子设备30的组件可以包括但不限于:上述至少一个处理单元310、上述至少一个存储单元320、连接不同系统组件(包括存储单元320和处理单元310)的总线330。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图3中所示的各个步骤。
存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(ROM)3203。
存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备30也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备30交互的设备通信,和/或与使得该电子设备30能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口350进行。输入/输出(I/O)接口350与显示单元340相连。并且,电子设备30还可以通过网络适配器360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器360通过总线330与电子设备30的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本申请的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JAVA、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种资源调度方法,其特征在于,所述方法包括:
针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量;
针对空闲有残余核心的第一硬件资源平台,获取所述第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;
基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果;
基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,指示所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点计算所述排队任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述排队任务所需求的软件证书;
在检测到软件资源平台存在空闲的所述软件证书,并且基于所述硬件资源匹配结果检测到存在所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点时,将所述软件证书分配给所述排队任务,并将所述排队任务推送至所述第一硬件资源平台。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述排队任务计算完成之后,将所述软件资源平台中的所述软件证书进行释放,并将所述第一硬件资源平台中被所述排队任务占用的残余核心进行释放。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将排队队列中标签与所述第二硬件资源平台绑定的队列成员筛选出来,得到所述排队任务;
基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,包括:基于所述硬件资源匹配结果确定所述第一硬件资源平台存在所述残余核心数量大于或等于所述目标核心数量的硬件处理节点时,将所述排队任务的标签修改为与所述第一硬件资源平台绑定,并将所述排队任务推送至所述第一硬件资源平台。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述硬件资源匹配结果确定所述第一硬件资源平台存在所述残余核心数量大于或等于所述目标核心数量的硬件处理节点时,将所述排队任务与所述第一硬件资源平台中用于计算所述排队任务的目标硬件处理节点的标签绑定;
在所述排队任务计算完成之后,将所述目标硬件处理节点中被所述排队任务占用的残余核心进行释放,并将所述排队任务与所述目标硬件处理节点的标签解绑。
6.根据权利要求1所述的方法,其特征在于,基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果,包括:
筛选出所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点;
确定筛选出的第一硬件处理节点中所述残余核心数量最小的目标硬件处理节点,并将所述目标硬件处理节点与所述排队任务匹配绑定,得到所述硬件资源匹配结果。
7.根据权利要求1所述的方法,其特征在于,针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量,包括:针对等待所述第二硬件资源平台计算的至少两个排队任务,确定所述至少两个排队任务分别所需求的目标核心数量;
基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果,包括:
将所述至少两个排队任务分别所需求的目标核心数量分别作为不可分割的数字,填补所述各第一硬件处理节点的残余核心数量,并计算所述第一硬件资源平台在填补后的残余核心总数;
按照值最小的所述残余核心总数的填补方式,将所述至少两个排队任务与所述各第一硬件处理节点进行匹配,得到所述硬件资源匹配结果。
8.一种资源调度装置,其特征在于,所述装置包括:
目标核心确定模块,配置为针对等待第二硬件资源平台计算的排队任务,确定所述排队任务所需求的目标核心数量;
残余核心确定模块,配置为针对空闲有残余核心的第一硬件资源平台,获取所述第一硬件资源平台中的各第一硬件处理节点空闲的残余核心数量;
硬件资源匹配模块,配置为基于所述目标核心数量与所述残余核心数量,将所述排队任务与所述各第一硬件处理节点进行匹配,得到硬件资源匹配结果;
排队任务推送模块,配置为基于所述硬件资源匹配结果,将所述排队任务推送至所述第一硬件资源平台,指示所述残余核心数量大于或等于所述目标核心数量的第一硬件处理节点计算所述排队任务。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至7任一项所述的方法。
CN202210508371.5A 2022-05-11 2022-05-11 资源调度方法、装置、电子设备及存储介质 Pending CN115220907A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210508371.5A CN115220907A (zh) 2022-05-11 2022-05-11 资源调度方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210508371.5A CN115220907A (zh) 2022-05-11 2022-05-11 资源调度方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115220907A true CN115220907A (zh) 2022-10-21

Family

ID=83607825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210508371.5A Pending CN115220907A (zh) 2022-05-11 2022-05-11 资源调度方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115220907A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115442444A (zh) * 2022-11-04 2022-12-06 山东紫菜云数字科技有限公司 一种应用于多对多匹配平台的资源平衡自适应调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115442444A (zh) * 2022-11-04 2022-12-06 山东紫菜云数字科技有限公司 一种应用于多对多匹配平台的资源平衡自适应调度方法
CN115442444B (zh) * 2022-11-04 2023-03-24 山东紫菜云数字科技有限公司 一种应用于多对多匹配平台的资源平衡自适应调度方法

Similar Documents

Publication Publication Date Title
US20220391763A1 (en) Machine learning service
CN108537543B (zh) 区块链数据的并行处理方法、装置、设备和存储介质
CN108681565B (zh) 区块链数据并行处理方法、装置、设备和存储介质
US8572614B2 (en) Processing workloads using a processor hierarchy system
US20100107174A1 (en) Scheduler, processor system, and program generation method
US10025630B2 (en) Operating programs on a computer cluster
US10838767B2 (en) Distributed computing utilizing a recovery site
CN112306719A (zh) 一种任务调度方法与装置
CN106713396A (zh) 服务器调度方法和系统
US9904574B2 (en) Parallel computing without requiring antecedent code deployment
CN111061485A (zh) 任务处理方法、编译器、调度服务器和介质
CN115220907A (zh) 资源调度方法、装置、电子设备及存储介质
CN114237894A (zh) 容器调度方法、装置、设备以及可读存储介质
CN115220908A (zh) 资源调度方法、装置、电子设备及存储介质
US8863133B2 (en) License management in a cluster environment
CN110928659A (zh) 一种具有自适应功能的数值水池系统远程多平台接入方法
CN113986097B (zh) 一种任务调度的方法、装置及电子设备
US9652766B1 (en) Managing data stored in memory locations having size limitations
CN113689296B (zh) 一种异步可信计算的合约调度方法、装置和电子设备
US7673302B1 (en) System and method for managing messages in a queuing system
CN111382178A (zh) 一种网络任务分配方法、系统、设备和存储介质
CN112486421B (zh) 一种数据存储方法、装置、电子设备及存储介质
US11995202B2 (en) Computer system and data access control method
US12014216B2 (en) Method for platform-based scheduling of job flow
CN114741197B (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