CN115543862A - 内存管理方法及相关装置 - Google Patents
内存管理方法及相关装置 Download PDFInfo
- Publication number
- CN115543862A CN115543862A CN202211180821.9A CN202211180821A CN115543862A CN 115543862 A CN115543862 A CN 115543862A CN 202211180821 A CN202211180821 A CN 202211180821A CN 115543862 A CN115543862 A CN 115543862A
- Authority
- CN
- China
- Prior art keywords
- memory
- computing node
- target
- target computing
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 1156
- 238000007726 management method Methods 0.000 title claims abstract description 246
- 238000000034 method Methods 0.000 claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims abstract description 61
- 239000002699 waste material Substances 0.000 abstract description 10
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 10
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000037361 pathway Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种内存管理方法及相关装置,该方法包括:管理装置获取目标任务的计算数据类型、数据规模及计算类型;根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存;若目标计算节点的内存的容量小于目标任务的需求内存容量,则向内存管理设备发送第一指示信息,第一指示信息用于指示为所述目标计算节点增加内存。基于目标任务的相关信息动态调整执行目标任务的计算节点的内存,实现了动态内存扩容,进而实现了在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费;通过内存管理设备为计算节点增加内存,避免了计算节点远程访问空闲内存,降低了传输时延,同时也减少了内存访问的链路长度。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种内存管理方法及相关装置。
背景技术
随着大数据、云计算及人工智能(artificial intelligence,AI)的兴起,数据中心及服务器的计算需求越来越高。对于高性能计算和人工智能等数据密集型计算,对于内存容量和带宽有着巨大需求。在当前的计算机协议和架构下,跨节点的内存访问,内存扩展均存在巨大挑战,成为限制系统算力提升的瓶颈,内存池化技术及动态内存扩展成为面向数据密集型计算的计算机技术演进方向。
如图1所示,对于传统数据中心,多个服务器节点放置在一个机柜里,这些节点通过高速线缆或者光纤连接交换器,如以太网交换机或者无线带宽(infiniband)交换机实现节点间互连。在现有架构下,服务器XPU对应专属内存(如中央处理器(center processingunit,CPU)的双列直插存储模块(dual inline memory modules,DIMM),图形处理器(graphics processing unit,GPU)/加速处理器(accelerated processing unit,APU)对应的图形双倍速率(graphics double data rate,GDDR)存储器或高带宽存储器(highbandwidth memory,HBM),由于缺少统一内存,现有技术只能保证XPU之间采用各种协议访问内存。不同节点之间则通过以太网或者infiniband协议的远程直接内存访问(remotedirect memory access,RDMA)协议实现节点间的内存访问,但是这些内存连接方式,均不能实现内存直接访问,其内存访问时延和带宽均受限。此外现有服务器节点内存扩展受限,不能实现动态内存扩容。如果遇到需要消耗大内存算力,服务器可能由于硬件参数受限而不发完成计算,或者服务器配置大内存,但有可能在常规场景。内存实际使用少,造成硬件参数浪费。不同节点之间内存访问链路长,带宽受限,延迟较大,不同XPU之间访问内存受限成为限制数据密集计算场景的瓶颈。
发明内容
本申请提供一种内存管理方法及相关装置,采用本申请的方案可以基于目标任务的相关信息动态调整执行目标任务的计算节点的内存,实现了动态内存扩容,并且在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费;通过内存管理设备为计算节点增加内存,与现有技术相比,避免了计算节点远程访问空闲内存,降低了传输时延,同时也减少了内存访问的链路长度。
第一方面,本申请提供一种内存管理方法,应用于管理装置,其特征在于,该管理装置应用于数据管理中心,数据管理中心还包括数据中心及内存管理设备,该数据中心包括至少一个计算节点和至少一个内存,该内存管理方法包括:
获取目标任务的计算数据类型、数据规模及计算类型;根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存;若目标计算节点的内存的容量小于目标任务的需求内存容量,则向内存管理设备发送第一指示信息,第一指示信息用于指示为目标计算节点增加内存,所述第一指示信息包括增加的第一内存的类型;目标计算节点为至少一个计算节点中执行目标任务的计算节点,目标计算节点的内存包括为至少一个内存中的一个或多个。
其中,内存与计算节点之间是基于计算高速连接(compute express link,CXL)协议进行通信的,实现内存的热插拔。
在执行目标任务的需求内存高于执行目标任务的计算节点的内存时,向内存管理设备发送指示信息,以指示内存管理设备为执行目标任务的计算节点增加内存容量,实现了动态内存扩容,并且在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费。
结合第一方面,在一个可能的实现方式中,当目标任务的需求内存的容量与所述目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,所述第一内存的类型为扩展内存模组;
当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第二阈值时,第一内存的类型为内存节点,其中,扩展内存模组的内存容量低于内存节点的内存容量。
在目标任务的需求内存高于第一阈值且不高第二阈值时,表示目标任务需求的内存不是特别大,因此在选择内存时,选择内存容量能满足目标任务,且容量小的扩展内存模组,这样可以避免内存资源的浪费。在目标任务的需求内存高于第二阈值时,表示目标任务需求的内存特别大,因此在选择内存时,若选择内存扩展模组可能需要选择多个内存扩展模组,这对于内存管理设备来说,会增加了为执行目标任务的计算节点增加内存的工作量;选择容量大的内存节点,不会增加内存管理设备的工作量。
结合第一方面,在一个可能的实现方式中,第一指示信息还包括第一内存的数量,其中,第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量,且第一内存的数量最小。
在第一内存有多个时,通过在满足目标任务的内存需求的前提下设定第一内存的数量最小,可以减小内存管理设备执行为执行目标任务的计算节点增加内存的工作量。
结合第一方面,在一个可能的实现方式中,当第一内存为内存节点时,本实施例的方法还包括:
获取执行目标任务时的交换节点的需求信息;需求信息包括带宽、时延及接口数量中的至少一项;若目标计算节点所使用的交换节点的参数低于需求信息所指示的参数,或者目标计算节点没有使用的交换节点,则第一指示信息还用于指示增加交换节点,以使第一内存通过增加的交换节点与目标计算节点连接。
在新增内存节点后,判断目标计算节点所使用的交换节点是否满足执行目标任务时的对交换节点的需求,若不满足,则增加新的交换节点,从而保证了目标任务的顺利执行。
结合第一方面,在一个可能的实现方式中,本实施例的方法还包括:
在目标计算节点执行所述目标任务时,获取目标计算节点的内存状态信息;根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存;若确定为目标计算节点增加所述第二内存,向内存管理设备发送第二指示信息,第二指示信息用于指示为目标计算节点增加所述第二内存。
在执行目标任务期间,基于目标计算节点的内存状态信息预测当前内存能否满足执行目标任务的需求,若目标计算节点当前使用的内存不能满足目标计算节点执行目标任务过程中的内存需求时,在目标计算节点执行目标任务过程中增加内存,以保证目标任务的顺利执行。
结合第一方面,在一个可能的实现方式中,内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长,第三内存为目标计算节点的内存中容量大于第三阈值的内存;根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存,包括:
若内存使用率高于第一预设使用率,且第三内存的占用时长超过第一预设时长,则确定为目标计算节点增加第二内存;或者,若从第一时刻开始,第三内存的连续占用时长超过第二预设时长,则确定为目标计算节点增加第二内存;第一时刻为内存使用率开始高于第一预设使用率的时刻。
结合第一方面,在一个可能的实现方式中,内存状态信息包括从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率;根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存,包括:
根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率;第二预设使用率是根据目标任务的类型确定的;根据目标计算节点的内存使用率超过第二预设使用率的次数及每次超过第二预设使用率的内存使用率计算得到内存使用率平均值;根据内存使用率平均值和每次超过第二预设使用率的内存使用率计算得到方差;若方差大于第一方差阈值时,则确定为目标计算节点增加第二内存。
通过上述两种方式确定是否为目标计算节点增加内存,保证了目标任务的顺利执行。
第二方面,本申请实施例提供一种内存管理方法,该方法应用于内存管理设备,内存管理设备应用于数据管理中心,数据管理中心还包括管理装置及数据中心,数据中心包括至少一个计算节点和至少一个内存,本实施例的方法包括:
确定为目标计算节点增加的第一内存的类型;目标计算节点为至少一个计算节点中的执行目标任务的一个或者多个计算节点;根据第一内存的类型获取第一内存;第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量;为目标计算节点增加第一内存,并将第一内存与目标计算节点连接。
在执行目标任务的需求内存高于执行目标任务的计算节点的内存时,通过内存管理设备为执行目标任务的计算节点增加内存容量,实现了动态内存扩容,并且在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费。
结合第二方面,在一个可能的实现方式中,确定为目标计算节点增加的第一内存的类型,包括:
获取来自管理装置的第一指示信息,该第一指示信息用于为目标机计算节点增加内存容量;第一指示信息包括第一内存的类型,第一内存的类型是管理装置根据目标任务的计算数据类型、数据规模及计算类型确定的,第一内存的类型包括扩展内存模组或者内存节点。
结合第二方面,在一个可能的实现方式中,第一指示信息还包括第一内存的数量,其中,在第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量时,第一内存的数量最小。
在第一内存有多个时,通过在满足目标任务的内存需求的前提下设定第一内存的数量最小,可以减小内存管理设备执行为执行目标任务的计算节点增加内存的工作量。
结合第二方面,在一个可能的实现方式中,确定为目标计算节点增加的第一内存的类型,包括:
获取目标任务的计算数据类型、数据规模及计算类型;根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存;根据目标任务的需求内存及目标计算节点的内存容量确定第一内存的类型和第一内存的数量。
结合第二方面,在一个可能的实现方式中,根据目标任务的需求内存及目标计算节点的内存容量确定第一内存的类型及第一内存的数量,包括:
当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,第一内存的类型为扩展内存模组;当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第二阈值时,第一内存的类型为内存节点,其中,扩展内存模组的内存容量低于内存节点的内存容量;其中,当第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量时,第一内存的数量最小。
在目标任务的需求内存高于第一阈值且不高第二阈值时,表示目标任务需求的内存不是特别大,因此在选择内存时,选择内存容量能满足目标任务,且容量小的扩展内存模组,这样可以避免内存资源的浪费。在目标任务的需求内存高于第二阈值时,表示目标任务需求的内存特别大,因此在选择内存时,若选择内存扩展模组可能需要选择多个内存扩展模组,这对于内存管理设备来说,会增加了为执行目标任务的计算节点增加内存的工作量;选择容量大的内存节点,不会增加内存管理设备的工作量。
结合第二方面,在一个可能的实现方式中,本实施例的方法还包括:
获取执行目标任务时的交换节点的需求信息;该需求信息包括带宽、时延及接口数量中的至少一项;若目标计算节点所使用的交换节点的参数低于需求信息所指示的参数,或者目标计算节点没有使用的交换节点,则为目标计算节点增加第一交换节点,以使第一内存通过第一交换节点与目标计算节点连接。
在新增内存节点后,判断目标计算节点所使用的交换节点是否满足执行目标任务时的对交换节点的需求,若不满足,则增加新的交换节点,从而保证了目标任务的顺利执行。
结合第二方面,在一个可能的实现方式中,本实施例的方法还包括:
获取在执行目标任务时目标计算节点的内存状态信息;根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存;若确定为目标计算节点增加第二内存,为目标计算节点增加第二内存,并将第二内存与目标计算节点连接。
在执行目标任务期间,基于目标计算节点的内存状态信息预测当前内存能否满足执行目标任务的需求,若目标计算节点当前使用的内存不能满足目标计算节点执行目标任务过程中的内存需求时,在目标计算节点执行目标任务过程中增加内存,以保证目标任务的顺利执行。
结合第二方面,在一个可能的实现方式中,内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长,第三内存为目标计算节点的内存中容量大于第三阈值的内存;根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存,包括:
若内存使用率高于第一预设使用率,且第三内存的占用时长超过第一预设时长,则确定为目标计算节点增加第二内存;或者,若从第一时刻开始,第三内存的连续占用时长超过第二预设时长,则确定为目标计算节点增加第二内存;第一时刻为内存使用率开始高于第一预设使用率的时刻。
结合第二方面,在一个可能的实现方式中,内存状态信息包括从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率;根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存,包括:
根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率;第二预设使用率是根据目标任务的类型确定的;根据目标计算节点的内存使用率超过第二预设使用率的次数及每次超过第二预设使用率的内存使用率计算得到内存使用率平均值;根据内存使用率平均值和每次超过第二预设使用率的内存使用率计算得到方差;若方差大于第一方差阈值时,则确定为目标计算节点增加第二内存。
通过上述两种方式确定是否为目标计算节点增加内存,保证了目标任务的顺利执行。
第三方面,本申请提供一种管理装置,包括执行如第一方面或第一方面任一种可能实施方式的模块或单元。
第四方面,本申请提供一种内存管理设备,包括执行如第二方面或第二方面任一种可能实施方式的模块或单元。
第五方面,本申请提供一种管理装置,包括处理器和存储器。存储器用于存储程序代码。处理器用于调用存储于存储器的程序代码,以执行第一方面或第一方面的任一种可能的实施方式提供的方法。
第六方面,本申请提供一种内存管理设备,包括处理器和存储器。存储器用于存储程序代码。处理器用于调用存储于存储器的程序代码,以执行第二方面或第二方面的任一种可能的实施方式提供的方法。
第七方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面、第二方面、第一方面任一种可能的实施方式或第二方面任一种可能的实施方式提供的方法。
第八方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面、第二方面、第一方面任一种可能的实施方式或第二方面任一种可能的实施方式提供的方法。
可以理解地,第三方面所述的管理装置和第五方面所述的管理装置用于执行如第一方面中任一所提供的方法,第四方面所述的内存管理设备和第六方面所述的内存管理设备用于执行如第二方面任一所提供的方法,第七方面所述的计算机存储介质和第八方面所述的计算机程序产品均用于实现第一方面中任一所提供的方法或者第二方面中任一所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1为传统数据中心的系统架构示意图;
图2a为本申请实施例提供的一种数据管理中心架构示意图;
图2b为本申请实施例提供的一种机柜结构示意图;
图2c为本申请实施例提供的一种内存管理设备203的结构示意图;
图3为本申请实施例提供的一种内存管理方法的流程示意图;
图4为本申请实施例提供的另一种内存管理方法的流程示意图;
图5为本申请实施例提供的一种管理装置的结构示意图;
图6为本申请实施例提供的一种内存管理设备的结构示意图;
图7为本申请实施例提供的另一种管理装置的结构示意图;
图8为本申请实施例提供的另一种内存管理设备的结构示意图。
具体实施方式
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面结合附图对本申请的实施例进行描述。
参见图2a,图2a为本申请实施例提供的一种数据管理中心架构示意图。如图2a所示,该数据管理中心包括管理装置201、数据中心202及内存管理设备203。管理装置201与数据中心202的每个机柜服务器通信连接,管理装置201与内存管理设备203通信连接。
在一个示例中,数据中心202包括至少一个计算节点和至少一个内存。可选的,数据中心202还包括至少一个交换节点。在另一个示例中,数据中心202包括至少一个机柜,其中,如图2b所示,每个机柜包括至少一个计算节点和至少一个内存。可选的,每个机柜还包括至少一个交换节点。应理解,多个计算节点可构成一个计算集群。
其中,管理装置201可以为具有数据处理和存储的服务器或者终端设备,当然也可以是其他形式的设备。
计算节点用于处理任务。应理解,一个任务可以有由一个计算节点实现,也可以由多个计算节点实现。在一个示例中,该多个节点可以属于同一个机柜,也可以属于不同的机柜。
交换节点用于计算节点之间的数据交换、计算节点与内存之间的数据读写和计算节点的管理。交换节点为支持内存池化协议的交换机,如支持CXL协议的交换机。计算节点可通过该交换节点与内存池连接,如连接一个或者多个内存池。
内存用于存储计算节点在处理任务时所需的数据及产生的数据。在一个示例中,内存可以为扩展内存模组,也可以为内存节点。
其中,扩展内存模组包括一个或内存芯片,具有类似于硬盘的E1.S或者E3.S接口的接口,比如PCIe接口,CXL接口等。在为计算节点增加内存为扩展内存模组时,内存管理设备只需将扩展内存模组插入计算节点对应的接口,实现与计算节点的连接,从而实现为计算节点扩展内存。
内存节点为一个内存容量比扩展内存模组大的容量的内存设备,类似于服务器,可以包括多个内存扩展模组,需要额外的电源供电,通常以内存池的形式存在。当为计算节点增加的内存为内存节点时,内存管理设备将内存节点放入机柜,并通过线缆或者背板与交换节点连接,进而通过交换节点与计算节点连接,从而实现为计算节点扩展内存。
内存管理设备203,用于为数据中心202中的计算节点增加内存或者交换节点。如图2c所示,内存管理设备203包含动力装置、可运输的至少一个扩展内存模组、可运输的至少一个内存节点、可运输的至少一个交换节点和具备执行扩展内存硬件的安装及卸载的机械装置,机械装置可以执行如插入或者取出扩展内存模组/内存节点/交换节点的操作及相关数据连接线缆的插拔操作。可选的,内存管理设备203还包括检测计算节点的内存需求和执行动态内存扩展配置的管理系统。
在此需要指出的是,数据中心202与内存管理设备203安装在同一建筑内,比如同一房间或者大楼。在该建筑内安装有很多轨道,内存管理设备203利用该轨道可以实现在安装有数据中心的建筑内灵活移动。
在一个可能的实施例中,管理装置201获取待执行任务及其相关信息。管理装置201根据待执行任务的相关确定目标任务的需求内存;若执行目标任务的计算节点的内存容量小于目标任务的需求内存容量,则管理装置201向内存管理设备203发送指示信息,用于指示内存管理设备203为执行目标任务的计算节点增加内存。内存管理设备203接收到指示信息后,根据指示信息为执行目标任务的计算节点增加内存。
在另一个实施例中,内存管理设备203直接获取待执行任务及其相关信息。内存管理设备203根据待执行任务的相关确定目标任务的需求内存;若执行目标任务的计算节点的内存容量小于目标任务的需求内存容量,则内存管理设备203为执行目标任务的计算节点增加内存。
可以看出,采用本申请的方案可以基于目标任务的相关信息动态调整执行目标任务的计算节点的内存,实现了动态内存扩容,进而实现了在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费;通过内存管理设备为计算节点增加内存,与现有技术相比,避免了计算节点远程访问空闲内存,降低了传输时延,同时也减少了内存访问的链路长度。
下面具体介绍本申请的实现流程。
参见图3,图3为本申请实施例提供的一种内存管理方法的流程示意图。该方法应用于管理装置,该管理装置应用于数据管理中心,该数据管理中心还包括数据中心及内存管理设备。数据中心包括至少一个计算节点及至少一个内存。如图3所示,该方法包括:
S301、管理装置获取目标任务的计算数据类型、数据规模及计算类型。
可选的,目标任务可以是人工输入的,也可以是管理装置中预先设置的处理任务;还可以是从目标计算节点获取的。其中,目标计算节点为数据中心中执行目标任务的一个计算节点或者多个计算节点。
其中,计算数据类型是指在执行任务时输入的数据的类型,如整型数据、浮点型数据等。数据规模为执行任务时输入数据的数据量大小。计算类型是指执行任务时计算节点所执行计算的类型,比如迭代计算等。
S302、管理装置根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存。
在一个可能的实施例中,管理装置根据目标任务的计算数据类型及计算类型确定基础内存容量;根据数据规模确定内存系数;其中,数据规模越大,内存系数越大。管理装置根据基础内存容量及内存系数确定目标任务的需求内存。
在一个可能的实施例中,管理装置根据目标任务的计算数据类型及计算类型查询对应关系表,以确定目标任务的计算数据类型及计算类型对应的基础内存容量。其中,对应关系表为计算数据类型及计算类型与基础内存容量之间的对应关系。
S303、若目标计算节点的内存的容量小于目标任务的需求内存容量,则管理装置向内存管理设备发送第一指示信息,该第一指示信息用于为目标计算节点增加内存。
其中,目标计算节点的内存包括至少一个内存中的一个或多个。在一个示例中,第一指示信息包括第一内存的类型。
在一个示例中,内存管理设备为与数据中心距离最近的,且空闲的内存管理设备。
在一个可能的实施例中,当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,第一内存的类型为扩展内存模组;当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第二阈值时,第一内存的类型为内存节点,其中,扩展内存模组的内存容量低于内存节点的内存容量。
其中,目标计算节点的内存为目标计算节点能够使用的内存,包括目标计算节点的扩展内存模组和通过交换节点与目标计算节点连接的内存节点中的至少一个。
其中,根据目标任务的需求内存的容量与目标计算节点的内存容量的差值来从扩展内存模组和内存节点中选择合适的内存,使得在为目标计算节点增加内存后,目标计算节点的内存容量最小,且目标计算节点的内容容量不低于目标任务的需求内存的容量。通过该方式,可以在满足目标任务的内存希求的前提下,内存资源可以得到充分的利用,避免了内存资源的浪费。
在一个可能的实施例中,第一指示信息还包括第一内存的数量,其中,第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量,且第一内存的数量最小。通过在满足新增的第一内存的容量满足目标任务的需求内存的前期下,限定第一内存的数量最小,使得内存管理设备在为目标计算节点的内存时,可以减小内存管理设备的工作量。
在一个可能的实施例中,计算节点是通过交换节点与内存节点连接的,计算节点在处理任务时,通过交换节点与内存节点进行数据交换。由于不同的任务,对数据交换的时延有要求,因此在确定为目标计算节点增加的内存为内存节点,管理装置判断目标计算节点当前所用的交换节点的参数是否高于目标计算节点在执行目标任务时交换节点的需求信息所指示的交换节点的参数。管理装置获取执行目标任务时的交换节点的需求信息;若目标计算节点所用的交换机的参数低于该需求信息所指示的参数时,管理装置确定为目标计算节点增加交换节点,以使第一内存通过增加的交换节点与目标计算节点连接。管理装置通过第一指示信息用于指示为目标计算节点增加交换节点。可选的,第一指示信息还包括新增交换节点的参数。
在一个示例中,需求信息包括时延。应理解,交换节点的带宽会影响传输数据的时间,因此需求信息还包括带宽。目标计算节点包括数据中心中的一个或多个计算节点,也就是目标任务由一个或多个计算节点来执行。在执行目标任务时,可能会引入新的计算节点,通过交换节点与旧的计算节点,新的计算节点和旧的计算节点构成目标计算节点。在执行目标任务之前,会判断交换节点的接口数量是否满足执行目标任务时对交换节点的接口的需求,因此需求信息还包括接口数量。
在另一个示例中,上述需求信息包括时延、带宽和接口数量中的至少一项。
在一个可能的实施例中,在执行目标任务时,目标计算节点的内存需求可能会发生变化。为了保证目标任务的顺利执行,且保证内存资源的充分利用,在目标计算节点执行目标任务时,管理装置获取目标计算节点的内存状态信息。可选的,管理装置可以是实时获取目标计算节点的内存状态信息,也可以是周期性获取目标计算节点的内存状态信息。管理装置根据目标计算节点的内存状态信息确定是否需要增加第二内存和确定是否为目标计算节点减小内存。
在一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长,若目标计算节点的内存使用率高于第一预设使用率,且第三内存的占用时长超过第一预设时长,则管理装置确定为目标计算节点增加第二内存。若目标计算节点的内存使用率高于第一预设使用率且第三内存的占用时长未超过第一预设时长,或者,目标计算节点的内存使用率不高于第一预设使用率且第三内存的占用时长超过第一预设时长则管理装置确定针对目标计算节点,既不增加内存,也不减小内存。目标计算节点的内存使用率不高于第一预设使用率且第三内存的占用时长未超过第一预设时长,则管理装置确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长;若从第一时刻开始,第三内存的连续占用时长超过第二预设时长,则管理装置确定为目标计算节点增加第二内存;第一时刻为目标计算节点的内存使用率开始高于第一预设使用率的时刻;若从第一时刻开始,第三内存的连续占用时长超过第四预设时长且未超过第二预设时长,则管理装置确定针对目标计算节点,既不增加内存,也不减小内存;若从第一时刻开始,第三内存的连续占用时长未超过第四预设时长,则管理装置确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率;管理装置可以是实时获取从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率,也可以是周期性获取从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率。管理装置根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率;第二预设使用率是根据目标任务的类型确定的。不同的任务类型对应不同的预设使用率。
管理装置根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率计算得到内存使用率平均值;并根据该内存使用率平均值及每次超过第二预设使用率的内存使用率计算得到方差;若该方差高于第一方差阈值,则管理装置确定为目标计算节点增加第二内存。其中方差高于第一方差阈值,表示目标计算节点在执行目标任务过程中,内存使用率的波动较大,也就是说在执行目标任务的过程中,目标计算节点的内存可能无法满足执行目标任务的需求,因此当方差高于第一方差阈值时,管理装置确定为目标计算节点增加第二内存。若计算得到的方差高于第二方差阈值且不高于第一方差阈值,则管理装置确定针对目标计算节点,既不增加内存,也不减小内存。若计算得到的方差不高于第二方差阈值,则管理装置确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率,若目标计算节点的内存使用率超过第一预设使用率,则管理装置确定为目标计算节点增加第二内存;若目标计算节点的内存使用率未超过第一预设使用率,且超过第三预设使用率,则管理装置确定针对目标计算节点,既不增加内存,也不减少内存;若目标计算节点的内存使用率未超过第三预设使用率,则管理装置确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括第三内存的占用时长,第三内存为目标计算节点的内存中容量大于第三阈值的内存;若第三内存的占用时长超过第一预设时长,则管理装置确定为目标计算节点增加第二内存。若第三内存的占用时长未超过第一预设时长,且超过第三预设时长,则管理装置确定针对目标计算节点,既不增加内存,也不减少内存;若目标计算节点的内存使用率未超过第三预设时长,则管理装置确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率;可选的,管理装置可以实时获取目标计算节点的内存使用率,也可以是周期性获取目标计算节点的内存使用率。管理装置将获取的目标计算节点的内存使用率输入到预先训练好的内存预测模型中进行处理,以得到目标计算节点在下一时刻的内存使用率预测值;根据内存使用率预测值确定是否为目标计算节点增加第二内存。若内存使用率预测值高于第一预设使用率,则管理装置确定为目标计算节点增加第二内存。若内存使用率预测值未超过第一预设使用率,且超过第三预设使用率,则确定针对目标计算节点,既不增加内存,也不减少内存;若内存使用率预测值未超过第三预设使用率,则确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
其中,内存预设模型是基于神经网络实现的,比如全连接神经网络、循环神经网络、深度神经网络等。
按照上述方式,管理装置确定为目标计算节点增加第二内存时,管理装置向内存管理设备发送第二指示信息,第二指示信息用于指示为目标计算节点增加第二内存。
在此需要指出的是,在为目标计算节点增加新的内存时,目标计算节点不停止执行目标任务。其中,增加的内存为支持CXL协议的内存。
可选的,第二指示信息还包括第二内存的类型和数量。可选的,第二指示信息还用于指示为目标计算节点新增交换节点。在此需要指出的是,第二内存的类型和数量的确定方式及是否为目标计算节点新增交换节点的判断条件可参见针对第一内存的相关描述,在此不再叙述。
可以看出,在本申请的方案中,可以基于目标任务的相关信息动态调整执行目标任务的计算节点的内存,实现了动态内存扩容,进而实现了在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费;通过内存管理设备为计算节点增加内存,与现有技术相比,避免了计算节点远程访问空闲内存,降低了传输时延,同时也减少了内存访问的链路长度。在为计算节点增加内存时,不需要计算节点停止执行任务,提高了任务执行效率。在需要增加内存时,管理装置选择距离数据中心最近的且空闲的内存管理设备发送用于指示为计算节点增加内存的指示信息,提高了为计算节点增加内存的效率。
参见图4,图4为本申请实施例提供的另一种内存管理方法的流程示意图。该方法应用于内存管理设备,该内存管理设备应用于数据管理中心,该数据管理中心还包括数据中心及管理装置。数据中心包括至少一个计算节点及至少一个内存。如图4所示,该方法包括:
S401、内存管理设备确定为目标计算节点增加的第一内存的类型。
其中,目标计算节点为至少一个计算节点中的执行目标任务的一个或者多个计算节点。
在一个可能的实施例中,管理装置获取目标任务的计算数据类型、数据规模及计算类型;管理装置根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存。若目标计算节点的内存的容量小于目标任务的需求内存容量,则管理装置向内存管理设备发送第一指示信息,该第一指示信息用于为目标计算节点增加内存。具体实现过程可参见S301-S303的相关描述,在此不再叙述。
内存管理设备获取来自管理装置的第一指示信息,该第一指示信息包括第一内存的类型。第一内存的类型包括扩展内存模组或内存节点。在一个示例中,第一指示信息还包括第一内存的数量,其中,在第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量时,第一内存的数量最小。
在一个可能的实施例中,内存管理设备获取目标任务和该目标任务的计算数据类型、数据规模及计算类型。目标任务可以是内存管理设备从管理装置中获取的,也可以是内存管理设备从数据中心中获取的。内存管理设备根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存。内存管理设备根据目标计算节点的内存的容量及目标任务的需求内存容量确定是否为目标计算节点增加内存。若目标任务的需求内存的容量与目标计算节点的内存容量,则内存管理设备确定为目标计算节点增加内存。
内存管理设备并根据目标计算节点的内存的容量及目标任务的需求内存容量确定为第一内存的类型及数量。当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,第一内存的类型为扩展内存模组;当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第二阈值时,第一内存的类型为内存节点,其中,扩展内存模组的内存容量低于内存节点的内存容量。其中,当第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量时,第一内存的数量最小。上述步骤的具体实现过程可参见S301-S303的相关描述,在此不再叙述。
S402、内存管理设备根据第一内存的类型获取第一内存。
其中,第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量。
内存管理设备中放置有多个不同类型的内存,比如多个扩展内存模组和多个内存节点。若第一内存的类型为扩展内存模组,则内存管理设备从其中获取扩展内存模组作为第一内存;若第一内存的类型为内存节点,则内存管理设备从其中获取内存节点作为第一内存。
在一个可能的实施例中,内存管理设备根据第一内存的类型及数量获取第一内存。若第一内存的类型为扩展内存模组,则内存管理设备从其中获取对应数量的扩展内存模组作为第一内存;若第一内存的类型为内存节点,则内存管理设备从其中获取对应数量的内存节点作为第一内存。
S403、内存管理设备为目标计算节点增加第一内存,并将第一内存与目标计算节点连接。
内存管理设备通过其机械装置从其中放置的内存中取出第一内存;若第一内存为扩展内存模组,内存管理设备将第一内存插入目标计算节点,通过对应的接口与目标计算节点连接;若第一内存为内存节点时,内存管理设备将第一内存放入包含目标计算节点的机柜中,以通过交换节点与目标计算节点连接。
在一个可能的实施例中,计算节点是通过交换节点与内存节点连接的,计算节点在处理任务时,通过交换节点与内存节点进行数据交换。由于不同的任务,对交换节点的时延有要求,因此在确定为目标计算节点增加的内存为内存节点时,内存管理设备判断目标计算节点当前所用的交换节点的参数是否高于目标计算节点在执行目标任务时对交换节点的需求信息所指示的交换节点的参数。内存管理设备获取执行目标任务时对交换节点的需求信息;若目标计算节点所用的交换机的参数低于该需求信息所指示的参数时,内存管理设备确定为目标计算节点增加交换节点,以使第一内存通过增加的交换节点与目标计算节点连接。
在一个示例中,需求信息包括时延。应理解,交换节点的带宽会影响传输数据的时间,因此需求信息还包括带宽。目标计算节点包括数据中心中的一个或多个计算节点,也就是目标任务由一个或多个计算节点来执行。在执行目标任务时,可能会引入新的计算节点,通过交换节点与旧的计算节点,新的计算节点和旧的计算节点构成目标计算节点。在执行目标任务之前,会判断交换节点的接口数量是否满足执行目标任务时对交换节点的接口的需求,因此需求信息还包括接口数量。
在另一个示例中,上述需求信息包括时延、带宽和接口数量中的至少一项。
在一个可能的实施例中,在执行目标任务时,目标计算节点的内存需求可能会发生变化。为了保证目标任务的顺利执行,且保证内存资源的充分利用,在目标计算节点执行目标任务时,内存管理设备获取目标计算节点的内存状态信息。可选的,内存管理设备可以是实时获取目标计算节点的内存状态信息,也可以是周期性获取目标计算节点的内存状态信息。内存管理设备根据目标计算节点的内存状态信息确定是否需要增加第二内存和确定是否为目标计算节点减小内存。
在一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率,若目标计算节点的内存使用率超过第一预设使用率,则内存管理设备确定为目标计算节点增加第二内存;若目标计算节点的内存使用率未超过第一预设使用率,且超过第三预设使用率,则内存管理设备确定针对目标计算节点,既不增加内存,也不减少内存;若目标计算节点的内存使用率未超过第三预设使用率,则内存管理设备确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括第三内存的占用时长,第三内存为目标计算节点的内存中容量大于第三阈值的内存;若第三内存的占用时长超过第一预设时长,则内存管理设备确定为目标计算节点增加第二内存。若第三内存的占用时长未超过第一预设时长,且超过第三预设时长,则内存管理设备确定针对目标计算节点,既不增加内存,也不减少内存;若目标计算节点的内存使用率未超过第三预设时长,则内存管理设备确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长,若目标计算节点的内存使用率高于第一预设使用率,且第三内存的占用时长超过第一预设时长,则内存管理设备确定为目标计算节点增加第二内存。若目标计算节点的内存使用率高于第一预设使用率且第三内存的占用时长未超过第一预设时长,或者,目标计算节点的内存使用率不高于第一预设使用率且第三内存的占用时长超过第一预设时长,则内存管理设备确定针对目标计算节点,既不增加内存,也不减小内存。目标计算节点的内存使用率不高于第一预设使用率且第三内存的占用时长未超过第一预设时长,则内存管理设备确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长;若从第一时刻开始,第三内存的连续占用时长超过第二预设时长,则内存管理设备确定为目标计算节点增加第二内存;第一时刻为目标计算节点的内存使用率开始高于第一预设使用率的时刻;若从第一时刻开始,第三内存的连续占用时长超过第四预设时长且未超过第二预设时长,则内存管理设备确定针对目标计算节点,既不增加内存,也不减小内存;若从第一时刻开始,第三内存的连续占用时长未超过第四预设时长,则内存管理设备确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率;内存管理设备可以是实时获取从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率,也可以是周期性获取从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率。内存管理设备根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率;第二预设使用率是根据目标任务的类型确定的。不同的任务类型对应不同的预设使用率。
内存管理设备根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率计算得到内存使用率平均值;并根据该内存使用率平均值及每次超过第二预设使用率的内存使用率计算得到方差;若该方差高于第一方差阈值,则内存管理设备确定为目标计算节点增加第二内存。其中方差高于第一方差阈值,表示目标计算节点在执行目标任务过程中,内存使用率的波动较大,也就是说在执行目标任务的过程中,目标计算节点的内存可能无法满足执行目标任务的需求,因此当方差高于第一方差阈值时,内存管理设备确定为目标计算节点增加第二内存。若计算得到的方差高于第二方差阈值且不高于第一方差阈值,则内存管理设备确定针对目标计算节点,既不增加内存,也不减小内存。若计算得到的方差不高于第二方差阈值,则内存管理设备确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
在另一个示例中,目标计算节点的内存状态信息包括目标计算节点的内存使用率;可选的,内存管理设备可以实时获取目标计算节点的内存使用率,也可以是周期性获取目标计算节点的内存使用率。内存管理设备将获取的目标计算节点的内存使用率输入到预先训练好的内存预测模型中进行处理,以得到目标计算节点在下一时刻的内存使用率预测值;根据内存使用率预测值确定是否为目标计算节点增加第二内存。若内存使用率预测值高于第一预设使用率,则内存管理设备确定为目标计算节点增加第二内存。若内存使用率预测值未超过第一预设使用率,且超过第三预设使用率,则确定针对目标计算节点,既不增加内存,也不减少内存;若内存使用率预测值未超过第三预设使用率,则确定减少目标计算节点的内存。在减少目标计算节点的内存时,减少的内存容量最大且减少内存后目标计算节点的内存使用率超过第三预设使用率且未超过第一预设使用率。
其中,内存预设模型是基于神经网络实现的,比如全连接神经网络、循环神经网络、深度神经网络等。
按照上述方式,内存管理设备确定为目标计算节点增加第二内存时,内存管理设备可按照S303的中确定第一内存类型及数量的相关描述确定第二内存的类型及数量,在此不再叙述。
在此需要指出的是,在为目标计算节点增加新的内存时,目标计算节点不停止执行目标任务。其中,增加的内存为支持CXL协议的内存。
可以看出,在本申请的方案中,可以基于目标任务的相关信息动态调整执行目标任务的计算节点的内存,实现了动态内存扩容,进而实现了在满足执行目标任务的内存需求的前提下,避免了内存硬件资源的浪费;通过内存管理设备为计算节点增加内存,与现有技术相比,避免了计算节点远程访问空闲内存,降低了传输时延,同时也减少了内存访问的链路长度。在为计算节点增加内存时,不需要计算节点停止执行任务,提高了任务执行效率。在需要增加内存时,距离数据中心最近的且空闲的内存管理设备发送用于指示为计算节点增加内存的指示信息,提高了为计算节点增加内存的效率。
参照图5所示,为本申请实施例提供的一种管理装置的结构示意图。该管理装置应用于数据管理中心,数据管理中心还包括数据中心及内存管理设备,该数据中心包括至少一个计算节点和至少一个内存。如图5所示,该管理装置500包括:
获取单元501,用于获取目标任务的计算数据类型、数据规模及计算类型;
确定单元502,用于根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存;
发送单元503,用于若目标计算节点的内存的容量小于目标任务的需求内存容量,则向内存管理设备发送第一指示信息,第一指示信息用于指示为目标计算节点增加内存,所述第一指示信息包括增加的第一内存的类型;目标计算节点为至少一个计算节点中执行目标任务的计算节点,目标计算节点的内存包括为至少一个内存中的一个或多个。
在一个可能的实施例中,当目标任务的需求内存的容量与所述目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,所述第一内存的类型为扩展内存模组;
当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第二阈值时,第一内存的类型为内存节点,其中,扩展内存模组的内存容量低于内存节点的内存容量。
在一个可能的实施例中,第一指示信息还包括第一内存的数量,其中,第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量,且第一内存的数量最小。
在一个可能的实施例中,当第一内存为内存节点时,获取单元501,还用于获取执行目标任务时的交换节点的需求信息;需求信息包括带宽、时延及接口数量中的至少一项;若目标计算节点所使用的交换节点的参数低于需求信息所指示的参数,或者目标计算节点没有使用的交换节点,则第一指示信息还用于指示增加交换节点,以使第一内存通过增加的交换节点与目标计算节点连接。
在一个可能的实施例中,获取单元501,还用于在目标计算节点执行所述目标任务时,获取目标计算节点的内存状态信息;
确定单元502,还用于根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存;
发送单元503,还用于若确定为目标计算节点增加所述第二内存,向内存管理设备发送第二指示信息,第二指示信息用于指示为目标计算节点增加所述第二内存。
在一个可能的实施例中,内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长,第三内存为目标计算节点的内存中容量大于第三阈值的内存;在根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存的方面,确定单元502具体用于:
若内存使用率高于第一预设使用率,且第三内存的占用时长超过第一预设时长,则确定为目标计算节点增加第二内存;或者,若从第一时刻开始,第三内存的连续占用时长超过第二预设时长,则确定为目标计算节点增加第二内存;第一时刻为内存使用率开始高于第一预设使用率的时刻。
在一个可能的实施例中,内存状态信息包括从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率;在根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存的方面,确定单元502具体用于:
根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率;第二预设使用率是根据目标任务的类型确定的;根据目标计算节点的内存使用率超过第二预设使用率的次数及每次超过第二预设使用率的内存使用率计算得到内存使用率平均值;根据内存使用率平均值和每次超过第二预设使用率的内存使用率计算得到方差;若方差大于第一方差阈值时,则确定为目标计算节点增加第二内存。
值得指出的是,其中,管理装置500的具体功能实现方式可以参见上述内存管理方法的描述,比如获取单元501用于执行S301和S303的相关内容,确定单元502用于执行S302和S303的相关内容、发送单元503用于执行S303相关内容,这里不再进行赘述。管理装置500中的各个单元或模块可以分别或全部合并为一个或若干个另外的单元或模块来构成,或者其中的某个(些)单元或模块还可以再拆分为功能上更小的多个单元或模块来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元或模块是基于逻辑功能划分的,在实际应用中,一个单元(或模块)的功能也可以由多个单元(或模块)来实现,或者多个单元(或模块)的功能由一个单元(或模块)实现。
参照图6所示,为本申请实施例提供的一种内存管理设备的结构示意图。该内存管理设备600应用于数据管理中心,数据管理中心还包括管理装置及数据中心,数据中心包括至少一个计算节点和至少一个内存。如图6所示,该内存管理设备600包括:
确定单元601,用于确定为目标计算节点增加的第一内存的类型;目标计算节点为至少一个计算节点中的执行目标任务的一个或者多个计算节点;根据第一内存的类型获取第一内存;第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量;
内存调整单元602,用于内存调整单元,用于为目标计算节点增加第一内存,并将第一内存与目标计算节点连接。
在一个可能的实施例中,在确定为目标计算节点增加的第一内存的类型的方面,确定单元601具体用于:
获取来自管理装置的第一指示信息,该第一指示信息用于为目标机计算节点增加内存容量;第一指示信息包括第一内存的类型,第一内存的类型是管理装置根据目标任务的计算数据类型、数据规模及计算类型确定的,第一内存的类型包括扩展内存模组或者内存节点。
在一个可能的实施例中,第一指示信息还包括第一内存的数量,其中,在第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量时,第一内存的数量最小。
在一个可能的实施例中,在确定为目标计算节点增加的第一内存的类型的方面,确定单元601具体用于:
获取目标任务的计算数据类型、数据规模及计算类型;根据目标任务的计算数据类型、数据规模及计算类型确定目标任务的需求内存;根据目标任务的需求内存及目标计算节点的内存容量确定第一内存的类型和第一内存的数量。
在一个可能的实施例中,在根据目标任务的需求内存及目标计算节点的内存容量确定第一内存的类型及第一内存的数量的方面,确定单元601具体用于:
当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,第一内存的类型为扩展内存模组;当目标任务的需求内存的容量与目标计算节点的内存容量的差值高于第二阈值时,第一内存的类型为内存节点,其中,扩展内存模组的内存容量低于内存节点的内存容量;其中,当第一内存的容量与目标计算节点的空闲内存容量之和高于目标任务的需求内存容量时,第一内存的数量最小。
在一个可能的实施例中,内存管理设备600还包括:
获取单元603,用于获取执行目标任务时的交换节点的需求信息;该需求信息包括带宽、时延及接口数量中的至少一项;
内存调整单元602,还用于若目标计算节点所使用的交换节点的参数低于需求信息所指示的参数,或者目标计算节点没有使用的交换节点,则为目标计算节点增加第一交换节点,以使第一内存通过第一交换节点与目标计算节点连接。
在一个可能的实施例中,内存管理设备600还包括:
获取单元603,用于获取在执行目标任务时目标计算节点的内存状态信息;
确定单元601,还用于根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存;
内存调整单元602,用于若确定为目标计算节点增加第二内存,为目标计算节点增加第二内存,并将第二内存与目标计算节点连接。
在一个可能的实施例中,内存状态信息包括目标计算节点的内存使用率和第三内存的占用时长,第三内存为目标计算节点的内存中容量大于第三阈值的内存;在根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存的方面,确定单元601具体用于:
若内存使用率高于第一预设使用率,且第三内存的占用时长超过第一预设时长,则确定为目标计算节点增加第二内存;或者,若从第一时刻开始,第三内存的连续占用时长超过第二预设时长,则确定为目标计算节点增加第二内存;第一时刻为内存使用率开始高于第一预设使用率的时刻。
在一个可能的实施例中,内存状态信息包括从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率;在根据目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存的方面,确定单元601具体用于:
根据从目标计算节点执行目标任务开始到当前时刻目标计算节点的内存使用率获取目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过第二预设使用率的内存使用率;第二预设使用率是根据目标任务的类型确定的;根据目标计算节点的内存使用率超过第二预设使用率的次数及每次超过第二预设使用率的内存使用率计算得到内存使用率平均值;根据内存使用率平均值和每次超过第二预设使用率的内存使用率计算得到方差;若方差大于第一方差阈值时,则确定为目标计算节点增加第二内存。
值得指出的是,其中,内存管理设备600的具体功能实现方式可以参见上述内存管理方法的描述,比如确定单元601用于执行S401-S403的相关内容,内存调整单元602用于执行S403的相关内容、获取单元603用于执行S403相关内容,这里不再进行赘述。内存管理设备600中的各个单元或模块可以分别或全部合并为一个或若干个另外的单元或模块来构成,或者其中的某个(些)单元或模块还可以再拆分为功能上更小的多个单元或模块来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元或模块是基于逻辑功能划分的,在实际应用中,一个单元(或模块)的功能也可以由多个单元(或模块)来实现,或者多个单元(或模块)的功能由一个单元(或模块)实现。
基于上述方法实施例以及管理装置实施例的描述,请参见图7,本发明实施例还提供的一种管理装置700的结构示意图。图7所示的管理装置700(该管理装置700具体可以是一种计算机设备)包括存储器701、处理器702、通信接口703以及总线704。其中,存储器701、处理器702、通信接口703通过总线704实现彼此之间的通信连接。
存储器701可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。
存储器701可以存储程序,当存储器701中存储的程序被处理器702执行时,处理器702和通信接口703用于执行本申请实施例的内存管理方法的各个步骤。
处理器702可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的管理装置700中的单元所需执行的功能,或者执行本申请方法实施例的内存管理方法。
处理器702还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的内存管理方法的各个步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702还可以是通用处理器、数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,结合其硬件完成本申请实施例的网络风险关联评估装置中包括的单元所需执行的功能,或者执行本申请方法实施例的内存管理方法。
通信接口703使用例如但不限于收发器一类的收发装置,来实现管理装置700与其他设备或通信网络之间的通信。例如,可以通过通信接口703获取数据。
总线704可包括在管理装置700各个部件(例如,存储器701、处理器702、通信接口703)之间传送信息的通路。
应注意,尽管图7所示的管理装置700仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,管理装置700还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,管理装置700还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,管理装置700也可仅仅包括实现本申请实施例所必须的器件,而不必包括图7中所示的全部器件。
基于上述方法实施例以及内存管理设备实施例的描述,请参见图8,本发明实施例还提供的一种内存管理设备800的结构示意图。图8所示的内存管理设备800(该内存管理设备800具体可以是一种计算机设备)包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
存储器801可以是ROM,静态存储设备,动态存储设备或者,RA。
存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802和通信接口803用于执行本申请实施例的内存管理方法的各个步骤。
处理器802可以采用通用的CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的内存管理设备800中的单元所需执行的功能,或者执行本申请方法实施例的内存管理方法。
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的内存管理方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本申请实施例的网络风险关联评估装置中包括的单元所需执行的功能,或者执行本申请方法实施例的内存管理方法。
通信接口803使用例如但不限于收发器一类的收发装置,来实现内存管理设备800与其他设备或通信网络之间的通信。例如,可以通过通信接口803获取数据。
总线804可包括在内存管理设备800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
应注意,尽管图8所示的内存管理设备800仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,内存管理设备800还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,内存管理设备800还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,内存管理设备800也可仅仅包括实现本申请实施例所必须的器件,而不必包括图8中所示的全部器件。
本申请实施例还提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以实现所述的内存管理方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行所述的内存管理方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,基于通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应步骤过程的具体描述,在此不再赘述。
应理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是ROM,或随机存取存储器RAM,或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digitalversatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种内存管理方法,其特征在于,所述方法包括:
获取目标任务的计算数据类型、数据规模及计算类型;
根据所述目标任务的计算数据类型、数据规模及计算类型确定所述目标任务的需求内存容量;
若目标计算节点的内存的容量小于所述目标任务的需求内存容量,则向内存管理设备发送第一指示信息;其中,所述第一指示信息用于指示为所述目标计算节点增加内存,所述第一指示信息包括增加的第一内存的类型;所述目标计算节点为执行目标任务的计算节点。
2.根据权利要求1所述的方法,其特征在于,若目标计算节点的内存的容量小于所述目标任务的需求内存容量,则向内存管理设备发送第一指示信息;其中,所述第一指示信息用于指示为所述目标计算节点增加内存,所述第一指示信息包括增加的第一内存的类型,包括:
当所述目标任务的需求内存的容量与所述目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,所述第一内存的类型为扩展内存模组;
当所述目标任务的需求内存的容量与所述目标计算节点的内存容量的差值高于所述第二阈值时,所述第一内存的类型为内存节点;其中,所述扩展内存模组的内存容量低于所述内存节点的内存容量。
3.根据权利要求2所述的方法,其特征在于,所述第一指示信息还包括所述第一内存的数量,其中,所述第一内存的容量与所述目标计算节点的空闲内存容量之和高于所述目标任务的需求内存容量,且所述第一内存的数量最小。
4.根据权利要求2或3所述的方法,其特征在于,当所述第一内存为内存节点时,所述方法还包括:
获取执行所述目标任务时的交换节点的需求信息;所述需求信息包括带宽、时延及接口数量中的至少一项;
若所述目标计算节点所使用的交换节点的参数低于所述需求信息所指示的参数,或者所述目标计算节点没有使用的交换节点,则所述第一指示信息还用于指示增加交换节点,以使所述第一内存通过所述增加的交换节点与所述目标计算节点连接。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
在所述目标计算节点执行所述目标任务时,获取所述目标计算节点的内存状态信息;
根据所述目标计算节点的内存状态信息确定是否为所述目标计算节点增加第二内存;
若确定为所述目标计算节点增加所述第二内存,向所述内存管理设备发送第二指示信息,所述第二指示信息用于指示为所述目标计算节点增加所述第二内存。
6.根据权利要求5所述的方法,其特征在于,所述内存状态信息包括所述目标计算节点的内存使用率和第三内存的占用时长,所述第三内存为所述目标计算节点的内存中容量大于第三阈值的内存;所述根据所述目标计算节点的内存状态信息确定是否为所述目标计算节点增加第二内存,包括:
若所述内存使用率高于第一预设使用率,且所述第三内存的占用时长超过第一预设时长,则确定为所述目标计算节点增加所述第二内存;或者,
若从第一时刻开始,所述第三内存的连续占用时长超过第二预设时长,则确定为所述目标计算节点增加所述第二内存;所述第一时刻为所述内存使用率开始高于所述第一预设使用率的时刻。
7.根据权利要求5所述的方法,其特征在于,所述内存状态信息包括:从所述目标计算节点执行所述目标任务开始到当前时刻所述目标计算节点的内存使用率;所述根据所述目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存,包括:
根据从所述目标计算节点执行所述目标任务开始到当前时刻所述目标计算节点的内存使用率获取所述目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过所述第二预设使用率的内存使用率;所述第二预设使用率是根据所述目标任务的类型确定的;
根据所述次数及所述每次超过所述第二预设使用率的内存使用率计算得到内存使用率平均值;
根据所述内存使用率平均值和所述每次超过所述第二预设使用率的内存使用率计算得到方差;
若所述方差大于第一方差阈值时,则确定为所述目标计算节点增加所述第二内存。
8.一种内存管理方法,其特征在于,所述方法包括:
确定为目标计算节点增加的第一内存的类型;
根据所述第一内存的类型获取所述第一内存;所述第一内存的容量与所述目标计算节点的空闲内存容量之和高于所述目标任务的需求内存容量;
为所述目标计算节点增加所述第一内存,并将所述第一内存与所述目标计算节点连接。
9.根据权利要求8所述的方法,其特征在于,所述确定为目标计算节点增加的第一内存的类型,包括:
获取来自管理装置的第一指示信息,所述第一指示信息用于为所述目标机计算节点增加内存容量;所述第一指示信息包括所述第一内存的类型,所述第一内存的类型是所述管理装置根据目标任务的计算数据类型、数据规模及计算类型确定的,所述第一内存的类型包括扩展内存模组或者内存节点。
10.根据权利要求9所述的方法,其特征在于,所述第一指示信息还包括所述第一内存的数量,其中,在所述第一内存的容量与所述目标计算节点的空闲内存容量之和高于所述目标任务的需求内存容量时,所述第一内存的数量最小。
11.根据权利要求8所述的方法,其特征在于,所述确定为目标计算节点增加的第一内存的类型,包括:
获取目标任务的计算数据类型、数据规模及计算类型;
根据所述目标任务的计算数据类型、数据规模及计算类型确定所述目标任务的需求内存;
根据所述目标任务的需求内存及所述目标计算节点的内存容量确定所述第一内存的类型和所述第一内存的数量。
12.根据权利要求11所述的方法,其特征在于,所述根据所述目标任务的需求内存及所述目标计算节点的内存容量确定所述第一内存的类型及所述第一内存的数量,包括:
当所述目标任务的需求内存的容量与所述目标计算节点的内存容量的差值高于第一阈值,且不高于第二阈值时,所述第一内存的类型为扩展内存模组;
当所述目标任务的需求内存的容量与所述目标计算节点的内存容量的差值高于所述第二阈值时,所述第一内存的类型为内存节点,其中,所述扩展内存模组的内存容量低于所述内存节点的内存容量;
其中,当所述第一内存的容量与所述目标计算节点的空闲内存容量之和高于所述目标任务的需求内存容量时,所述第一内存的数量最小。
13.根据权利要求9、10和12任一项所述方法,其特征在于,所述方法还包括:
获取执行所述目标任务时的交换节点的需求信息;所述需求信息包括带宽、时延及接口数量中的至少一项;
若所述目标计算节点所使用的交换节点的参数低于所述需求信息所指示的参数,或者所述目标计算节点没有使用的交换节点,则为所述目标计算节点增加第一交换节点,以使所述第一内存通过所述第一交换节点与所述目标计算节点连接。
14.根据权利要求8-13任一项所述的方法,其特征在于,所述方法还包括:
获取在执行所述目标任务时目标计算节点的内存状态信息;
根据所述目标计算节点的内存状态信息确定是否为所述目标计算节点增加第二内存;
若确定为所述目标计算节点增加所述第二内存,为所述目标计算节点增加第二内存,并将所述第二内存与所述目标计算节点连接。
15.根据权利要求14所述的方法,其特征在于,所述内存状态信息包括所述目标计算节点中内存的使用率和第三内存的占用时长,所述第三内存为所述目标计算节点中内存容量大于第三阈值的内存;所述根据所述目标计算节点的内存状态信息确定是否为所述目标计算节点增加第二内存,包括:
若所述内存使用率高于第一预设使用率,且所述第三内存的占用时长超过第一预设时长,则确定为所述目标计算节点增加所述第二内存;或者,
若从第一时刻开始,所述第三内存的连续占用时长超过第二预设时长,则确定为所述目标计算节点增加所述第二内存;所述第一时刻为所述第三内存使用率开始高于第一预设使用率的时刻。
16.根据权利要求14所述的方法,其特征在于,所述内存状态信息包括从所述目标计算节点执行所述目标任务开始到当前时刻所述目标计算节点的内存使用率;所述根据所述目标计算节点的内存状态信息确定是否为目标计算节点增加第二内存,包括:
根据从所述目标计算节点执行所述目标任务开始到当前时刻所述目标计算节点的内存使用率获取所述目标计算节点的内存使用率超过第二预设使用率的次数,及每次超过所述第二预设使用率的内存使用率;所述第二预设使用率是根据所述目标任务的类型确定的;
根据所述次数及所述每次超过所述第二预设使用率的内存使用率计算得到内存使用率平均值;
根据所述内存使用率平均值和所述每次超过所述第二预设使用率的内存使用率计算得到方差;
若所述方差大于第一方差阈值时,则确定为所述目标计算节点增加所述第二内存。
17.一种管理装置,其特征在于,包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码,以实现权利要求1至7任一项所述的方法。
18.一种内存管理设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码,以实现权利要求8至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180821.9A CN115543862B (zh) | 2022-09-27 | 2022-09-27 | 内存管理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180821.9A CN115543862B (zh) | 2022-09-27 | 2022-09-27 | 内存管理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543862A true CN115543862A (zh) | 2022-12-30 |
CN115543862B CN115543862B (zh) | 2023-09-01 |
Family
ID=84730366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211180821.9A Active CN115543862B (zh) | 2022-09-27 | 2022-09-27 | 内存管理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543862B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116466879A (zh) * | 2023-03-17 | 2023-07-21 | 北京超弦存储器研究院 | 一种cxl内存模组、内存数据的置换方法及计算机系统 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191389A1 (en) * | 2005-07-28 | 2011-08-04 | Vmware, Inc. | Distributed data management system |
CN102222014A (zh) * | 2011-06-16 | 2011-10-19 | 华中科技大学 | 基于内存热插拔的虚拟机动态内存管理系统 |
US20120096473A1 (en) * | 2010-10-19 | 2012-04-19 | International Business Machines Corporation | Memory maximization in a high input/output virtual machine environment |
US20140122560A1 (en) * | 2012-11-01 | 2014-05-01 | Tilera Corporation | High Performance, Scalable Multi Chip Interconnect |
US20160070475A1 (en) * | 2013-05-17 | 2016-03-10 | Huawei Technologies Co., Ltd. | Memory Management Method, Apparatus, and System |
CN107729185A (zh) * | 2017-10-26 | 2018-02-23 | 新华三技术有限公司 | 一种故障处理方法及装置 |
WO2018171392A1 (zh) * | 2017-03-24 | 2018-09-27 | 华为技术有限公司 | 一种虚拟机扩缩容方法及虚拟管理设备 |
CN110750336A (zh) * | 2019-10-29 | 2020-02-04 | 北京浪潮数据技术有限公司 | 一种OpenStack虚拟机内存热扩容方法 |
CN111352712A (zh) * | 2020-02-25 | 2020-06-30 | 程瑞萍 | 云计算任务跟踪处理方法、装置、云计算系统及服务器 |
CN112395045A (zh) * | 2020-11-13 | 2021-02-23 | 深圳力维智联技术有限公司 | 虚拟机回收及其资源调整方法 |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
US20210397373A1 (en) * | 2020-06-22 | 2021-12-23 | Western Digital Technologies, Inc. | Peer Storage Compute Sharing Using Memory Buffer |
CN114489963A (zh) * | 2020-11-12 | 2022-05-13 | 华为云计算技术有限公司 | 人工智能应用任务的管理方法、系统、设备及存储介质 |
CN114745275A (zh) * | 2020-12-24 | 2022-07-12 | 顺丰科技有限公司 | 云服务环境中的节点更新方法、装置和计算机设备 |
CN114780201A (zh) * | 2022-03-25 | 2022-07-22 | 网易(杭州)网络有限公司 | 资源调整方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-27 CN CN202211180821.9A patent/CN115543862B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191389A1 (en) * | 2005-07-28 | 2011-08-04 | Vmware, Inc. | Distributed data management system |
US20120096473A1 (en) * | 2010-10-19 | 2012-04-19 | International Business Machines Corporation | Memory maximization in a high input/output virtual machine environment |
CN102222014A (zh) * | 2011-06-16 | 2011-10-19 | 华中科技大学 | 基于内存热插拔的虚拟机动态内存管理系统 |
US20140122560A1 (en) * | 2012-11-01 | 2014-05-01 | Tilera Corporation | High Performance, Scalable Multi Chip Interconnect |
US20160070475A1 (en) * | 2013-05-17 | 2016-03-10 | Huawei Technologies Co., Ltd. | Memory Management Method, Apparatus, and System |
WO2018171392A1 (zh) * | 2017-03-24 | 2018-09-27 | 华为技术有限公司 | 一种虚拟机扩缩容方法及虚拟管理设备 |
CN107729185A (zh) * | 2017-10-26 | 2018-02-23 | 新华三技术有限公司 | 一种故障处理方法及装置 |
CN110750336A (zh) * | 2019-10-29 | 2020-02-04 | 北京浪潮数据技术有限公司 | 一种OpenStack虚拟机内存热扩容方法 |
CN111352712A (zh) * | 2020-02-25 | 2020-06-30 | 程瑞萍 | 云计算任务跟踪处理方法、装置、云计算系统及服务器 |
US20210397373A1 (en) * | 2020-06-22 | 2021-12-23 | Western Digital Technologies, Inc. | Peer Storage Compute Sharing Using Memory Buffer |
CN114489963A (zh) * | 2020-11-12 | 2022-05-13 | 华为云计算技术有限公司 | 人工智能应用任务的管理方法、系统、设备及存储介质 |
CN112395045A (zh) * | 2020-11-13 | 2021-02-23 | 深圳力维智联技术有限公司 | 虚拟机回收及其资源调整方法 |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
CN114745275A (zh) * | 2020-12-24 | 2022-07-12 | 顺丰科技有限公司 | 云服务环境中的节点更新方法、装置和计算机设备 |
CN114780201A (zh) * | 2022-03-25 | 2022-07-22 | 网易(杭州)网络有限公司 | 资源调整方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
卞琛;于炯;修位蓉;钱育蓉;英昌甜;廖彬;: "内存计算框架局部数据优先拉取策略", 计算机研究与发展, no. 04, pages 787 - 803 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116466879A (zh) * | 2023-03-17 | 2023-07-21 | 北京超弦存储器研究院 | 一种cxl内存模组、内存数据的置换方法及计算机系统 |
CN116466879B (zh) * | 2023-03-17 | 2023-12-29 | 北京超弦存储器研究院 | 一种cxl内存模组、内存数据的置换方法及计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115543862B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346156B2 (en) | Single microcontroller based management of multiple compute nodes | |
US7624221B1 (en) | Control device for data stream optimizations in a link interface | |
US20140040526A1 (en) | Coherent data forwarding when link congestion occurs in a multi-node coherent system | |
CN111901164B (zh) | Ocp nic网卡的适配控制方法、装置、设备及系统 | |
CN111190735B (zh) | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 | |
CN105472291A (zh) | 多处理器集群的数字硬盘录像机及其实现方法 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
CN115543862B (zh) | 内存管理方法及相关装置 | |
CN114707651A (zh) | 一种规约运算的拓扑选择方法、装置、设备及介质 | |
CN108270877B (zh) | 分布式网络节点数据共享系统 | |
KR20150007208A (ko) | Ina 케이블 메모리 어플라이언스 | |
CN109739802B (zh) | 计算集群及计算集群配置方法 | |
Saini et al. | Scientific application-based performance comparison of SGI Altix 4700, IBM POWER5+, and SGI ICE 8200 supercomputers | |
CN113946537A (zh) | 一种加速装置及服务器 | |
CN116225177B (zh) | 内存系统、内存资源调节方法、装置、电子设备和介质 | |
US9910789B2 (en) | Electrical and optical memory access | |
CN112612741B (zh) | 一种多路服务器 | |
CN114338386A (zh) | 一种网络的配置方法、装置、电子设备及存储介质 | |
CN209248518U (zh) | 一种固态硬盘扩展板卡及服务器 | |
CN107122268B (zh) | 一种基于numa多物理层分区处理系统 | |
CN112486402A (zh) | 一种存储节点及系统 | |
US20240095171A1 (en) | Interface for remote memory | |
CN220509429U (zh) | 一种基于CXL的SoC服务器和电子设备 | |
CN114168083B (zh) | 一种数据存储系统、方法及电子设备 | |
CN117971526B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |