CN115098269A - 一种资源分配方法、装置、电子设备及存储介质 - Google Patents
一种资源分配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115098269A CN115098269A CN202210883204.9A CN202210883204A CN115098269A CN 115098269 A CN115098269 A CN 115098269A CN 202210883204 A CN202210883204 A CN 202210883204A CN 115098269 A CN115098269 A CN 115098269A
- Authority
- CN
- China
- Prior art keywords
- target
- node
- numa
- numa node
- determining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013468 resource allocation Methods 0.000 title claims abstract description 47
- 238000013507 mapping Methods 0.000 claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 16
- 238000007726 management method Methods 0.000 description 29
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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 load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明实施例公开了一种资源分配方法、装置、电子设备及存储介质。该方法包括获取预先为目标作业分配的目标计算节点和每个目标计算节点的逻辑处理器需求数量;确定每个目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系;根据每个NUMA节点的映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级;根据优先级和目标作业对于每个目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配目标NUMA节点的设定数量的空闲逻辑处理器给目标作业,实现了基于NUMA结构的负载均衡进行资源分配,减少了因跨NUMA节点访问内存而导致内存访问速度降低的情况发生,提高了作业运行速度。
Description
技术领域
本发明实施例涉及资源调度领域,尤其涉及一种资源分配方法、装置、电子设备及存储介质。
背景技术
SLURM(Simple Linux Utility for Resource Management,用于资源管理的简单Linux实用程序)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统。
相关技术中,SLURM在计算节点内为申请逻辑处理器的目标作业分配逻辑处理器时,按照在各个NUMA(Non Uniform Memory Access,非统一内存访问)节点间轮询的方式分配空闲逻辑处理器给目标作业。例如,当一个目标作业占用的逻辑处理器数量超过一个时,采用轮询方式对目标作业进行逻辑CPU分配。当一个目标作业只占用一个逻辑处理器时,每次对目标作业进行逻辑处理器分配,均从第一个NUMA节点开始检查是否有空闲的逻辑处理器。当作业脚本中指定cpus-per-task大于1时,需要占用多个逻辑处理器,此时将同一个NUMA节点的逻辑处理器优先分配给目标作业。
然而,对于采用轮询方式进行逻辑CPU分配的情况,由于没有考虑同一个NUMA节点的逻辑处理器和内存的匹配关系,未考虑NUMA结构的负载均衡。对于其余两种分配方式,均会优先分配同一NUMA节点的多个逻辑处理器给作业,而其余NUMA节点处于空闲状态;当被分配的逻辑处理器所需使用的内存超过逻辑处理器所在NUMA节点的内存时,会跨NUMA节点访问内存,内存访问速度降低。
一方面,相关技术中的方案在分配逻辑处理器时,未考虑NUMA结构的负载均衡,导致被分配的逻辑处理器可能需要跨NUMA节点访问内存,存在负载不均衡的问题;另一方面,相关技术中的方案由于跨NUMA节点访问内存,由于NUMA节点处理器访问本地NUMA节点储存器的速度比访问非本地NUMA节点存储器的速度更快,跨NUMA节点访问内存,会使内存访问速度降低,进而,导致目标作业的运行速度降低。
发明内容
本发明实施例提供了一种资源分配方法、装置、电子设备及存储介质,解决了负载不均衡的问题,还解决了因跨NUMA节点访问内存而导致内存访问速度降低的问题。
根据本发明的一方面,提供了一种资源分配方法,包括:
获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量;
确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系;
根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级;
根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
可选地,在分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业之后,还包括:
根据分配给所述目标作业的空闲逻辑处理器的数量确定逻辑处理器分配数量;
在所述逻辑处理器分配数量小于逻辑处理器总需求数量时,执行根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级步骤;
在所述逻辑处理器分配数量等于所述逻辑处理器总需求数量时,确定完成所述目标作业的资源分配。通过上述方式在满足目标作业的逻辑处理器需求数量之前,优先将具有较多剩余内存以及空闲逻辑处理器数量的NUMA节点的处理器资源分配给目标作业,减少分配给目标作业的逻辑处理器跨NUMA节点访问内存的情况。
可选地,所述确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系,包括:
确定每个所述目标计算节点中每个NUMA节点的内存量与逻辑处理器数量的比值,根据所述比值确定每个NUMA节点的内存量和逻辑处理器数量的映射关系。通过每个NUMA节点的内存量与逻辑处理器数量的比值确定将内存量映射为逻辑处理器数量的映射关系,基于映射关系简化了剩余资源确定方式。
可选地,在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之后,还包括:
根据每个NUMA节点的优先级顺序和节点标识生成NUMA节点的优先级列表。通过优先级列表的方式按照优先级顺序存储NUMA节点标识,可以快速获取优先级最高的NUMA节点,提高查询速度。
可选地,所述根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,包括:
根据NUMA节点的优先级列表中的优先级顺序和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量,确定目标NUMA节点。通过优先级顺序和目标计算节点需提供的逻辑处理器数量确定目标NUMA节点,实现在基于NUMA结构的负载均衡进行资源分配的同时,兼顾计算节点的负载均衡。
可选地,所述根据NUMA节点的优先级列表中的优先级顺序和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量,确定目标NUMA节点,包括:
根据NUMA节点的优先级列表中的优先级顺序确定一个备选NUMA节点;
对于比较所述备选NUMA节点所属目标计算节点,比较已提供的逻辑处理器数量和所述需提供的逻辑处理器需求数量;
在比较结果满足设定条件时,将所述备选NUMA节点确定为目标NUMA节点。通过备选NUMA节点所属目标计算节点已提供的逻辑处理器数量和需提供的逻辑处理器数量的比较结果,确定备选NUMA节点是否为目标NUMA节点,实现了在资源分配时兼顾计算节点的负载均衡。
可选地,在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之前,还包括:
获取所述目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量;
根据所述目标计算节点中的每个NUMA节点的内存量和内存占用量,确定对应NUMA节点的剩余内存量;
根据所述目标计算节点中的每个NUMA节点的逻辑处理器数量和逻辑处理器占用量,确定空闲逻辑处理器数量。通过上述方式实现在每次计算优先级之前,确定剩余内存量和空闲逻辑处理器数量。
根据本发明的另一方面,提供了一种资源分配装置,包括:
节点获取模块,用于获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量;
关系确定模块,用于确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系;
优先级确定模块,用于根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级;
逻辑处理器分配模块,用于根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
可选地,所述装置还包括:
分配数量确定模块,用于在分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业之后,根据分配给所述目标作业的空闲逻辑处理器的数量确定逻辑处理器分配数量;
在所述逻辑处理器分配数量小于逻辑处理器总需求数量时,执行根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级步骤;在所述逻辑处理器分配数量等于所述逻辑处理器总需求数量时,确定完成所述目标作业的资源分配。
可选地,关系确定模块具体用于:
确定每个所述目标计算节点中每个NUMA节点的内存量与逻辑处理器数量的比值,根据所述比值确定每个NUMA节点的内存量和逻辑处理器数量的映射关系。
可选地,所述装置还包括:
优先级列表生成模块,用于在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之后,根据每个NUMA节点的优先级顺序和节点标识生成NUMA节点的优先级列表。
可选地,逻辑处理器分配模块具体用于:
根据NUMA节点的优先级列表中的优先级顺序和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量,确定目标NUMA节点。
进一步地,逻辑处理器分配模块具体用于:
根据NUMA节点的优先级列表中的优先级顺序确定一个备选NUMA节点;
对于比较所述备选NUMA节点所属目标计算节点,比较已提供的逻辑处理器数量和所述需提供的逻辑处理器需求数量;
在比较结果满足设定条件时,将所述备选NUMA节点确定为目标NUMA节点。
可选地,所述装置还包括:
占用量获取模块,用于在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之前,获取所述目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量;
剩余内存量确定模块,用于根据所述目标计算节点中的每个NUMA节点的内存量和内存占用量,确定对应NUMA节点的剩余内存量;
空闲逻辑处理器数量确定模块,用于根据所述目标计算节点中的每个NUMA节点的逻辑处理器数量和逻辑处理器占用量,确定空闲逻辑处理器数量。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的资源分配方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的资源分配方法。
本发明实施例的技术方案,通过确定目标计算节点中的每个NUMA节点的内存量和逻辑处理器数量的映射关系,根据每个NUMA节点的映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级,根据优先级分配目标NUMA节点的空闲逻辑处理器给目标作业,实现了基于NUMA结构的负载均衡进行资源分配,减少分配给目标作业的逻辑处理器跨NUMA节点访问内存的情况,减少了因跨NUMA节点访问内存而导致内存访问速度降低的情况发生,提高了作业运行速度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种采用SLURM管理的集群架构图;
图2为本发明实施例提供的一种资源分配方法的流程图;
图3为本发明实施例提供的另一种资源分配方法的流程图;
图4为本发明实施例提供的又一种资源分配方法的流程图;
图5为本发明实施例提供的一种资源分配装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例适用的一种采用SLURM管理的集群架构图。SLURM为一种开源的、容错较好的,具有高可伸缩性的集群作业调度系统。SLURM的主要作用包括:分配计算资源、执行工作任务等;SLURM提供框架用于在分配的节点集上启动、执行、监视作业;以及,仲裁资源争夺等问题。SLURM可以实现多种资源的管理和分配,包括CPU资源、内存资源和GPU资源等。
如图1所示,集群包括管理节点110和计算节点120。管理节点110可以包括主管理节点和冗余管理节点(冗余管理节点可以为零,也可以为一个、两个或多个)。SLURM通过管理节点110来管理集群中的计算节点120。具体地,SLURM通过管理守护程序实现对计算资源的监视、分配和管理,并将接收的作业序列映射和分发到各个计算节点120上。每个计算节点120也有一个守护程序,通过守护程序管理计算节点120中的NUMA节点,监视NUMA节点上运行的任务、接收来自管理节点的请求和作业,将作业映射到计算节点内部的NUMA节点等等。
需要说明的是,图1示出的集群架构图可以理解为一种示例,并非对本发明实施例的限定,任何采用SLURM管理的集群的架构或集群架构的变形均应视为本发明实施例中所述的集群。
图2为本发明实施例提供的一种资源分配方法的流程图,本实施例可适用于为作业分配资源的情况,该方法可以由资源分配装置来执行,该资源分配装置可以采用硬件和/或软件的形式实现,该资源分配装置可配置于集群中的管理节点中。如图2所示,该方法包括:
S210、获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量。
其中,目标作业为向管理节点发送作业提交请求的作业。作业可以包含一组关联的资源分配请求,以及一组关联的处理过程。
操作系统可以使用逻辑处理器(例如逻辑CPU)来模拟物理处理器(例如物理CPU)。在不开启超线程时,逻辑CPU是单核处理器或多核处理器的一个物理内核;在开启超线程时,每个物理CPU内核等同于两个逻辑CPU。
逻辑处理器需求数量为目标作业向管理节点请求的逻辑处理器的数量。例如,逻辑处理器需求数量为目标作业向管理节点请求的逻辑CPU内核数量。
目标计算节点为调度系统根据当前集群中各计算节点的剩余内存量和空闲CPU数量,确定的满足逻辑处理器需求数量要求的计算节点。例如,通过SLURM调度系统按照预设的分配规则为目标作业分配的目标计算节点,并确定目标作业对于每个目标计算节点的逻辑处理器需求数量。
需要说明的是,SLURM调度系统获取当前集群中各计算节点的资源拓扑结构,根据资源拓扑结构和资源分配信息,确定各计算节点的剩余内存量和空闲CPU数量。其中,资源拓扑结构包括逻辑处理器数量和各个NUMA节点的内存量。NUMA是一种用于多处理器的电脑记忆体设计,NUMA节点的内存访问时间取决于处理器的内存位置。NUMA提供分离的存储器给各个处理器,处理器访问本地NUMA节点存储器的速度比非本地NUMA节点存储器的速度更快。
获取当前集群中各计算节点的资源拓扑结构的方式有很多种,本发明实施例并不作具体限定。例如,利用设定软件来获取当前集群中各个计算节点中的各个NUMA节点的逻辑CPU数量和各个NUMA节点的内存量。例如,利用hwloc来获取当前集群中各个计算节点中的各个NUMA节点的逻辑CPU数量和各个NUMA节点的内存量。其中,hwloc为一个可以收集各种系统属性(例如CPU拓扑和内存信息等)的软件。或者,利用/proc/cpuinfo来获取当前集群中各个计算节点中的各个NUMA节点的逻辑CPU数量和各个NUMA节点的内存量。
需要说明的是,如果不存在满足资源分配需求的目标计算节点,则将目标作业加入设定任务队列进行排队,直至出现满足资源分配需求的目标计算节点,将目标作业从设定任务队列中出队,将目标计算节点确定为满足目标作业的逻辑处理器需求数量的计算节点。
S220、确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系。
其中,映射关系为每个NUMA节点的内存量与逻辑处理器数量之间的比例关系。可以基于每个NUMA节点的内存量和逻辑处理器数量之间的比例关系,确定每个NUMA节点可以将内存量等价为逻辑处理器的等价数量。
示例性地,确定每个目标计算节点中每个NUMA节点的内存量与逻辑处理器数量的比值,根据比值确定每个NUMA节点的内存量和逻辑处理器数量的映射关系。
具体地,根据各个目标计算节点中的每个NUMA节点的内存量和每个NUMA节点的逻辑处理器数量,确定单个NUMA节点的内存量与逻辑处理器数量的比值,将所述比值作为对应NUMA节点的内存量和逻辑处理器数量的映射关系。
S230、根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级。
其中,剩余内存量为NUMA节点的内存量减去已占用内存量后的剩余量。空闲逻辑处理器数量为NUMA节点的逻辑处理器数量减去已占用逻辑处理器数量后的剩余量。
示例性地,管理节点获取目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量。例如,管理节点根据目标计算节点的已分配资源信息,确定目标计算节点中每个NUMA节点的内存占用量和逻辑处理器占用量。由于管理节点负责分配计算节点上的资源,且计算节点上的资源包括各个NUMA节点的逻辑处理器资源和内存资源,若将已分配资源视为被占用资源,则管理节点根据已分配资源信息可以确定目标计算节点中每个NUMA节点的内存占用量和逻辑处理器占用量。
根据目标计算节点中的每个NUMA节点的内存量和内存占用量,确定对应NUMA节点的剩余内存量。例如,目标计算节点中的每个NUMA节点的总的内存量减去内存占用量,得到对应NUMA节点的剩余内存量。
根据目标计算节点中的每个NUMA节点的逻辑处理器数量和逻辑处理器占用量,确定空闲逻辑处理器数量。例如,目标计算节点中的每个NUMA节点的总的逻辑处理器数量减去逻辑处理器占用量,得到对应NUMA节点的空闲逻辑处理器数量。
示例性地,根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级包括:将目标计算节点中的各NUMA节点分别作为当前NUMA节点,根据当前NUMA节点对应的映射关系和剩余内存量,确定当前NUMA节点的剩余内存量等价为空闲逻辑处理器的等价数量。根据当前NUMA节点的空闲逻辑处理器数量和空闲逻辑处理器的等价数量确定当前NUMA节点的优先级。
假设以NUMA_node[i]表示目标计算节点中第i个NUMA节点,则NUMA节点的内存量和逻辑处理器数量的映射关系可以通过下式表示:
映射关系=NUMA_node[i].内存量/NUMA_node[i].逻辑处理器数量。
假设以NUMA_node[i].剩余内存量表示目标计算节点中第i个NUMA节点的剩余内存量,NUMA_node[i].空闲逻辑处理器数量表示目标计算节点中第i个NUMA节点的空闲逻辑处理器数量,则该第i个NUMA节点的优先级可以通过下式表示:
优先级=NUMA_node[i].剩余内存量/映射关系+NUMA_node[i].空闲逻辑处理器数量。
例如,某个目标计算节点包括3个NUMA节点,其中,第一个NUMA节点的内存量为16GB,逻辑处理器数量为8个,第二个NUMA节点的内存量为5GB,逻辑处理器数量为4个;第三个NUMA节点的内存量为8GB,逻辑处理器数量为4个。
相应地,第一个NUMA节点对应的内存量和逻辑处理器数量的映射关系为16/8,第二个NUMA节点对应的内存量和逻辑处理器数量的映射关系为5/4,第三个NUMA节点对应的内存量和逻辑处理器数量的映射关系为8/4。假设第一个NUMA节点的剩余内存量为2GB,空闲逻辑处理器数量为3个,则第一个NUMA节点的优先级为2*16/8+3=7。假设第二个NUMA节点的剩余内存量为3GB,空闲逻辑处理器数量为2个,则第二个NUMA节点的优先级为3*5/4+2=5.75。假设第三个NUMA节点的剩余内存量为5GB,空闲逻辑处理器为3个,则第三个NUMA节点的优先级为5*8/4+3=13。
根据目标计算节点包括的3个NUMA节点的优先级可以确定第三个NUMA节点的优先级高于第一个NUMA节点的优先级,第一个NUMA节点的优先级高于第二个NUMA节点的优先级。
可以理解的是,可以采用相似的方式获取其它目标计算节点包含的各NUMA节点的优先级,此处不再赘述。
S240、根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
其中,优先级列表基于各目标计算节点包括的各个NUMA节点的优先级生成。可选地,优先级列表中各个NUMA节点按照优先级顺序排列。
示例性地,根据每个NUMA节点的优先级顺序和节点标识生成优先级列表。如果目标计算节点仅有一个,则根据该目标计算节点包括的NUMA节点的优先级顺序和各NUMA节点的节点标识生成优先级列表。如果目标计算节点为至少两个,则根据所有目标计算节点包括的NUMA节点的优先级顺序和各NUMA节点的节点标识生成优先级列表。
本发明实施例中,根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业包括:管理节点查询优先级列表,获取满足条件的目标NUMA节点的节点标识。管理节点根据该节点标识确定集群中对应的NUMA节点所属的目标计算节点,根据目标作业对应该目标计算节点的逻辑处理器需求数量确定是否将节点标识对应的NUMA节点作为目标NUMA节点。如果将节点标识对应的NUMA节点作为目标NUMA节点,则分配目标NUMA节点的一个逻辑处理器分配给目标作业。
需要说明的是,将逻辑处理器分配给目标作业可以理解为将逻辑处理器对应的处理器资源分配给目标作业。处理器资源包括CPU资源以及内存资源。
例如,满足条件的目标NUMA节点可以为优先级列表中优先级最高的一个NUMA节点。本发明实施例通过确定目标计算节点中的每个NUMA节点的内存量和逻辑处理器数量的映射关系,根据每个NUMA节点的映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级,根据优先级分配目标NUMA节点的空闲逻辑处理器给目标作业,实现了基于NUMA结构的负载均衡进行资源分配,减少分配给目标作业的逻辑处理器跨NUMA节点访问内存的情况,减少了因跨NUMA节点访问内存而导致内存访问速度降低的情况发生,提高了作业运行速度。
图3为本发明实施例提供的另一种资源分配方法的流程图,本实施例在上述实施例的基础上附加了根据逻辑处理器分配数量判断是否完成目标作业的资源分配的特征。如图3所示,该方法包括:
S310、获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量。
S320、确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系。
S330、根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级。
S340、根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
S350、根据分配给所述目标作业的空闲逻辑处理器的数量确定逻辑处理器分配数量。
示例性地,管理节点在每分配目标NUMA节点的一个逻辑处理器给目标作业之后,统计已经分配给目标作业的逻辑处理器数量,作为逻辑处理器分配数量。
S360、判断逻辑处理器分配数量是否小于逻辑处理器总需求数量,若是,则执行S330,否则执行S370。
其中,逻辑处理器总需求数量为目标作业对于每个目标计算节点的逻辑处理器需求数量的总和。
示例性地,比较逻辑处理器分配数量和逻辑处理器总需求数量。如果逻辑处理器分配数量未达到逻辑处理器总需求数量,则管理节点重新计算目标计算节点包括的所有NUMA节点的优先级,并根据优先级和目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配目标NUMA节点的设定数量的空闲逻辑处理器给目标作业,直至逻辑处理器分配数量等于逻辑处理器总需求数量为止。需要说明的是,优先级计算方式与上述实施例相同,此处不再赘述。
S370、在逻辑处理器分配数量等于所述逻辑处理器总需求数量时,确定完成所述目标作业的资源分配。
示例性地,如果逻辑处理器分配数量等于逻辑处理器总需求数量,则确定完成目标作业的资源分配。
本发明实施例通过在逻辑处理器分配数量小于逻辑处理器总需求数量时,重新根据每个NUMA节点的映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级,再根据优先级和目标作业对于每个目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配目标NUMA节点的设定数量的空闲逻辑处理器对应的处理器资源给目标作业,实现优先将具有较多剩余内存以及空闲逻辑处理器数量的NUMA节点的处理器资源分配给目标作业,进一步减少分配给目标作业的逻辑处理器跨NUMA节点访问内存的情况,提高了作业运行速度。
图4为本发明实施例提供的又一种资源分配方法的流程图,本实施例在上述实施例的基础上对目标NUMA节点的确定方式进行进一步限定。如图4所示,该方法包括:
S401、获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量。
S402、确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系。
S403、获取所述目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量。
示例性地,通过解析设定命令的返回结果,获取所述目标计算节点中每个NUMA节点的内存占用量。例如,设定命令可以为numatcl-H命令,其中,numatcl为一个可用于查看服务器的NUMA节点配置和节点状态,以及将进程绑定到指定处理器内核的Linux工具。
管理节点在收到目标作业提交的资源分配请求时,通过解析numatcl-H命令的返回结果,获取目标计算节点中每个NUMA节点的内存使用状态。
管理节点根据目标计算节点对应的已分配的逻辑处理器数量确定逻辑处理器占用量。
S404、根据所述目标计算节点中的每个NUMA节点的内存量和内存占用量,确定对应NUMA节点的剩余内存量。
示例性地,管理节点计算目标计算节点中每个NUMA节点的内存量和内存占用量的差值,得到对应NUMA节点的剩余内存量。
S405、根据所述目标计算节点中的每个NUMA节点的逻辑处理器数量和逻辑处理器占用量,确定空闲逻辑处理器数量。
示例性地,管理节点计算目标计算节点中每个NUMA节点的逻辑处理器数量与逻辑处理器占用量的差值,得到对应NUMA节点的空闲逻辑处理器数量。
S406、根据每个所述NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级。
示例性地,对于目标计算节点中的每个NUMA节点,根据映射关系、剩余内存量和空闲逻辑处理器数量,确定对应NUMA节点的优先级,优先级的确定方式已在上述实施例中记载,此处不再赘述。
S407、根据每个NUMA节点的优先级顺序和节点标识生成NUMA节点的优先级列表。
S408、根据NUMA节点的优先级列表中的优先级顺序和和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点。
本发明实施例中,根据NUMA节点的优先级列表中的优先级顺序确定一个备选NUMA节点;对于备选NUMA节点所属目标计算节点,比较已提供的逻辑处理器数量和逻辑处理器需求数量;在比较结果满足设定条件时,将备选NUMA节点确定为目标NUMA节点。
示例性地,获取NUMA节点的优先级列表中优先级最高的第一NUMA节点,获取第一NUMA节点所属的第一目标计算节点对应的逻辑处理器第一分配数量,判断逻辑处理器第一分配数量是否小于目标作业对于第一目标计算节点的逻辑处理器需求数量,若是,则将第一NUMA节点确定为目标NUMA节点;否则,获取优先级仅次于第一NUMA节点的第二NUMA节点,获取第二NUM节点所属的第二目标计算节点对应的逻辑处理器第二分配数量,判断逻辑处理器第二分配数量是否小于目标作业对于第二目标计算节点的逻辑处理器需求数量,若是,则将第二NUMA节点确定为目标NUMA节点,否则,重复上述过程直至获取目标NUMA节点为止。
具体地,假设SLURM调度系统确定目标计算节点A需要提供4个逻辑处理器,以及目标计算节点B需要提供6个逻辑处理器,但是目标计算节点包括6个NUMA节点,目标计算节点B包括8个NUMA节点。假设已经得到NUMA节点的优先级列表,其中,NUMA节点的优先级列表包括目标计算节点A和目标计算节点B对应的所有NUMA节点。在第一次资源分配时,将优先级最高的NUMA节点确定为目标NUMA节点,分配目标NUMA节点的设定数量的空闲逻辑处理器对应的处理器资源给目标作业。比较逻辑处理器分配数量和逻辑处理器需求数量。其中,逻辑处理器分配数量为管理节点已分配给目标作业的逻辑处理器的数量。
在逻辑处理器分配数量小于所述逻辑处理器需求数量时,管理节点获取目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量,并根据每个NUMA节点的内存占用量和逻辑处理器占用量,确定每个NUMA节点的剩余内存量和空闲逻辑处理器数量,重新计算目标计算节点中的每个NUMA节点的优先级,得到NUMA节点的优先级列表。将优先级列表中优先级最高的NUMA节点确定为目标NUMA节点,分配目标NUMA节点的设定数量的空闲逻辑处理器对应的处理器资源给目标作业。
重复上述步骤,在每次分配完处理器资源之后重新生成NUMA节点的优先级列表。在目标计算节点A已经提供4个逻辑处理器的情况下,若在新确定的优先级列表中目标计算节点A中的NUMA节点的优先级最高,放弃将目标计算节点A中的该优先级最高的NUMA节点作为目标NUMA节点,而是将优先级列表中目标计算节点B对应的优先级最高的NUMA节点确定为目标NUMA节点。
S409、分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
示例性地,根据目标NUMA节点的目标节点标识,将集群中目标NUMA节点的设定数量的空闲逻辑处理器分配给目标作业。
S410、根据分配给所述目标作业的空闲逻辑处理器的数量确定逻辑处理器分配数量。
S411、判断逻辑处理器分配数量是否小于逻辑处理器总需求数量,若是,则执行S406,否则执行S412。
S412、在逻辑处理器分配数量等于所述逻辑处理器总需求数量时,确定完成所述目标作业的资源分配。
本发明实施例通过根据每个目标计算节点中的每个NUMA节点的优先级,以及目标作业对于每个目标计算节点的逻辑处理器需求数量,确定目标NUMA节点,实现在基于NUMA结构的负载均衡进行资源分配的同时,兼顾计算节点的负载均衡。
图5为本发明实施例提供的一种资源分配装置的结构示意图。如图5所示,该装置包括:节点获取模块510、关系确定模块520、优先级确定模块530和逻辑处理器分配模块540。
节点获取模块510,用于获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量;
关系确定模块520,用于确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系;
优先级确定模块530,用于根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级;
逻辑处理器分配模块540,用于根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
可选地,所述装置还包括:
分配数量确定模块,用于在分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业之后,根据分配给所述目标作业的空闲逻辑处理器的数量确定逻辑处理器分配数量;
在所述逻辑处理器分配数量小于逻辑处理器总需求数量时,执行根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级步骤;在所述逻辑处理器分配数量等于所述逻辑处理器总需求数量时,确定完成所述目标作业的资源分配。
可选地,关系确定模块520具体用于:
确定每个所述目标计算节点中每个NUMA节点的内存量与逻辑处理器数量的比值,根据所述比值确定每个NUMA节点的内存量和逻辑处理器数量的映射关系。
可选地,所述装置还包括:
优先级列表生成模块,用于在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之后,根据每个NUMA节点的优先级顺序和节点标识生成NUMA节点的优先级列表。
可选地,逻辑处理器分配模块540具体用于:
根据NUMA节点的优先级列表中的优先级顺序和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量,确定目标NUMA节点。
进一步地,逻辑处理器分配模块540具体用于:
根据NUMA节点的优先级列表中的优先级顺序确定一个备选NUMA节点;
对于比较所述备选NUMA节点所属目标计算节点,比较已提供的逻辑处理器数量和所述需提供的逻辑处理器需求数量;
在比较结果满足设定条件时,将所述备选NUMA节点确定为目标NUMA节点。
可选地,所述装置还包括:
占用量获取模块,用于在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之前,获取所述目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量;
剩余内存量确定模块,用于根据所述目标计算节点中的每个NUMA节点的内存量和内存占用量,确定对应NUMA节点的剩余内存量;
空闲逻辑处理器数量确定模块,用于根据所述目标计算节点中的每个NUMA节点的逻辑处理器数量和逻辑处理器占用量,确定空闲逻辑处理器数量。
本发明实施例所提供的资源分配装置可执行本发明任意实施例所提供的资源分配方法,具备执行方法相应的功能模块和有益效果。
图6为本发明实施例提供的一种电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如资源分配方法。
在一些实施例中,资源分配方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的资源分配方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行资源分配方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种资源分配方法,其特征在于,包括:
获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量;
确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系;
根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级;
根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
2.根据权利要求1所述的方法,其特征在于,在分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业之后,还包括:
根据分配给所述目标作业的空闲逻辑处理器的数量确定逻辑处理器分配数量;
在所述逻辑处理器分配数量小于逻辑处理器总需求数量时,执行根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级步骤;
在所述逻辑处理器分配数量等于所述逻辑处理器总需求数量时,确定完成所述目标作业的资源分配。
3.根据权利要求1所述的方法,其特征在于,所述确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系,包括:
确定每个所述目标计算节点中每个NUMA节点的内存量与逻辑处理器数量的比值,根据所述比值确定每个NUMA节点的内存量和逻辑处理器数量的映射关系。
4.根据权利要求1所述的方法,其特征在于,在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之后,还包括:
根据每个NUMA节点的优先级顺序和节点标识生成NUMA节点的优先级列表。
5.根据权利要求1所述的方法,其特征在于,所述根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,包括:
根据NUMA节点的优先级列表中的优先级顺序和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量,确定目标NUMA节点。
6.根据权利要求5所述的方法,其特征在于,所述根据NUMA节点的优先级列表中的优先级顺序和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量,确定目标NUMA节点,包括:
根据NUMA节点的优先级列表中的优先级顺序确定一个备选NUMA节点;
对于所述备选NUMA节点所属目标计算节点,比较已提供的逻辑处理器数量和所述逻辑处理器需求数量;
在比较结果满足设定条件时,将所述备选NUMA节点确定为目标NUMA节点。
7.根据权利要求1所述的方法,其特征在于,在根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级之前,还包括:
获取所述目标计算节点中的每个NUMA节点的内存占用量和逻辑处理器占用量;
根据所述目标计算节点中的每个NUMA节点的内存量和内存占用量,确定对应NUMA节点的剩余内存量;
根据所述目标计算节点中的每个NUMA节点的逻辑处理器数量和逻辑处理器占用量,确定空闲逻辑处理器数量。
8.一种资源分配装置,其特征在于,包括:
节点获取模块,用于获取预先为目标作业分配的目标计算节点和每个所述目标计算节点的逻辑处理器需求数量;
关系确定模块,用于确定每个所述目标计算节点中的每个非统一内存访问NUMA节点的内存量和逻辑处理器数量的映射关系;
优先级确定模块,用于根据每个NUMA节点的所述映射关系、剩余内存量和空闲逻辑处理器数量确定对应NUMA节点的优先级;
逻辑处理器分配模块,用于根据所述优先级和所述目标作业对于每个所述目标计算节点的逻辑处理器需求数量确定目标NUMA节点,分配所述目标NUMA节点的设定数量的空闲逻辑处理器给所述目标作业。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的资源分配方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883204.9A CN115098269A (zh) | 2022-07-26 | 2022-07-26 | 一种资源分配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883204.9A CN115098269A (zh) | 2022-07-26 | 2022-07-26 | 一种资源分配方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115098269A true CN115098269A (zh) | 2022-09-23 |
Family
ID=83299308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210883204.9A Pending CN115098269A (zh) | 2022-07-26 | 2022-07-26 | 一种资源分配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098269A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115951988A (zh) * | 2023-03-03 | 2023-04-11 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
-
2022
- 2022-07-26 CN CN202210883204.9A patent/CN115098269A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115951988A (zh) * | 2023-03-03 | 2023-04-11 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10733026B2 (en) | Automated workflow selection | |
US8205205B2 (en) | Multi-objective allocation of computational jobs in client-server or hosting environments | |
EP2901312B1 (en) | Real time optimization of compute infrastructure in a virtualized environment | |
US9229783B2 (en) | Methods and apparatus for resource capacity evaluation in a system of virtual containers | |
KR101651871B1 (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
US20180143852A1 (en) | Resource management for batch jobs | |
EP2255286B1 (en) | Routing workloads and method thereof | |
US7698529B2 (en) | Method for trading resources between partitions of a data processing system | |
CN113454614A (zh) | 用于分布式计算中的资源划分的系统和方法 | |
US10313265B1 (en) | System and methods for sharing memory subsystem resources among datacenter applications | |
EP3859524A1 (en) | Serverless function colocation with storage pools | |
CN111124687A (zh) | 一种cpu资源预留方法、装置及其相关设备 | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN111338785A (zh) | 资源调度方法及装置、电子设备、存储介质 | |
CN112130997B (zh) | 一种资源分配方法及装置 | |
CN109343958B (zh) | 计算资源分配方法、装置、电子设备、存储介质 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
Li et al. | PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters | |
CN115098269A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
US10990519B2 (en) | Multi-tenant cloud elastic garbage collector | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
CN114153549A (zh) | 一种虚拟机创建方法及相关设备 | |
CN116962532A (zh) | 集群任务调度方法、装置、计算机设备及存储介质 | |
WO2022151951A1 (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 |