CN117950825A - 一种作业调度方法、服务器及服务器集群 - Google Patents

一种作业调度方法、服务器及服务器集群 Download PDF

Info

Publication number
CN117950825A
CN117950825A CN202311798795.0A CN202311798795A CN117950825A CN 117950825 A CN117950825 A CN 117950825A CN 202311798795 A CN202311798795 A CN 202311798795A CN 117950825 A CN117950825 A CN 117950825A
Authority
CN
China
Prior art keywords
target
job
resource
resources
computing nodes
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
CN202311798795.0A
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies 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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202311798795.0A priority Critical patent/CN117950825A/zh
Publication of CN117950825A publication Critical patent/CN117950825A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本申请公开了一种作业调度方法、服务器及服务器集群,涉及服务器领域,能够灵活分配资源,提高资源利用率。方法包括:应用于服务器集群中的管理节点,管理节点与服务器集群中的多个计算节点连接,方法包括:获取目标作业的资源需求;资源需求包括计算资源需求以及存储资源需求;基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求;将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行。

Description

一种作业调度方法、服务器及服务器集群
技术领域
本申请涉及服务器技术领域,尤其涉及一种作业调度方法、服务器及服务器集群。
背景技术
高性能计算(high performance computing,HPC)领域的并行计算程序的性能是由中央处理器(central processing unit,CPU)核数、单核浮点性能、内存带宽、网络带宽和时延,以及存储带宽和时延综合决定。在HPC领域的非交互式计算中,上层应用程序下发的作业通常被提交到调度器,调度器先评估作业需要的资源和执行的优先级,再将作业分配到合适的节点上执行。
当前HPC集群的调度器主要考虑CPU核数和内存大小,对于内存带宽等细化资源并没有做过多的考虑,这导致当HPC集群运行多个应用程序时,存在资源浪费,资源利用率较低的问题。
为解决该问题,相关技术提出一种调度方案,该方案中HPC集群中的管理节点将应用程序分为多种类型,并为每种类型的应用程序配置对应类型的资源,当有应用程序下发作业时,管理节点基于应用程序的类型,为该应用程序下发的作业分配对应类型的资源。该方案考虑了内存带宽等细化资源,但是该方案中各种资源已预先固定配置好,无法基于实际应用程序的需求灵活调度,资源利用率较低。
发明内容
本申请实施例提供了一种作业调度方法、服务器及服务器集群,能够灵活分配资源,提高资源利用率。
为实现上述技术目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供了一种作业调度方法,应用于服务器集群中的管理节点,管理节点与服务器集群中的多个计算节点通信,方法包括:获取目标作业的资源需求;资源需求包括计算资源需求以及存储资源需求;基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求;将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行。
上述方法中,目标计算节点在执行目标作业时,为目标作业分配的资源为目标作业所需要的资源,另外,在分配资源时还考虑了存储资源需求,因此该方法能根据实际作业情况灵活分配资源,提高资源利用率。
在一种可能的实现方式中,基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求,包括:获取多个计算节点的可用资源信息,可用资源信息包括可用计算资源信息,以及可用存储资源信息;基于每个计算节点的可用资源信息,确定一个或多个目标计算节点;其中一个或多个目标计算节点的可用资源大于或等于目标作业的资源需求。
可以理解的是,基于每个计算节点的可用资源信息,确定一个或多个目标计算节点,能够确保目标计算节点的可用资源满足目标作业的需求,以成功执行目标作业。
在另一种可能的实现方式中,管理节点储存有资源信息表,资源信息表用于记录多个计算节点的资源信息,资源信息包括可用资源信息,获取多个计算节点的可用资源信息,包括:基于资源信息表中记录的多个计算节点的资源信息,获取多个计算节点的可用资源信息。
可以理解的是,管理节点通过资源信息表来管理多个计算节点的资源,能够清楚的掌握多个计算节点的资源的分配情况以及剩余可用资源的数量,能够基于该资源信息表来将作业分配到可用资源充足的计算节点上,有利于提高管理节点对计算节点上的资源的管理效率。
在另一种可能的实现方式中,方法还包括:分别向多个计算节点发送第一指示;第一指示用于指示计算节点返回各自的可用资源信息;基于多个计算节点返回的可用资源信息,修正资源信息表中记录的多个计算节点的可用资源信息。
可以理解的是,管理节点可以周期性的或定时向多个计算节点发送第一指示,以修正资源信息表中记录的多个计算节点的可用资源信息,提高资源信息表所记录的多个计算节点的可用资源信息的准确性。
在另一种可能的实现方式中,将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行之后,方法还包括:基于一个或多个目标计算节点中用于处理目标作业所占用的资源,更新资源信息表中记录的一个或多个目标计算节点的可用资源信息。
可以理解的是,管理节点若确定了目标计算节点,表明管理节点指示将目标计算节点的资源分配给目标作业,而更新资源信息表中目标计算节点的可用资源信息,有利于后续有其他作业时,能够及时基于最新的资源信息来分配作业,避免因可用资源不足造成作业执行失败。
在另一种可能的实现方式中,管理节点储存有资源信息表,资源信息表用于记录多个计算节点的资源信息,方法还包括:在接收到目标作业执行完成的响应消息的情况下,回收一个或多个目标计算节点上为目标作业分配的资源,并相应更新资源信息表记录的一个或多个目标计算节点的可用资源信息。
可以理解的是,管理节点及时更新资源信息表中记录的目标计算节点的资源信息,有利于后续有新的作业时,能够获取到多个计算节点最新的资源信息,提高计算节点中资源的利用率。
在另一种可能的实现方式中,将目标作业下发至一个或多个目标计算节点,包括:将目标作业拆分为多个子作业;向一个或多个目标计算节点发送任务信息,任务信息包括待执行的子作业和执行待执行的子作业需要的资源。
可以理解的是,如果每个计算节点的可用资源均不满足目标作业需要的资源时,可以将目标作业分为多个子作业,以将多个子作业分发到多个目标计算节点上,以使得多个目标计算节点共同完成目标作业。
在另一种可能的实现方式中,将目标作业下发至一个或多个目标计算节点之前,方法还包括:基于目标作业需要的目标计算资源,确定执行目标作业的一个或多个CPU;将目标作业下发至一个或多个目标计算节点,包括:向一个或多个目标计算节点发送任务信息,任务信息包括:执行目标作业需要的资源和执行目标作业的一个或多个CPU;目标作业需要的资源包括目标计算资源和目标存储资源,目标计算资源包括目标CPU核数。
可以理解的是,确定好目标计算节点后,再基于目标作业需要的目标计算资源,确定执行目标作业的CPU,以保证目标作业能成功执行。
在另一种可能的实现方式中,计算资源需求包括CPU核数需求,存储资源需求包括内存带宽需求。
在另一种可能的实现方式中,存储资源需求包括内存带宽需求和L3 cache需求。
可以理解的是,上述两种实现方式中,存储资源中均考虑了内存带宽需求,可选的还有L3 cache,该方法中对内存带宽等存储资源进行细分,以作为动态分配的资源,使得目标计算节点的存储资源能够得到更充分的使用,提高资源利用率,进一步提高计算节点执行目标作业时的性能和集群的整体吞吐量。
第二方面,本申请实施例提供了一种作业调度方法,方法应用于服务器集群中的计算节点,计算节点与服务器集群中的管理节点通信,方法包括:接收管理节点发送的任务信息;任务信息包括待执行的作业,和目标资源,待执行的作业为目标作业,或者为目标作业的子作业,目标资源为执行待执行的作业需要的资源,目标资源包括目标计算资源和目标存储资源;为待执行的作业分配目标资源,执行待执行的作业。
可以理解的是,目标计算节点在管理节点的指示下为目标作业分配所需要的目标资源,能够提高资源分配的灵活性,以及提高资源的利用率。
在一种可能的实现方式中,任务信息包括执行待执行的作业的一个或多个CPU,为待执行的作业分配目标资源,执行待执行的作业之前,包括:基于任务信息,将待执行的作业分发到一个或多个CPU上;为待执行的作业分配目标资源,执行待执行的作业,包括:为待执行的作业分配一个或多个CPU上的目标资源,在一个或多个CPU上执行待执行的作业。
可以理解的是,目标计算节点在管理节点的指示下,将待执行的作业分发到指定的CPU上,以成功执行待执行的作业,提高作业的执行效率。
在另一种可能的实现方式中,目标存储资源包括目标内存带宽,为待执行的作业分配目标资源后,方法还包括:对目标内存带宽进行物理隔离。
可以理解的是,目标计算节点对目标内存带宽进行物理隔离,能够在目标计算节点同时执行多个作业时,每个作业只使用各自分配的内存带宽,有效避免多个作业发生资源争抢的情况。
第三方面,本申请实施例提供一种服务器,其中,服务器应用于第一方面或第一方面中任一种可能的实现方式的作业调度方法的各个模块,或者,服务器应用于第二方面或第二方面中任一种可能的实现方式的作业调度方法的各个模块。
第四方面,本申请实施例提供一种服务器,包括存储器和处理器。存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行该计算机指令时,使得该服务器执行如第一方面及其任一种可能的实现方式的作业调度方法;或者,当处理器执行该计算机指令时,使得该服务器执行如第二方面及其任一种可能的实现方式的作业调度方法。
第五方面,本申请实施例提供一种服务器集群,包括多个服务器,多个服务器分为管理节点和多个计算节点;管理节点包括:作业接收模块、资源管理中心模块和存储资源管理模块;作业接收模块,用于接收作业请求,并将作业请求发送至资源管理中心模块;作业请求用于请求为目标作业分配资源,并执行目标作业;资源管理中心模块,用于基于目标作业的资源需求,调用存储资源管理模块,确定多个计算节点的存储资源;资源需求包括计算资源需求和存储资源需求;资源管理中心模块还用于基于多个计算节点的资源,确定执行目标作业的一个或多个目标计算节点;存储资源管理模块,用于管理多个计算节点的存储资源;计算节点包括:作业执行模块、存储资源分配模块和内存带宽接口;作业执行模块,用于接收资源管理中心模块分发的作业,以及在资源管理中心模块的指示下,调用存储资源分配模块为作业分配所指示的存储资源;存储资源包括内存带宽;存储资源分配模块,用于在作业执行模块的指示下,通过内存带宽接口为作业分配所指示的存储资源;存储资源分配模块还用于,在作业执行完成后,释放为作业分配的存储资源;内存带宽接口,用于分配内存带宽,并对已分配的内存带宽进行物理隔离。
第六方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。其中,当计算机指令在服务器上运行时,使得该服务器执行如第一方面及其任一种可能的实现方式的作业调度方法;或者,当计算机指令在服务器上运行时,使得该服务器执行如第二方面及其任一种可能的实现方式的作业调度方法。
第七方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令。其中,当计算机指令在服务器上运行时,使得该服务器执行如第一方面及其任一种可能的实现方式的作业调度方法;或者,当计算机指令在服务器上运行时,使得该服务器执行如第二方面及其任一种可能的实现方式的作业调度方法。
本申请实施例中第三方面到第七方面及其各种实现方式的具体描述,可以参考第一方面或第二方面及其各种实现方式中的详细描述;并且,第三方面到第七方面及其各种实现方式的有益效果,可以参考第一方面或第二方面及其各种实现方式中的有益效果分析,此处不再赘述。
本申请实施例的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种作业调度方法所涉及的一种服务器集群架构图;
图2为本申请实施例提供的一种作业调度方法所涉及的另一种服务器集群架构图;
图3为本申请实施例提供的一种作业调度方法的流程图;
图4为本申请实施例提供的另一种作业调度方法的流程图;
图5为本申请实施例提供的一种资源配置界面示意图;
图6为本申请实施例提供的一种作业运行性能图;
图7为本申请实施例提供的另一种作业运行性能图;
图8为本申请实施例提供的另一种作业调度方法的流程图;
图9为本申请实施例提供的一种管理节点的结构示意图;
图10为本申请实施例提供的一种计算节点的结构示意图;
图11为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为了方便理解,以下先对本申请实施例中涉及的相关术语进行简单介绍:
(1)Slurm(simple linux utility for resource management)是一个开源、容错、高可伸缩的集群管理和大型小型Linux集群作业调度系统。
(2)PBS(portable batch system)是一种用于在计算机集群或超级计算机上调度批处理作业的软件系统。
(3)作业(job):作业是用户在一次算题过程中或一个事务处理中要求计算机系统所做的工作的集合。在某些操作系统中,作业是计算机操作者(或作业调度器)交给操作系统的执行单位,作业包括程序、相应的数据和作业说明书。
(4)资源管理器技术(resource director technology,RDT),帮助系统管理员在处理器上分配和管理资源。
以下,术语“第一”、“第二”和“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”或“第三”等的特征可以明示或者隐含地包括一个或者更多个该特征。
在本申请实施例的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。
相关技术为解决当前HPC集群中存在的资源浪费的问题,提出一种调度方案。该方案中HPC集群中的管理节点将应用程序分为多种类型,预先为每种类型的应用程序配置好对应的资源。当有应用程序下发作业时,管理节点基于下发作业的应用程序的类型,为该作业分配对应资源。例如,每种类型的应用程序对资源的需求不同,计算密集型应用程序对CPU核数需求较高,访存密集型应用程序对内存带宽需求较高,通信密集型应用程序和IO密集型应用程序均对网络性能需求较高,该方案针对不同应用程序的需求,将资源固定分为几大类别,并建立资源与应用程序的对应关系。该方案虽然考虑了内存带宽等细化资源,但是各种资源已预先固定配置好,无法基于实际应用程序的需求灵活调度,资源利用率较低。
示例性的,若作业的类型为访存密集型,对CPU核数的需求为2个CPU核,对单核内存带宽的需求为8GB/s,管理单元预先为访存密集型作业预设了CPU核数为4个CPU核和单核内存带宽为10GB/s,此时管理单元无法基于该作业的需求为其分配资源,则若为该作业分配4个CPU核,10GB/s单核内存带宽,则存在资源浪费的情况,降低了资源利用率。
基于此,本申请实施例提出了一种作业调度方法,该方法应用于服务器集群中的管理节点,管理节点获取到目标作业的资源需求后,基于目标作业所需要的目标资源,从多个计算节点中确定满足目标作业需求的一个或多个目标计算节点,并将目标作业分发到一个或多个目标计算节点中,以此来使得一个或多个目标计算节点使用目标资源来执行目标作业。可以理解的是,该方法中,目标计算节点在执行目标作业时,为目标作业分配的资源为目标作业所需要的资源,另外,在分配资源时还考虑了存储资源需求,因此该方法能根据实际作业情况灵活分配资源,提高资源利用率。
下面将结合附图对本申请实施例的实施方式进行详细描述。
请参考图1,其示出本申请实施例提供的作业调度方法所涉及的一种服务器集群架构图。如图1所示,该服务器集群100包括:管理节点110和计算节点120。
管理节点110和计算节点120之间通过网络连接构成服务器集群100,例如HPC集群。
管理节点110是服务器集群100中用于管理多个计算节点120中的资源的计算节点,例如,管理多个计算节点120的资源使用情况,分配或回收多个计算节点120中的资源。另外,管理节点110还用于接收上层客户端130中运行的应用程序下发的作业,并基于所管理的计算节点120中的资源,将作业分发到其中一个或多个计算节点120中。
示例性的,资源包括计算资源和存储资源,计算资源包括CPU芯片上的CPU核数,还可以包括图形处理器(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-networkprocessing units,NPU)或现场可编程逻辑门阵列(field programmable gatearray,FPGA)等芯片上的计算资源;存储资源包括内存容量,还可以进一步包括内存带宽和L3 cache等资源。
计算节点120是服务器集群100中用于在管理节点110的调度下,为管理节点110分发的作业分配对应的资源,并执行该作业的计算设备。
示例性的,管理节点110或计算节点120均可以是由一台或多台具有多核处理器的服务器组成。服务器可以是机架式服务器、刀片式服务器或塔式服务器等不同类型的服务器。
服务器集群100中管理节点110或计算节点120的数量可以是一个或多个,本申请实施例对每个管理节点110或每个计算节点120包括的服务器数量,以及管理节点110和计算节点120的数量不做限定。
可选的,本申请实施例提出的服务器集群100的通过网络连接有客户端130。
客户端130,为用户提供本地服务的程序,一般的,客户端130与服务端互相配合运行,客户端130可以安装在普通的客户机上,例如:手机、平板电脑、桌面型电脑、膝上型电脑、笔记本电脑和上网本等设备,服务端可以安装在管理节点110中。客户端130中安装有多个应用程序(application,APP),应用程序在运行过程中产生将会产生作业,客户端130向安装了服务端的管理节点110下发应用程序产生的作业,对应的,管理节点110用于处理客户端130中的应用程序下发的作业。
在一种实施方式中,服务器集群100中的管理节点110接收到上层客户端130下发的作业请求(作业请求),从所管理的多个计算节点120中,选择可用资源满足作业运行需求的计算节点120来处理该作业。管理节点110将该作业分发到所选择的一个或多个计算节点120中,计算节点120接收到该作业后,为该作业分配管理节点110所指示的目标资源,并执行该作业。
在一种实施方式中,服务器集群100所在的服务器集群系统包括:调度器,调度器是分布式运行在服务器集群系统中的进程,用于调度管理节点110接收到的作业,并为作业分配对应的目标资源。示例性的,调度器可以是slurm,或者pbs等调度器。
具体的,如图2所示,调度器具有如下模块:
作业接收模块(slurm cli)201,用于接收上层客户端下发的作业请求,并将作业请求转发至资源管理中心模块202,由资源管理中心模块202统一调度作业。
资源管理中心模块(slurmctrld)202,用于基于目标作业的资源需求,调用存储资源管理模块,确定多个计算节点的存储资源。另外,资源管理中心模块202还用于将作业分发到一个或多个计算节点120,并指示一个或多个计算节点120执行作业时具体需要分配的资源,可选的还有执行作业的CPU。
存储资源管理模块203,用于在资源管理中心模块202的指示下,管理多个计算节点120的存储资源(例如内存带宽和/或L3 cache),例如:查询或记录每个计算节点120中已使用的存储资源、可使用的存储资源(即未使用的存储资源)。
作业执行模块(slurmd)204,接收作业接收模块201所下发的作业,并按照作业接收模块201的指示,调用存储资源分配模块205为作业分配所指示的内存带宽。另外,作业执行模块204还用于执行作业的启停操作,向作业接收模块201返回作业执行结果以及资源使用情况。
存储资源分配模块205,用于在作业执行模块204的指示下,通过内存带宽接口206为作业分配所需要的内存带宽,在作业执行完成后,释放所分配的内存带宽。
内存带宽接口(intel RDT)206,分配内存带宽的驱动接口,能够实现对内存带宽的分配,并能够对已分配的内存带宽进行物理隔离。
其中,上述作业接收模块201、资源管理中心模块202和存储资源管理模块运行在管理节点110中,作业执行模块204、存储资源分配模块205和内存带宽接口206运行在计算节点120中。
下文对本申请实施例提供的作业调度方法进行说明:
如图3所示,本申请实施例提出的作业调度方法应用于服务器集群中的管理节点,主要包括以下几步:第一步:管理节点获取目标作业的资源需求;第二步:管理节点基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求;第三步:管理节点将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行。
以下具体描述本申请实施例提出的作业调度方法。请参考图4,为本申请实施例提供的一种作业调度方法的流程图,该方法应用于服务器集群中的管理节点和计算节点,例如图1中的管理节点110和计算节点120。如图4所示,该方法可以包括S101-S109。
S101:管理节点获取目标作业的资源需求。
作业可以是由用户在上层客户端中运行应用程序时,应用程序所下发的计算任务。
在一种实施方式中,上层客户端具有资源配置界面(例如portal),用户在客户端运行应用程序前,在资源配置界面中为应用程序配置所需的资源,配置完成后,客户端运行应用程序,并向管理节点发送应用程序运行过程中下发的目标作业,以及目标作业的资源需求,执行目标作业所需的资源可以称为目标资源。对应的,管理节点接收目标作业,以及目标作业的资源需求。
资源需求包括计算资源需求以及存储资源需求,计算资源需求包括但不限于CPU核数需求、GPU核数需求,存储资源需求包括内存容量需求,还可以进一步包括内存带宽需求,L3cache需求。下文示例中以CPU核数、内存容量和内存带宽为例进行说明。
示例性的,如图5所示,图5示出一种资源配置界面,该界面用于配置应用程序1的资源,例如:内存带宽、CPU核数和内存容量。若应用程序1运行目标作业所需要的目标资源包括:目标内存带宽为80GB/S,目标CPU核数为16个,目标内存容量为1G,则可以在资源配置界面配置对应的数值。
上述示例中目标内存带宽80GB/s表示目标CPU核数的总带宽,则单核内存带宽为5GB/s,本申请实施例中作业请求携带的目标内存带宽的信息还可以是单核内存带宽,则需要的总带宽为单核内存带宽乘以目标CPU核数,为便于后续计算方便,以下涉及到内存带宽、目标内存带宽均以总带宽为例进行说明。
S102:管理节点基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求。
当管理节点确定了一个目标计算节点时,该一个目标计算节点的可用计算资源和可用存储资源满足目标作业的资源需求,当管理节点确定了多个目标计算节点时,多个目标计算节点的可用计算资源之和,以及可用存储资源之和分别满足目标作业的资源需求。
上述可用计算资源为未分配的计算资源,可用存储资源为未分配的存储资源。
针对S102提出一种可能的实施方式,包括:S102a-S102b。
S102a:管理节点获取多个计算节点的可用资源信息。
可用资源信息包括可用计算资源信息,以及可用存储资源信息。
示例性的,可用计算资源信息包括可用CPU核数,可用存储资源信息包括可用内存容量和可用内存带宽。
在一种实施方式中,管理节点储存有资源信息表,资源信息表用于记录多个计算节点的资源信息,该资源信息包括可用资源信息,管理节点基于资源信息表中记录的多个计算节点的资源信息,获取多个计算节点的可用资源信息。
可选的,资源信息表还包括已分配资源信息,已分配资源信息包括已分配计算资源信息和已分配存储资源信息,例如已分配计算资源信息包括已分配CPU核数,已分配存储资源信息包括已分配内存容量和已分配内存带宽。
示例性的,若每个计算节点的总内存带宽为200GB/s,总CPU核数为32核,总内存容量为16G,管理节点通过资源信息表来记录每个计算节点的可用资源信息和已分配资源信息。如表1所示,表1示出一种资源信息表,该资源信息表中记录了多个计算节点的可用资源信息和已分配资源信息,该资源信息表包括:“计算节点的标识”、“内存带宽”、“CPU核数”和“内存容量”,其中,“内存带宽”包括“可用内存带宽”和“已分配内存带宽”,“CPU核数”包括“可用CPU核数”和“已分配CPU核数”,“内存容量”包括“可用内存容量”和“已分配内存容量”。
表1
上述计算节点的标识可以是计算节点的编号、主机号、IP地址或者mac地址等能够表示计算节点身份的内容,上述表1以计算节点的编号为例进行说明。
S102b:管理节点基于每个计算节点的可用资源信息,确定一个或多个目标计算节点。
其中一个或多个目标计算节点的可用资源大于或等于目标作业的资源需求。
若存在一个计算节点的可用资源大于或等于目标作业的资源需求,则该一个计算节点为目标计算节点。
若多个计算节点中,每个计算节点的可用资源均小于目标作业的资源需求,而多个计算节点的可用资源之和大于或等于目标作业的资源需求,则该多个计算节点为均为目标计算节点。
示例性的,若目标资源包括:目标内存带宽为80GB/S,目标CPU核数为16个,目标内存容量为1G,基于表1所示的资源信息表中记录的资源信息,管理节点查询每个计算节点的可用内存带宽、可用CPU核数和可用内存容量,确定“计算节点1”的可用内存带宽为80GB/s,可用CPU核数为16个,可用内存容量为8G均能满足大于或等于目标资源的各项需求,而“计算节点2”的可用内存带宽为60GB/s,小于目标内存带宽,可用CPU核数为8,小于目标CPU核数,不满足目标资源中对目标内存带宽和目标CPU核数的需求,“计算节点3”的可用CPU核数为12,小于目标CPU核数,不满足目标资源中对目标CPU核数的需求,因此,管理节点可以从资源信息表中记录的多个计算节点中确定目标计算节点为“计算节点1”。
示例性的,若目标资源包括:目标内存带宽为120GB/S,目标CPU核数为24个,目标内存容量为2G,管理节点查询每个计算节点的可用内存带宽、可用CPU核数和可用内存容量,确定每个计算节点的可用资源均小于目标资源,而“计算节点1”和“计算节点2”的可用内存带宽之和为140GB/S,可用CPU核数之和为24个,可用内存容量之和为18G,或者,“计算节点1”和“计算节点3”的可用内存带宽之和为180GB/S,可用CPU核数之和为28个,可用内存容量之和为16G,或者,“计算节点2”和“计算节点3”的可用内存带宽之和为160GB/S,可用CPU核数之和为20个,可用内存容量之和为16G,则“计算节点1”和“计算节点2”,或者“计算节点1”和“计算节点3”,或者“计算节点2”和“计算节点3”的可用资源之和大于或等于目标资源,因此,可以确定“计算节点1”和“计算节点2”,或者“计算节点1”和“计算节点3”,或者“计算节点2”和“计算节点3”为目标计算节点。
需要说明的是,若表1中有多个计算节点中每个计算节点的可用资源均满足目标作业对目标资源的需求,则管理节点可以基于负载均衡的原则,从多个满足的计算节点中选择一个作为目标计算节点。或者,管理节点可以随机选择一个作为目标计算节点。本申请实施例对管理节点如何从多个满足目标资源的计算节点中确定目标计算节点的具体策略不做限定。
可选的,管理节点确定了一个或多个目标计算节点后,基于一个或多个目标计算节点中用于处理目标作业所占用的资源,更新资源信息表中记录的一个或多个目标计算节点的可用资源信息。
在一种实施方式中,管理节点在资源信息表中,从可用内存带宽中将目标内存带宽部分更新到已分配内存带宽中,从可用CPU核数中将目标CPU核数部分更新到已分配CPU核数中,从可用内存容量中将目标内存容量更新到已分配内存容量中。
示例性的,若目标内存带宽为80GB/s,目标CPU核数为16个,目标内存容量为1G,表1中“计算节点1”的可用内存带宽为80GB/s,可用CPU核数为16个,可用内存容量为8G,管理节点确定了目标计算节点为“计算节点1”后,将“计算节点1”的可用内存带宽从80GB/s更新为0GB/s,已分配内存带宽从120GB/s更新为200GB/s,将可用CPU核数从16个更新为0个,已分配CPU核数从16个更新为32个,将可用内存容量从8G更新为7G,已分配内存容量从8G更新为9G。如表2所示,表2示出更新后的资源信息表。
表2
可以理解的是,管理节点若确定了目标计算节点,表明管理节点指示将目标计算节点的资源分配给目标作业,而更新资源信息表中目标计算节点的可用资源信息,有利于后续有其他作业时,能够及时基于最新的资源信息来分配作业,避免因可用资源不足造成作业执行失败。
上述可选的实施方法中,管理节点可以在确定了目标计算节点后,更新资源信息表,也可以在下发目标作业后,更新资源信息表,本申请实施例对此执行顺序不做限定。
上述管理节点通过资源信息表来管理多个计算节点的资源,能够清楚的掌握多个计算节点的资源的分配情况以及剩余可用资源的数量,能够基于该资源信息表来将作业分配到可用资源充足的计算节点上,有利于提高管理节点对计算节点上的资源的管理效率。
可选的,管理节点分别向多个计算节点发送第一指示;第一指示用于指示计算节点返回各自的可用资源信息;基于多个计算节点返回的可用资源信息,修正资源信息表中记录的多个计算节点的可用资源信息。
管理节点可以周期性的或定时向多个计算节点发送第一指示,以修正资源信息表中记录的多个计算节点的可用资源信息,提高资源信息表所记录的多个计算节点的可用资源信息的准确性。
S103:管理节点将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行。
在一种实施方式中,若管理节点确定了一个目标计算节点,则管理节点将目标作业下发至该一个目标计算节点。
在另一种实施方式中,若管理节点确定了多个目标计算节点,针对S103提出以下实施方式,包括S103a-S103b。
S103a:管理节点将目标作业拆分为多个子作业。
管理节点在拆分目标作业时,基于每个目标计算节点的可用资源,将目标作业拆分为多个子作业,其中,执行每个子作业的目标计算节点的可用资源大于或等于待执行的子作业需要的资源。
示例性的,若管理节点确定了2个目标计算节点共同执行目标作业,则管理节点可以将目标作业拆分为2个子作业,其中,管理节点确定由目标计算节点1执行子作业1,由目标计算节点2执行子作业2,目标计算节点1的可用资源大于或等于子作业1需要的资源,目标计算节点2的可用资源大于或等于子作业2需要的资源。
S103b:管理节点向一个或多个目标计算节点发送任务信息,任务信息包括待执行的子作业和执行待执行的子作业需要的资源。
示例性的,若目标作业需要的资源包括:目标内存带宽为120GB/S,目标CPU核数为24个,目标内存容量为2G,管理节点将目标作业拆分为2个子作业,分别为子作业1和子作业2,子作业1需要的资源包括:内存带宽为40GB/S,CPU核数为12个,内存容量为1G,子作业2需要的资源包括:内存带宽为80GB/S,CPU核数为12个,内存容量为1G。管理节点向目标计算节点1发送任务信息,任务信息包括“子作业1”,以及执行“子作业1”需要的资源:内存带宽为40GB/S,CPU核数为12个,内存容量为1G;管理节点向目标计算节点2发送任务信息,任务信息包括“子作业2”,以及执行“子作业2”需要的资源:内存带宽为80GB/S,CPU核数为12个,内存容量为1G。
可选的,管理节点在确定了目标计算节点后,基于目标作业需要的目标计算资源,进一步确定目标计算节点上执行目标作业的一个或多个CPU。
此时,管理节点向一个或多个目标计算节点发送的任务信息中,包括:执行目标作业需要的资源和执行目标作业的一个或多个CPU;目标作业需要的资源包括目标计算资源和目标存储资源,目标计算资源包括目标CPU核数。
示例性的,若目标计算节点包括CPU1和CPU2,CPU1的可用CPU核数为32个,CPU2的可用CPU和数为20个,目标作业需要资源包括:目标内存带宽为120GB/S,目标CPU核数为24个,目标内存容量为2G,管理节点确定将目标作业下发至该目标计算节点后,基于目标作业需要的目标CPU核数24个来确定目标计算节点上执行目标作业的CPU为CPU1,则管理节点向目标计算节点发送的任务信息包括:目标作业,目标作业需要的资源包括:目标内存带宽为120GB/S,目标CPU核数为24个,目标内存容量为2G,执行目标作业的CPU为CPU1。
S104:目标计算节点接收管理节点发送的任务信息。
任务信息包括待执行的作业,和目标资源,待执行的作业为目标作业,或者为目标作业的子作业,目标资源为执行待执行的作业需要的资源,目标资源包括目标计算资源和目标存储资源。
可选的,任务信息还包括执行待执行的作业的一个或多个CPU。
可以理解的是,若管理节点确定了一个目标计算节点来执行目标作业,则该目标计算节点接收到的待执行的作业为目标作业,若管理节点确定了多个目标计算节点来共同执行目标作业,则该目标计算节点为多个目标计算节点中任意一个目标计算节点,该目标计算节点接收到的待执行的作业为目标作业的子作业。
S105:目标计算节点将待执行的作业分发到一个或多个CPU上。
示例性的,任务信息包括:执行待执行的作业为CPU1,目标计算节点基于该任务信息,将待执行的作业分发到CPU1上。
在其他一些实施场景中,若管理节点没有为待执行的作业指定执行的CPU,即任务信息不包括执行待执行的作业的一个或多个CPU,则目标计算节点基于目标作业需要的目标计算资源,确定执行待执行的作业的一个或多个CPU。
S106:目标计算节点为待执行的作业分配目标资源,执行待执行的作业。
可选的,目标计算节点为待执行的作业分配一个或多个CPU上的目标资源,在一个或多个CPU上执行待执行的作业。
示例性的,目标资源包括:目标内存带宽为120GB/s,目标CPU核数为24个,目标内存容量为2G,执行目标作业的CPU为CPU1,目标计算节点目标作业分发到CPU1上,将CPU1上的120GB/s的内存带宽、24个CPU核和2G内存容量分配给目标作业,并执行目标作业。
可选的,目标计算节点在为目标作业分配目标资源后,对目标内存带宽进行物理隔离。
可以理解的是,目标计算节点对目标内存带宽进行物理隔离,能够在目标计算节点同时执行多个作业时,每个作业只使用各自分配的内存带宽,有效避免多个作业发生资源争抢的情况。
S107:目标计算节点执行完目标作业后,释放目标资源。
目标计算节点释放目标资源后,解除对目标内存带宽的物理隔离。
目标计算节点及时释放目标资源,后续可以继续将该部分资源分配给其他作业,有利于提高资源的利于率。
S108:目标计算节点向管理节点发送目标作业执行完成的响应消息,以使得管理节点回收目标资源。
上述S107可以在S108之前执行,也可以在S108之后执行,或者可以同时执行,本申请实施例对S107和S108的执行顺序不限定。
S109:管理节点在接收目标作业执行完成的响应消息的情况下,回收一个或多个目标计算节点上为目标作业分配的资源,并相应更新资源信息表记录的一个或多个目标计算节点的可用资源信息。
在一种实施方式中,在一种实施方式中,管理节点在资源信息表中,从已分配内存带宽中将目标内存带宽部分更新到可用内存带宽中,从已分配CPU核数中将目标CPU核数部分更新到可用CPU核数中,从已分配内存容量中将目标内存容量更新到可用内存容量中。
示例性的,若目标内存带宽为80GB/s,目标CPU核数为16个,目标内存容量为1G,表2中“计算节点1”的可用内存带宽为0GB/s,可用CPU核数为0个,可用内存容量为7G,管理节点接收到目标作业执行完成的响应消息后,回收“计算节点1”中分配给目标作业的资源,并将可用内存带宽从0GB/s恢复为80GB/s,已分配内存带宽从200GB/s更新为120GB/s,将可用CPU核数从0个恢复为16个,已分配CPU核数从32个更新为16个,将可用内存容量从7G恢复为8G,已分配内存容量从9G更新为8G。即,在其他计算节点的资源没有变化的情况下,资源信息表从表2恢复到表1。
该方法中,管理节点及时更新资源信息表中记录的目标计算节点的资源信息,有利于后续有新的作业时,能够获取到多个计算节点最新的资源信息,提高计算节点中资源的利用率。
本申请实施例提出的作业调度方法中,管理节点获取到目标作业的资源需求后,基于目标作业所需要的目标资源,从多个计算节点中确定满足目标作业需求的一个或多个目标计算节点,并将目标作业分发到一个或多个目标计算节点中,以此来使得一个或多个目标计算节点使用目标资源来执行目标作业。可以理解的是,该方法中,目标计算节点在执行目标作业时,为目标作业分配的资源为目标作业所需要的资源,另外,在分配资源时还考虑了存储资源需求,因此该方法能根据实际作业情况灵活分配资源,提高资源利用率。
在一个示例中,作业1为访存密集型作业,对单核内存带宽需求为8GB/s,对CPU核数需求为2个CPU核,作业2为计算密集型作业,对单核内存带宽需求为2GB/s,对CPU核数需求为6个CPU核。若目标计算节点具有8个CPU核,单核内存带宽为10GB/s,在不考虑内存带宽需求情况下运行作业1和作业2,如图6所示,图6示出作业1和作业2在使用本申请实施例方法前的运行性能图;在本申请实施例中,在考虑内存带宽需求的情况下运行作业1和作业2,如图7所示,图7示出作业1和作业2在使用本申请实施例方法后的运行性能图。
从图6可以看出,若不考虑内存带宽的分配情况,作业1的运行时间为1000秒,作业2的运行时间为1000秒;从图7可以看出,若考虑内存带宽的分配情况,作业1的运行时间为650秒,作业2的运行时间为1000秒,因此考虑内存带宽的分配情况下,作业1的运行时间缩短,提高了作业的运行效率,因此本申请实施例提出的作业调用方法可以提高资源的利用率。在相同的时间内,计算节点可以处理更多的作业,进而能够提高服务器集群的整体吞吐量和性能。
结合图2,本申请实施例提出另一种作业调度方法的流程图,如图8所示,该方法包括:S201-S209。
S201:管理节点的作业接收模块获取目标作业的资源需求,并发送至资源管理中心模块。
S202:管理节点中的资源管理中心模块确定基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求。
具体的,管理节点中的资源管理中心模块调用存储资源管理模块,由存储资源管理模块从多个计算节点中确定出可用内存带宽大于目标内存带宽的计算节点,并将确定出的计算节点的标识发送至资源管理中心模块,由资源管理中心模块进一步确定目标计算节点。
该方法中,管理节点通过存储资源管理模块来实现对多个计算节点的内存带宽管理,并将多个计算节点的内存带宽信息反馈给资源管理中心模块,以使得资源管理中心将目标作业分发到合适的计算节点上,从而提高内存带宽的利用率。该方法能够在不改变原本存储资源管理模块的功能的情况下,额外增加单独的内存带宽的管理模块,操作简单,容易实现。
S203:管理节点中的资源管理中心模块将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行。
在一种实施方式中,管理节点中的资源管理中心模块发送任务信息。
S204:目标计算节点中的作业执行模块接收管理节点发送的任务信息。
S205:目标计算节点中的作业执行模块将待执行的作业分发到一个或多个CPU上。
S206:目标计算节点中的作业执行模块为待执行的作业分配目标资源,执行待执行的作业。
目标资源包括:目标作业所需的计算资源和存储资源,其中,计算资源由作业执行模块分配,存储资源由存储资源分配模块分配。
具体的,存储资源分配模块分配存储资源包括S206a-S206c:
S206a:目标计算节点中的作业执行模块向存储资源分配模块发送执行目标作业所需的存储资源,以使得存储资源分配模块为目标作业分配存储资源。
其中,目标作业所需的存储资源包括目标内存带宽。
S206b:目标计算节点中的存储资源分配模块通过内存带宽接口,为目标作业分配目标内存带宽,并对目标内存带宽进行物理隔离。
存储资源分配模块用于分配内存带宽,内存带宽接口为实现内存带宽分配的驱动程序,计算节点通过这两个模块实现对内存带宽的实际分配。
S206c:目标计算节点中的存储资源分配模块在为目标作业分配了目标作业所需的存储资源后,向作业执行模块发送存储资源分配完成的消息。
S207:目标计算节点中的作业执行模块执行完目标作业后,分别向存储资源分配模块和管理节点发送目标作业执行完成的响应消息。
S208:目标计算节点中的存储资源分配模块接收到目标作业执行完成的响应消息后,通过内存带宽接口释放目标内存带宽。
S209:管理节点中的资源管理中心模块接收到目标作业执行完成的响应消息后,回收目标计算节点上为目标作业分配的目标资源。
具体的,管理节点中的资源管理中心模块调用存储资源管理模块回收目标计算节点上为目标作业分配的目标内存带宽。
上述S208可以在S209之前执行,也可以在S209之后执行,或者可以同时执行,本申请实施例对S208和S209的执行顺序不做限定。
上述S201-S209的具体描述请参考S101-S109。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例还提供一种管理节点300,例如图1中的管理节点110。如图9所示,为本申请实施例提供的一种管理节点300的结构示意图。
其中,管理节点300包括:获取单元301,用于获取目标作业的资源需求;资源需求包括计算资源需求以及存储资源需求;处理单元302,用于基于目标作业的资源需求确定一个或多个目标计算节点,一个或多个目标计算节点满足目标作业的资源需求;发送单元303,用于将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行。
一些实施方式中,处理单元302具体用于,获取多个计算节点的可用资源信息,可用资源信息包括可用计算资源信息,以及可用存储资源信息;基于每个计算节点的可用资源信息,确定一个或多个目标计算节点;其中一个或多个目标计算节点的可用资源大于或等于目标作业的资源需求。
一些实施方式中,管理节点储存有资源信息表,资源信息表用于记录多个计算节点的资源信息,资源信息包括可用资源信息,获取单元301具体用于,基于资源信息表中记录的多个计算节点的资源信息,获取多个计算节点的可用资源信息。
一些实施方式中,发送单元303还用于,分别向多个计算节点发送第一指示;第一指示用于指示计算节点返回各自的可用资源信息;处理单元302还用于,基于多个计算节点返回的可用资源信息,修正资源信息表中记录的多个计算节点的可用资源信息。
一些实施方式中,将目标作业下发至一个或多个目标计算节点,以使目标作业在一个或多个目标计算节点中被执行之后,处理单元302还用于,基于一个或多个目标计算节点中用于处理目标作业所占用的资源,更新资源信息表中记录的一个或多个目标计算节点的可用资源信息。
一些实施方式中,管理节点储存有资源信息表,资源信息表用于记录多个计算节点的资源信息,处理单元302还用于,在接收到目标作业执行完成的响应消息的情况下,回收一个或多个目标计算节点上为目标作业分配的资源,并相应更新资源信息表记录的一个或多个目标计算节点的可用资源信息。
一些实施方式中,发送单元303具体用于,将目标作业拆分为多个子作业;向一个或多个目标计算节点发送任务信息,任务信息包括待执行的子作业和执行待执行的子作业需要的资源。
一些实施方式中,将目标作业下发至一个或多个目标计算节点之前,处理单元302还用于,基于目标作业需要的目标计算资源,确定执行目标作业的一个或多个CPU;发送单元303具体用于,向一个或多个目标计算节点发送任务信息,任务信息包括:执行目标作业需要的资源和执行目标作业的一个或多个CPU;目标作业需要的资源包括目标计算资源和目标存储资源,目标计算资源包括目标CPU核数。
一些实施方式中,计算资源需求包括CPU核数需求,存储资源需求包括内存带宽需求。
一些实施方式中,存储资源需求包括内存带宽需求和L3 cache需求。
本申请实施例还提供一种计算节点400,例如图1中的计算节点120。如图10所示,为本申请实施例提供的一种计算节点400的结构示意图。
其中,计算节点400包括:接收单元401,用于接收管理节点发送的任务信息;任务信息包括待执行的作业,和目标资源,待执行的作业为目标作业,或者为目标作业的子作业,目标资源为执行待执行的作业需要的资源,目标资源包括目标计算资源和目标存储资源;处理单元402,用于为待执行的作业分配目标资源,执行待执行的作业。
一些实施方式中,任务信息包括执行待执行的作业的一个或多个CPU,为待执行的作业分配目标资源,执行待执行的作业之前,处理单元402还用于,基于任务信息,将待执行的作业分发到一个或多个CPU上;为待执行的作业分配一个或多个CPU上的目标资源,在一个或多个CPU上执行待执行的作业。
一些实施方式中,目标存储资源包括目标内存带宽,为待执行的作业分配目标资源后,处理单元402还用于,对目标内存带宽进行物理隔离。
当然,本申请实施例提供的管理节点300或计算节点400包括但不限于上述模块。
图11是本申请实施例提供的服务器500的结构示意图。如图11所示,该服务器500包括处理器501、存储器502和网络接口503。
其中,处理器501包括一个或多个CPU。该CPU可以为单核CPU(single-CPU)或多核CPU(multi-CPU)。
存储器502包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread-onlymemory,EPROM)、快闪存储器、或光存储器等。
一些实施方式中,处理器501通过读取存储器502中保存的指令实现本申请实施例提供的作业调度方法,或者,处理器501通过内部存储的指令实现本申请实施例提供的作业调度方法。在处理器501通过读取存储器502中保存的指令实现上述实施例中的方法的情况下,存储器502中保存实现本申请实施例提供的作业调度方法的指令。
网络接口503,包含发送器和接收器的一类装置,用于与其他设备或通信网络通信,可以是有线接口(端口),例如光纤分布式数据接口(fiber distributed datainterface,FDDI)、千兆以太网接口(gigabit ethernet,GE)。或者,网络接口503是无线接口。应理解,网络接口503包括多个物理端口,网络接口503用于通信等。
一些实施方式中,服务器500还包括总线504,上述处理器501、存储器502、网络接口503通常通过总线504相互连接,或采用其他方式相互连接。
在实际实现时,获取单元301、处理单元302和发送单元303,或者,接收单元401和处理单元402可以由处理器调用存储器中的计算机程序代码来实现。其具体的执行过程可参考上述方法部分的描述,这里不再赘述。
本申请另一实施例还提供一种服务器,包括存储器和处理器。存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。其中,当处理器执行该计算机指令时,使得该服务器执行上述方法实施例所示的作业调度方法的各个步骤。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在服务器上运行时,使得服务器执行上述方法实施例所示的作业调度方法流程中服务器执行的各个步骤。
本申请另一实施例还提供一种芯片系统,该芯片系统应用于服务器。该芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联。接口电路用于从服务器的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当服务器的处理器执行计算机指令时,服务器执行上述方法实施例所示的作业调度方法流程中服务器执行的各个步骤。
在本申请另一实施例中还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在服务器上运行时,使得服务器执行上述方法实施例所示的作业调度方法流程中服务器执行的各个步骤。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,上述实施例可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、服务器或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (15)

1.一种作业调度方法,其特征在于,应用于服务器集群中的管理节点,所述管理节点与所述服务器集群中的多个计算节点通信,所述方法包括:
获取目标作业的资源需求;所述资源需求包括计算资源需求以及存储资源需求;
基于所述目标作业的资源需求确定一个或多个目标计算节点,所述一个或多个目标计算节点满足所述目标作业的资源需求;
将所述目标作业下发至所述一个或多个目标计算节点,以使所述目标作业在所述一个或多个目标计算节点中被执行。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标作业的资源需求确定一个或多个目标计算节点,所述一个或多个目标计算节点满足所述目标作业的资源需求,包括:
获取所述多个计算节点的可用资源信息,所述可用资源信息包括可用计算资源信息,以及可用存储资源信息;
基于每个所述计算节点的可用资源信息,确定一个或多个目标计算节点;其中所述一个或多个目标计算节点的可用资源大于或等于所述目标作业的资源需求。
3.根据权利要求2所述的方法,其特征在于,所述管理节点储存有资源信息表,所述资源信息表用于记录所述多个计算节点的资源信息,所述资源信息包括所述可用资源信息,所述获取所述多个计算节点的可用资源信息,包括:
基于所述资源信息表中记录的多个计算节点的资源信息,获取所述多个计算节点的可用资源信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
分别向所述多个计算节点发送第一指示;所述第一指示用于指示所述计算节点返回各自的所述可用资源信息;
基于所述多个计算节点返回的可用资源信息,修正所述资源信息表中记录的所述多个计算节点的可用资源信息。
5.根据权利要求3或4所述的方法,其特征在于,所述将所述目标作业下发至所述一个或多个目标计算节点,以使所述目标作业在所述一个或多个目标计算节点中被执行之后,所述方法还包括:
基于所述一个或多个目标计算节点中用于处理所述目标作业所占用的资源,更新所述资源信息表中记录的所述一个或多个目标计算节点的可用资源信息。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述管理节点储存有资源信息表,所述资源信息表用于记录所述多个计算节点的资源信息,所述方法还包括:
在接收到所述目标作业执行完成的响应消息的情况下,回收所述一个或多个目标计算节点上为所述目标作业分配的资源,并相应更新所述资源信息表记录的所述一个或多个目标计算节点的可用资源信息。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述目标作业下发至所述一个或多个目标计算节点,包括:
将所述目标作业拆分为多个子作业;
向所述一个或多个目标计算节点发送任务信息,所述任务信息包括待执行的子作业和执行所述待执行的子作业需要的资源。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述目标作业下发至所述一个或多个目标计算节点之前,所述方法还包括:
基于所述目标作业需要的目标计算资源,确定执行所述目标作业的一个或多个中央处理器CPU;
所述将所述目标作业下发至所述一个或多个目标计算节点,包括:
向所述一个或多个目标计算节点发送任务信息,所述任务信息包括:执行所述目标作业需要的资源和执行所述目标作业的一个或多个CPU;所述目标作业需要的资源包括所述目标计算资源和目标存储资源,所述目标计算资源包括目标CPU核数。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述计算资源需求包括CPU核数需求,所述存储资源需求包括内存带宽需求。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述存储资源需求包括内存带宽需求和三级缓存L3 cache需求。
11.一种作业调度方法,其特征在于,所述方法应用于服务器集群中的计算节点,所述计算节点与所述服务器集群中的管理节点通信,所述方法包括:
接收所述管理节点发送的任务信息;所述任务信息包括待执行的作业,和目标资源,所述待执行的作业为目标作业,或者为所述目标作业的子作业,所述目标资源为执行所述待执行的作业需要的资源,所述目标资源包括目标计算资源和目标存储资源;
为所述待执行的作业分配所述目标资源,执行所述待执行的作业。
12.根据权利要求11所述的方法,其特征在于,所述任务信息包括执行所述待执行的作业的一个或多个中央处理器CPU,所述为所述待执行的作业分配所述目标资源,执行所述待执行的作业之前,所述方法还包括:
基于所述任务信息,将所述待执行的作业分发到所述一个或多个CPU上;
所述为所述待执行的作业分配所述目标资源,执行所述待执行的作业,包括:
为所述待执行的作业分配所述一个或多个CPU上的所述目标资源,在所述一个或多个CPU上执行所述待执行的作业。
13.根据权利要求11或12所述的方法,其特征在于,所述目标存储资源包括目标内存带宽,所述为所述待执行的作业分配所述目标资源后,所述方法还包括:
对所述目标内存带宽进行物理隔离。
14.一种服务器集群,其特征在于,包括多个服务器,所述多个服务器分为管理节点和多个计算节点;
所述管理节点包括:作业接收模块、资源管理中心模块和存储资源管理模块;
所述作业接收模块,用于接收作业请求,并将所述作业请求发送至所述资源管理中心模块;所述作业请求用于请求为目标作业分配资源,并执行所述目标作业;
所述资源管理中心模块,用于基于所述目标作业的资源需求,调用所述存储资源管理模块,确定所述多个计算节点的存储资源;所述资源需求包括计算资源需求和存储资源需求;所述资源管理中心模块还用于基于所述多个计算节点的资源,确定执行所述目标作业的一个或多个目标计算节点;
所述存储资源管理模块,用于管理所述多个计算节点的存储资源;
所述计算节点包括:作业执行模块、存储资源分配模块和内存带宽接口;
所述作业执行模块,用于接收所述资源管理中心模块分发的作业,以及在所述资源管理中心模块的指示下,调用存储资源分配模块为所述作业分配所指示的存储资源;所述存储资源包括内存带宽;
所述存储资源分配模块,用于在所述作业执行模块的指示下,通过所述内存带宽接口为所述作业分配所指示的存储资源;所述存储资源分配模块还用于,在所述作业执行完成后,释放为所述作业分配的存储资源;
所述内存带宽接口,用于分配所述内存带宽,并对已分配的内存带宽进行物理隔离。
15.一种服务器,其特征在于,包括存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;其中,当所述服务器执行所述计算机指令时,使得所述服务器执行如权利要求1-13中任意一项所述的方法。
CN202311798795.0A 2023-12-25 2023-12-25 一种作业调度方法、服务器及服务器集群 Pending CN117950825A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311798795.0A CN117950825A (zh) 2023-12-25 2023-12-25 一种作业调度方法、服务器及服务器集群

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311798795.0A CN117950825A (zh) 2023-12-25 2023-12-25 一种作业调度方法、服务器及服务器集群

Publications (1)

Publication Number Publication Date
CN117950825A true CN117950825A (zh) 2024-04-30

Family

ID=90797478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311798795.0A Pending CN117950825A (zh) 2023-12-25 2023-12-25 一种作业调度方法、服务器及服务器集群

Country Status (1)

Country Link
CN (1) CN117950825A (zh)

Similar Documents

Publication Publication Date Title
US11194626B2 (en) Dynamic resource allocation based on data transferring to a tiered storage
CN105426245B (zh) 包括分散的部件的动态地组成的计算节点
US11700300B2 (en) Cluster resource management in distributed computing systems
US11102287B2 (en) Minimizing service restart by optimally resizing service pools
US8156179B2 (en) Grid-enabled, service-oriented architecture for enabling high-speed computing applications
EP3281359B1 (en) Application driven and adaptive unified resource management for data centers with multi-resource schedulable unit (mrsu)
US20170031622A1 (en) Methods for allocating storage cluster hardware resources and devices thereof
US8190682B2 (en) Managing execution of programs by multiple computing systems
US8024497B2 (en) Distributing virtual input/output operations across multiple logical partitions
US11106508B2 (en) Elastic multi-tenant container architecture
KR101781063B1 (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
US20190250946A1 (en) Migrating a software container taking into account resource constraints
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
CN110221920B (zh) 部署方法、装置、存储介质及系统
US20230222006A1 (en) Container Orchestration System
US8458702B1 (en) Method for implementing user space up-calls on java virtual machine before/after garbage collection
CN112749002A (zh) 一种集群资源动态管理的方法和装置
CN114024962B (zh) 一种数据传输方法及装置
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
CN113535319A (zh) 一种实现多rdma网卡虚拟化的方法、设备及存储介质
WO2019159875A1 (ja) 配置構成装置、および、配置構成方法
CN115934624A (zh) 多主机远程直接内存访问网络管理的方法、设备及介质
CN117950825A (zh) 一种作业调度方法、服务器及服务器集群
CN112099728B (zh) 一种执行写操作、读操作的方法及装置
CN115469979A (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