CN115202859A - 一种内存扩展方法以及相关设备 - Google Patents
一种内存扩展方法以及相关设备 Download PDFInfo
- Publication number
- CN115202859A CN115202859A CN202110821704.5A CN202110821704A CN115202859A CN 115202859 A CN115202859 A CN 115202859A CN 202110821704 A CN202110821704 A CN 202110821704A CN 115202859 A CN115202859 A CN 115202859A
- Authority
- CN
- China
- Prior art keywords
- memory
- network device
- pool
- target application
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 651
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000006854 communication Effects 0.000 claims description 22
- 230000002085 persistent effect Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 239000007787 solid Substances 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 67
- 238000011176 pooling Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 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
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 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/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
- 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
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种内存扩展方法以及相关设备,第一网络设备可以根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,进而根据内存拓扑在第一内存池内建立第二内存池,第二内存池用于指示目标应用被允许使用的内存资源。这样,第一网络设备可以根据内存需求信息和第一内存池内资源的使用情况合理地向目标应用分配内存,动态调整各内存池之间的业务负载分配,使得各内存池的业务负载合理分布,降低了集群作业的等待时间,提升了作业效率。
Description
本申请要求于2021年04月08日提交中国专利局、申请号为202110378601.6、发明名称为“一种存储器的操作方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及通信领域,尤其涉及一种内存扩展方法以及相关设备。
背景技术
目前,算力池化和存储池化作为主要的基础设施层面的技术已经相当普及。为了提高应用的性能,内存池化开始受到业界的关注。传统内存池化方案中,通常从体系结构层面出发,网络设备通过多种手段确认本地内存不足或者需要进行数据共享和交换的情况下,网络设备便可以访问远端内存,进而实现全局内存的共享和池化。
传统池化方案从系统结构层面实现了远端内存的共享和池化,其本质还是对于网络设备本地内存进行扩展,可以对于运行有单机应用的网络设备可实现高效、透明的全局内存池服务。然而,对于运行有某个非单机应用的多个网络设备,传统池化方案无法有效确定分区(SWAP)后所占用的网络设备的数量以及内存的容量,经常出现网络设备由于获得的内存过小不足以支撑作业计算的情况,集群作业等待时间长,作业效率低下。
发明内容
本申请提供了一种内存扩展方法、网络设备以及通信系统,能够动态调整各内存池之间的业务负载分配,使得各内存池的业务负载合理分布,降低了集群作业的等待时间,提升作业效率。
本申请第一方面提供了一种内存扩展方法,该方法包括:第一网络设备根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,所述第一内存池为多个网络设备提供的内存资源所构成的逻辑内存,所述内存拓扑用于指示所述目标应用需要占据的一个或多个网络设备中不同种类的内存资源的容量;所述第一网络设备根据所述内存拓扑在所述第一内存池内建立第二内存池,所述第二内存池用于指示所述目标应用被允许使用的内存资源。
本申请中,第一网络设备可以根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,进而根据内存拓扑在第一内存池内建立第二内存池,第二内存池用于指示目标应用被允许使用的内存资源。这样,第一网络设备可以根据内存需求信息和第一内存池内资源的使用情况合理地向目标应用分配内存,动态调整各内存池之间的业务负载分配,使得各内存池的业务负载合理分布,降低了集群作业的等待时间,提升了作业效率。
在第一方面的一种可能的实现方式中,所述第一网络设备根据所述内存拓扑在所述第一内存池内建立第二内存池,包括:所述第一网络设备根据所述内存拓扑在所述第一内存池中确认与所述内存拓扑匹配的内存资源;所述第一网络设备根据所述与所述内存拓扑匹配的内存资源建立所述第二内存池。
该方法中,管理节点创建第二内存池时,根据内存拓扑信息选中的各第一计算节点会贡献部分内存资源(广义内存资源,可包含HBM、DDR、PCM、SSD等多种介质)。管理节点将各第一计算节点贡献的所有的内存资源组织成一个全局的内存空间(第二内存池)。在某一个第一计算节点内,管理节点可以将第一计算节点上的不同介质组织成一个多层次的内存结构,该多层次的内存结构将成为全局内存空间的一部分。该种可能的实现方式提供了一种第二内存池的具体建立方式,提升了方案的可实现性。
在第一方面的一种可能的实现方式中,所述内存拓扑包括所述网络设备的数量、所述内存资源的种类、和所述内存资源的容量。
该种可能的实现方式提供了一种内存拓扑的具体实现方式,提升了方案的可实现性。
在第一方面的一种可能的实现方式中,所述第二内存池中包括高性能内存段、低性能内存段、持久化能力段和/或非持久化能力段。
该种可能的实现方式中,管理节点针对内存池中包含的不同介质属性,如性能差异、是否具备持久化能力等,可以将全局的内存空间划分成不同的内存段,如高性能内存段、具备持久化能力段、非持久化能力段等,后续对这些地址段中的地址进行写入时,将会以同步或者异步的方式写入对应的介质中。该种可能的实现方式中,管理节点可以根据使用频率、存储时长等多种因素对不同的数据进行区分存储,以便第一网络设备更加高效地完成作业。
在第一方面的一种可能的实现方式中,所述方法还包括:所述第一网络设备接收第二网络设备发送的数据请求信息,所述第二网络设备上运行所述目标应用,所述数据请求信息用于请求目标数据;所述第一网络设备根据所述数据请求信息向所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址,所述目标地址信息用于指示所述第二网络设备通过内存语义从所述第二内存池内获取所述目标数据。
该种可能的实现方式中,多个第二计算节点上运行有目标应用的不同进程,且管理节点采用统一编址的方式对第二内存池中的内存资源进行编制。运行有不同进程的第二计算节点间可以在第二内存池内通过内存语义进行数据交换或数据共享。第二计算节点和其他第二计算节点之间可以通过内存语义在第二内存池内交换数据,避免了繁琐的通信过程,大大提高了数据交换和数据共享的效率。
在第一方面的一种可能的实现方式中,所述方法还包括:所述第一网络设备根据目标应用的相关信息生成所述内存需求信息,所述目标应用的相关信息包括所述目标应用的类型、所述目标应用的内存膨胀系数、所述目标应用的访问特性和/或所述目标应用的输入数据量,所述内存需求信息包括所述目标应用的算力、绝对内存用量、内存分级配置和/或节点亲和配置。
该种可能的实现方式中,管理节点上可以包括内存计算单元。当第二计算节点上的目标应用启动时,管理节点可以通过内存计算单元根据目标应用的相关信息来评估目标应用的内存需求信息。其中,内存计算单元是应用感知的,内存计算单元关于目标应用的相关信息可以通过程序内置、用户输入或者自学习等多种方式来获取。内存计算单元获取到目标应用的相关信息后,内存计算单元可以根据应用的类型,输入的数据量,应用的内存膨胀系数,应用的访存特性如冷热数据分布、节点间数据交换量等,计算出目标应用所需的内存量,内存分级建议,节点亲和性建议。
在第一方面的一种可能的实现方式中,所述方法还包括:所述第一网络设备采用全局内存统一编址的方式建立所述第一内存池。
在第一方面的一种可能的实现方式中,所述内存语义包括远程直接数据存取(Remote Direct Memory Access,RDMA)和/或(Data Streaming Assessment,DSA)。
在第一方面的一种可能的实现方式中,所述内存资源包括高带宽存储器(HighBandwidth Memory,HBM)、双倍速同步动态随机存储器(Double Data Rate SDRAM,DDR)、相变存储器(Phase Change Memory,PCM)和/或固态存储器(Solid State Disk,SSD)。
本申请第二方面提供了一种数据获取方法,该方法包括:第一网络设备向第二网络设备发送数据请求信息,所述第一网络设备上运行目标应用,所述数据请求信息用于请求目标数据;所述第一网络设备接收所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址;所述第一网络设备根据所述目标地址信息通过内存语义从所述第一内存池内获取所述目标数据,所述第一内存池用于指示所述目标应用被允许使用的内存资源。
本申请中,多个第一网络设备上运行有目标应用的不同进程,且管理节点采用统一编址的方式对第一内存池中的内存资源进行编制。运行有不同进程的第一网络设备间可以在第一内存池内通过内存语义进行数据交换或数据共享。第一网络设备和其他第一网络设备之间可以通过内存语义在第一内存池内交换数据,避免了繁琐的通信过程,大大提高了数据交换和数据共享的效率。
在第二方面的一种可能的实现方式中,所述内存语义包括远程RDMA和/或DSA。
本申请第三方面提供一种网络设备,该网络设备包括至少一个处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网络设备进行通信。该指令在被处理器执行时,使得所述网络设备执行上述第一方面或第一方面的任意可能的实现方式中的方法,或者,使得所述网络设备执行上述第二方面或第二方面的任意可能的实现方式中的方法。
本申请第四方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得所述网络设备执行上述第一方面或第一方面的任意可能的实现方式中的方法,或者,使得所述网络设备执行上述第二方面或第二方面的任意可能的实现方式中的方法。
本申请第五方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当所述计算机执行指令被所述处理器执行时,所述处理器执行上述第一方面或第一方面任意一种可能实现方式的方法,或者,所述处理器执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请第六方面提供一种芯片,该芯片包括处理器和通信接口,所述处理器与所述通信接口耦合,所述处理器用于读取指令执行上述第一方面或第一方面任意一种可能实现方式的方法,或者,执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请第七方面一种内存扩展系统,该系统包括上述第一方面或第一方面任意一种可能实现方式中所述的网络设备以及包括上述第二方面或第二方面任意一种可能实现方式中所述的网络设备。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请中,第一网络设备可以根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,进而根据内存拓扑在第一内存池内建立第二内存池,第二内存池用于指示目标应用被允许使用的内存资源。这样,第一网络设备可以根据内存需求信息和第一内存池内资源的使用情况合理地向目标应用分配内存,动态调整各内存池之间的业务负载分配,使得各内存池的业务负载合理分布,降低了集群作业的等待时间,提升了作业效率。
附图说明
图1是本申请提供的内存扩展系统的应用场景示意图;
图2是本申请提供的一种内存扩展方法的一种应用示意图;
图3为本申请提供的一种内存拓扑的一种示意图;
图4是本申请提供的一种内存扩展方法的另一种应用示意图;
图5是本申请提供的一种内存扩展方法的另一种应用示意图;
图6为本申请提供的一种内存需求信息的一种示意图;
图7为本申请提供的一种网络设备的一种结构示意图;
图8为本申请提供的一种网络设备的另一种结构示意图;
图9为本申请提供的一种网络设备的另一种结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
目前,算力池化和存储池化作为主要的基础设施层面的技术已经相当普及。为了提高应用的性能,内存池化开始受到业界的关注。传统内存池化方案中,通常从体系结构层面出发,网络设备通过多种手段确认本地内存不足或者需要进行数据共享和交换的情况下,网络设备便可以访问远端内存,进而实现全局内存的共享和池化。
传统池化方案从系统结构层面实现了远端内存的共享和池化,其本质还是对于网络设备本地内存进行扩展,可以对于集成有单机应用的网络设备可实现高效、透明的全局内存池服务。然而,对于集成有应用的多个网络设备,传统池化方案从体系结构角度扩展本节点的内存容量,并不能感知应用所需内存,并且无法感知扩展到远端的目标设备的内存容量。对于动态的大规模分布式应用,这个局限性就更加明显。
上述传统池化方案中,由于无法有效确定分区后所占用的网络设备的数量以及内存的容量,经常出现网络设备由于获得的内存过小不足以支撑作业计算的情况,集群作业等待时间长,集群作业效率低下。
针对上述方法示例中说明的传统池化方案,本申请提供了一种内存扩展方法、内存扩展系统和网络设备,能够降低集群作业的等待时间,提升集群作业效率。
下面的方法示例首先说明本申请提供的内存扩展系统。
图1是本申请提供的内存扩展系统的应用场景示意图。
请参阅图1,本申请提供的内存扩展系统包括:管理节点101,第一计算节点102以及第二计算节点103。本申请提供的内存扩展系统中,管理节点101与上文中权利要求1至9中提及的第一网络设备相对应,第一计算节点102与上文中权利要求1至9中提及的网络设备向对应,第二计算节点上运行了上文中提及的目标应用,与权利要求5至9中提及的第二网络设备对应。
本申请中,可选的,内存扩展系统中可以包括一个或多个第二计算节点103,多个第二计算节点103可以构成第二计算节点集群。图1中仅体现了一个第二计算节点103,本申请提供的内存扩展系统中可以包括更多的第二计算节点103,具体此处不做限定。
本申请中,第二计算节点103是用户侧的一种计算设备,如服务器、台式计算机等。在硬件层面,第二计算节点103中设置有处理器和内存(图1中未示出)。在软件层面,第二计算节103点上运行有应用程序(application),简称应用,应用是对用户呈现的各种应用程序的统称。例如,该应用的类型可以是分布式应用,也可以是其他类型的应用,具体此处不做限定。第二计算节点上运行有内存使能插件和内存编程套件,应用通过内存使能插件和内存编程套件与管理节点和第一计算节点102通信。
本申请中,内存扩展系统可以包括一个或多个第一计算节点101,多个第一计算节点101可以构成第一计算节点集群,各个第一计算节点101之间可以互联。第一计算节点101可以是服务器、台式计算机或者存储阵列的控制器、硬盘框等。
在功能上,第一计算节点102主要用于对数据进行计算或处理等。在硬件上,第一计算节点102至少包括处理器、存储器和控制单元。其中,处理器是中央处理器(centralprocessing unit,CPU),用于处理来自第一计算节点外部的数据,或者第一计算节点102内部生成的数据。存储器,是指用于存储数据的装置,它可以是内存,也可以是硬盘。内存是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(Read Only Memory,ROM)。举例来说,随机存取存储器可以是动态随机存取存储器(Dynamic Random Access Memory,DRAM),也可以是存储级存储器(Storage Class Memory,SCM)。DRAM是一种半导体存储器,与大部分随机存取存储器(Random Access Memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。
本申请中,管理节点101通常用于创建并管理内存池,管理节点101可以与任意一个第一计算节点102通信。可选的,管理节点101可以与某一个第一计算节点102是同一个设备,可以从第一计算节点102中选举出一个节点让它承担管理节点的职能,管理节点101便是存储集群中的某个设备。可选的,管理节点101可以是独立于第一计算节点102之外的一个单独的设备,具体此处不做限定。在软件层面,管理节点101中包括分布式调度器和内存池套件,分布式调度器可以向第二计算节点分配内存,内存池化套件可以实现内存池的构建和对内存池中内存资源的管理。可选的,管理节点101还可以包括内存计算单元,通过内存计算单元来计算第二计算节点103运行目标应用时所需要的内存的大小。
上述示例中说明了本申请提供的内存扩展系统的结构,下面的示例将参照上述示例说明的内存扩展系统,以第一网络设备为管理节点、网络设备为第一计算节点、(第二网络设备)第二计算节点上运行目标应用为例来详细说明本申请提供的内存扩展方法。
图2是本申请提供的一种内存扩展方法的一种应用示意图。
请参阅图2,如图2所示,本申请中提供的内存扩展方法至少包括步骤201至步骤202。
201、第一网络设备根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑。
本申请中,第一内存池为多个网络设备提供的内存资源所构成的逻辑内存。即第一内存池是管理节点在多个第一计算节点上建立的逻辑内存。例如,以图1为例,图1中的5个第一计算节点上建立的内存池即可以理解为第一内存池。
本申请中,内存拓扑用于指示目标应用需要占据的一个或多个网络设备中不同种类的内存资源的容量。可选的,内存拓扑可以包括网络设备的数量,内存拓扑可以包括内存资源的种类,内存拓扑可以包括内存资源的容量,内存拓扑中还可以包括其他参数,具体此处不做限定。
图3为本申请提供的一种内存拓扑的一种示意图。
示例性的,假设管理节点接收到了第二计算节点上运行的目标应用的内存需求信息,根据第一内存池中的资源使用情况等多维度的度量值生成应用最佳的内存拓扑。一个典型的内存拓扑所包含的信息如图3所示,图3中的内存拓扑表示第二计算节点需要3个节点提供内存资源,其中节点1需要提供200GB的DDR内存、500GB的PCM内存和1TB的SSD内存。同理,节点2需要提供250GB的DDR内存、800GB的PCM内存和500GB的SSD内存。节点3需要提供5GB的DDR内存、500GB的PCM内存和800GB的SSD内存。
本申请中,管理节点中的调度器可以根据内存需求信息和第一内存池内的内存资源的使用情况,按照调度策略在第一内存池中为第二计算节点完成算力和内存的分配。与传统的调度器不同,本申请中的调度器在分配资源时会考虑内存的合理使用,如确保各第一计算节点中各层级内存的合理使用,在满足其他高优先级策略后,尽量采用Max-min调度方法,以使得内存容量需求量大的第二计算节点尽可能优先被分配内存资源,从而避免内存碎片。
示例性的,以Spark集群为例来说明内存拓扑的构件过程。示例性的,假设多个第二计算节点组成了大数据环境中的Spark集群,集群内构建了Spark的in memory shuffle插件,以便数据能够在内存完成计算以及数据可以实现跨节点间交换。管理节点获取到每个第二计算节点的内存需求后,可以通过智能调度器Yarn或者第三方调度器,基于Max-Min调度算法为第二计算节点分配内存拓扑。
202、第一网络设备根据内存拓扑在第一内存池内建立第二内存池。
本申请中,第二内存池用于指示目标应用被允许使用的内存资源。可选的,在网络设备本地内存资源不足时,网络设备需要与其他网络设备进行数据交换时,网络设备与其他网络设备共享数据时,以及其他多种情况下,均可以使用第二内存资源池内的内存资源来协助运行目标应用。
可选的,第二内存池中包括高性能内存段、低性能内存段、持久化能力段和/或非持久化能力段。
本申请中,管理节点针对内存池中包含的不同介质属性,如性能差异、是否具备持久化能力等,可以将全局的内存空间划分成不同的内存段,如高性能内存段、具备持久化能力段、非持久化能力段等,后续对这些地址段中的地址进行写入时,将会以同步或者异步的方式写入对应的介质中。该种可能的实现方式中,管理节点可以根据使用频率、存储时长等多种因素对不同的数据进行区分存储,以便第一网络设备更加高效地完成作业。
可选的,上述示例中说明的第一内存池和第二内存池可以是分布式内存池(distributed memory pool,DML),分布式内存池是指由跨节点的内存通过高速网络构成的物理上分散在各个节点,逻辑上可以提供全局访问功能的逻辑内存。上述示例中说明的第一内存池和第二内存池也可以是其他类型的内存池,具体此处不做限定。
本申请中,第一网络设备可以根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,进而根据内存拓扑在第一内存池内建立第二内存池,第二内存池用于指示目标应用被允许使用的内存资源。这样,第一网络设备可以根据内存需求信息和第一内存池内资源的使用情况合理地向目标应用分配内存,动态调整各内存池之间的业务负载分配,使得各内存池的业务负载合理分布,降低了集群作业的等待时间,提升了作业效率。
本申请提供的内存扩展方法从宏观的角度,基于应用驱动的核心思想,解决了应用在集群中的内存如何均匀分配的问题,解决了应用在集群中无法获得足够的内存完成存内数据处理的问题,解决数据密集型应用在集群中的作业效率低下以及集群作业吞吐量较小的问题。通过应用驱动的全局内存池化提升了应用的性能,进一步优化了全局内存的分配,提升了集群作业的效率。
本申请中,上述方法示例中的步骤201至步骤202说明了本申请提供的内存扩展方法,上述方法示例中的步骤202中,第一网络设备根据内存拓扑在第一内存池内建立第二内存池具有具体的实现方式,该种具体的实现方式将在下面的方法示例中进行说明。
图4是本申请提供的一种内存扩展方法的另一种应用示意图。
301、第一网络设备根据内存拓扑在第一内存池中寻找与内存拓扑匹配的内存资源。
本申请中,示例性的,以Spark集群为例来进行说明。对于单个计算设备,假设针对该计算设备上运行的目标应用得出的内存拓扑指示需要1.5T的内存,若每一个第一计算节点可以有0.3T的内存用来池化,则管理节点从第一内存池中寻找出5个节点来为目标应用提供内存资源。这一过程便是寻找与内存拓扑匹配的内存资源的过程。
可选的,内存资源可以包括HBM、内存资源可以包括DDR、内存资源可以包括相变存储器PCM,内存资源还可以包括固态存储器SSD等其他类型的内存资源,具体此处不做限定。
302、第一网络设备根据与内存拓扑匹配的内存资源建立第二内存池。
本申请中,管理节点根据应用的内存拓扑信息寻找到匹配的内存资源后,管理节点中包括的调度器可以通过调用内存池套件动态创建第二内存池。
本申请中,管理节点创建第二内存池时,根据内存拓扑信息选中的各第一计算节点会贡献部分内存资源。可选的,第一计算节点贡献的部分内存资源可以是高带宽存储器(High Bandwidth Memory,HBM)、第一计算节点贡献的部分内存资源可以是DDR、第一计算节点贡献的部分内存资源可以是PCM、第一计算节点贡献的部分内存资源还可以是SSD等多种介质,具体此处不做限定。
管理节点将各第一计算节点贡献的所有的内存资源组织成一个全局的内存空间(第二内存池)。在某一个第一计算节点内,管理节点可以将第一计算节点上的不同介质组织成一个多层次的内存结构,该多层次的内存结构将成为全局内存空间的一部分。此外,管理节点针对内存池中包含的不同介质属性,如性能差异、是否具备持久化能力等,可以将全局的内存空间划分成不同的内存段,如高性能内存段、具备持久化能力段、非持久化能力段等,后续对这些地址段中的地址进行写入时,将会以同步或者异步的方式写入对应的介质中。
示例性的,以Spark集群为例,假设管理节点在第一内存池中寻找到了5个节点为与内存拓扑相匹配的内存资源。管理节点可以通过调度器将这5个节点动态的组成一个集群,用内存池化套件对这5个节点提供的内存资源进行池化,以得到第二内存池。当第二计算节点的数据在第二内存池中完成Shuffle,得到的数据落盘之后,这5个节点快速释放,以便为其他应用提供内存资源。
本申请中,管理节点创建好第二内存池后,所有的第二内存池均由内存池套件进行统一管理,第二内存池具备全局内存统一编址和统一访问能力。第二内存池提供北向接口,可通过RDMA、iWARP等协议来实现全局内存的申请、读写访问、释放、跨节点的内存访问等功能。
本申请中,管理节点包括的内存池套件在管理第二内存池时,第二内存池中将包含不同种的介质,如上文提到的HBM、DRAM、PCM、SSD等。基于上述的第二内存池,上层使用者可以按照一定的规则分配内存,如指定属性,性能高低、是否持久化,或者指定在某个节点上按照指定长度进行分配等。分配时,系统将按照指定的规则到相应的节点上进行内存空间的申请及更新统计信息。当在需要申请的所有节点上完成内存空间申请后,系统将返回上层使用者一个全局的ID。这个ID中包含了这些地址的管理信息,如所在的内存分区、唯一索引、性能及持久化属性等内容。
本申请中,管理节点在分配内存的过程中,还可以实现同时在多个节点上进行分配,并组合成指定规则的内存空间。可选的,可以是跨节点分配多个地址,前后连接起来组成一个线性的内存空间。可以是按照副本规则而组织成一个内存空间,还可以是采用其他方式组织成的内存空间,这些内存空间都会按照上一段介绍的方式返回上层使用者一个全局的ID。
本申请中,当上层使用者使用某段全局内存结束时,管理节点将向第一内存池释放本段内存空间,并标记该空间可用。此外,管理节点将对应的内存空间按照实际的分布情况,通知各相关的计算节点释放之前已经申请的内存空间,并更新容量等信息。
本申请中,管理节点运行内存扩展方法时,除了执行上述示例中说明的步骤201至步骤202之外,可选的,管理节点还可以根据第二网络设备发送的数据请求信息返回目标地址信息,该过程将在下面的示例中进行详细说明。
本申请中,假设第二网络设备为图1所示系统中的第二计算节点,多个第二计算节点上运行有目标应用的不同进程,且管理节点采用统一编址的方式对第二内存池中的内存资源进行编制。运行有不同进程的第二计算节点间可以在第二内存池内通过内存语义进行数据交换或数据共享。
图5是本申请提供的一种内存扩展方法的另一种应用示意图。
401、第一网络设备接收第二网络设备发送的数据请求信息。
示例性的,当第二计算节点A上运行的进程A完成计算,第二计算节点A可以将需要交换的数据A放在全局内存池(第二内存池),并将全局统一编址的地址发布到管理节点上的KV服务器。若计算节点B上运行有目标应用下的进程B,计算节点B需要使用数据A。计算节点B向管理节点发送数据请求信息,该数据请求信息表示计算节点B需要获取数据A。
402、第一网络设备根据数据请求信息向第二网络设备发送目标地址信息。
示例性的,计算节点B向管理节点发送数据请求信息后,管理节点可以根据数据请求信息通过多种方式(例如通过KV服务器)向计算节点发送目标地址信息,该目标地址信息包括第二内存池内中保存目标数据的内存资源的地址。
403、第二网络设备根据目标地址信息通过内存语义从第二内存池内获取目标数据。
示例性的,计算节点B向管理节点发送数据请求信息,管理节点通过KV服务器根据数据请求信息向计算节点发送目标地址信息后,即计算节点B通过访问管理节点上的KV服务器来获取数据A的全局统一地址(目标地址信息)后,可以通过RDMA协议或DSA(DataStreaming Assessment,DSA)协议直接从全局内存池(第二内存池)内读取数据A。
本申请中,传统数据交互或数据共享的过程中,大规模数据密集型应用中的数据在内存中因内存容量不足完成不了所需的计算时,系统会将数据SWAP到本地存储介质或者远端设备,而在下阶段处理中又需要从存储介质或者远端设备中将数据读回,通过套接字(Socket)通信实现数据交换,继续处理,这种反复的IO处理严重影响作业的完成时间,并且影响系统的整体性能。
示例性的,若第二计算节点A和第二计算节点B之间需要进行数据交换或数据共享,例如交换数据A,则需要第二计算节点A和第二计算节点B之间的Socket端口互相通信来实现数据A的交换,该通信过程中包括了冗长的数据序列化与数据反序列化的过程,以及第二计算节点A与第二计算节点B需要进行磁盘IO操作。传统的数据交换或数据共享过程开销较大,耗时较长。而本申请提供的计算节点间的数据交换或数据共享过程中,第二计算节点A和第二计算节点B之间可以通过内存语义交换数据A,避免了繁琐的通信过程,大大提高了数据交换和数据共享的效率。
可选的,内存语义可以是RDMA协议,内存语义可以是DSA协议,内存语义还可以是其他类型的协议,具体此处不做限定。
本申请中,管理节点运行内存扩展方法时,除了执行上述示例中说明的步骤201至步骤202之外,可选的,还可以根据目标应用的相关信息生成内存需求信息,具体的生成方式将在下面的示例中进行说明。
本申请中,可选的,目标应用的相关信息中可以包括目标应用的类型、目标应用的输入数据量、目标应用的内存膨胀系数和/或目标应用的访问特性(如冷热数据分布和节点数据交换量等),目标应用的相关信息还可以包括其他信息,具体此处不做限定。
本申请中,可选的,目标应用的内存需求信息表示与目标应用所需要的内存相关的一些信息。可选的,内存需求信息可以包括绝对内存用量、内存分级配置和/或节点亲和配置,内存需求信息还可以包括其他参数,具体此处不做限定。
图6为本申请提供的一种内存需求信息的一种示意图。
本申请中,可选的,管理节点上可以包括内存计算单元。当第二计算节点上的目标应用启动时,管理节点可以通过内存计算单元根据目标应用的相关信息来评估目标应用的内存需求信息。其中,内存计算单元是应用感知的,内存计算单元关于目标应用的相关信息可以通过程序内置、用户输入或者自学习等多种方式来获取。内存计算单元获取到目标应用的相关信息后,内存计算单元可以根据应用的类型,输入的数据量,应用的内存膨胀系数,应用的访存特性如冷热数据分布、节点间数据交换量等,计算出目标应用所需的内存量,内存分级建议,节点亲和性建议,一个典型的应用内存需求信息如图6所示,管理节点可以根据图6所示的内存需求信息来生成内存拓扑。
本申请中,管理节点获取内存需求信息的方式有多种。可选的,可以是管理节点上包括的内存计算单元根据目标应用的相关信息生成内存需求信息。可选的,可以是其他节点根据目标应用的相关信息生成内存需求信息,然后将内存需求信息发送至管理节点。可选的,管理节点还可以通过其他方式来获取内存需求信息,具体此处不做限定。
本申请中,上述示例阐述了管理节点生成内存需求信息的过程。管理节点运行内存扩展方法时,除了执行上述示例中说明的步骤之外,可选的,管理节点还可建立第一内存池。具体的建立方式将在下面的示例中进行说明。
本申请中,第一内存池中的内存采用全局混合内存统一编址的方式进行编制,管理节点可以通过内存池化套件对不同类型的介质(如HBM、DDR、PCM、SSD)进行统一管理,管理节点还可以通过内存池化套件对跨节点内存进行统一编址和统一访问。
本申请中,第一网络设备可以根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,进而根据内存拓扑在第一内存池内建立第二内存池,第二内存池用于指示目标应用被允许使用的内存资源。这样,第一网络设备可以根据内存需求信息和第一内存池内资源的使用情况合理地向目标应用分配内存,动态调整各内存池之间的业务负载分配,使得各内存池的业务负载合理分布,降低了集群作业的等待时间,提升了作业效率。
上述示例提供了一种内存扩展方法的不同的实施方式,下面提供了一种网络设备50,如图7所示,该网络设备50用于执行上述示例中第一网络设备(管理节点)执行的步骤,该执行步骤以及相应的有益效果具体请参照上述相应的示例进行理解,此处不再赘述,该网络设备50包括:
处理单元501用于:
根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,所述第一内存池为多个网络设备提供的内存资源所构成的逻辑内存,所述内存拓扑用于指示所述目标应用需要占据的一个或多个网络设备中不同种类的内存资源的容量;
根据所述内存拓扑在所述第一内存池内建立第二内存池,所述第二内存池用于指示所述目标应用被允许使用的内存资源。
一种可能的实现方式中,
所述处理单元501用于:
根据所述内存拓扑在所述第一内存池中确认与所述内存拓扑匹配的内存资源;
根据所述与所述内存拓扑匹配的内存资源建立所述第二内存池。
一种可能的实现方式中,
所述内存拓扑包括所述网络设备的数量、所述内存资源的种类、和所述内存资源的容量。
一种可能的实现方式中,
所述第二内存池中包括高性能内存段、低性能内存段、持久化能力段和/或非持久化能力段。
一种可能的实现方式中,网络设备还包括接收单元502,
接收单元502,还用于接收第二网络设备发送的数据请求信息,所述第二网络设备上运行所述目标应用,所述数据请求信息用于请求目标数据;
所述处理单元501,还用于根据所述数据请求信息向所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址,所述目标地址信息用于指示所述第二网络设备通过内存语义从所述第二内存池内获取所述目标数据。
一种可能的实现方式中,
所述处理单元501,还用于根据目标应用的相关信息生成所述内存需求信息,所述目标应用的相关信息包括所述目标应用的类型、所述目标应用的内存膨胀系数、所述目标应用的访问特性和/或所述目标应用的输入数据量,所述内存需求信息包括所述目标应用的算力、绝对内存用量、内存分级配置和/或节点亲和配置。
一种可能的实现方式中,
所述处理单元501,还用于采用全局内存统一编址的方式建立所述第一内存池。
一种可能的实现方式中,所述内存语义包括远程直接数据存取RDMA和/或DSA。
一种可能的实现方式中,所述内存资源包括高带宽存储器HBM、双倍速同步动态随机存储器DDR、相变存储器PCM和/或固态存储器SSD。
需要说明的是,上述网络设备50的各模块之间的信息交互、执行过程等内容,由于与本申请方法示例基于同一构思,其执行步骤与上述方法步骤的详细内容一致,可参见上述方法示例处的描述。
上述示例提供了一种网络设备50,下面提供了一种网络设备60,如图7所示,该网络设备60用于执行上述示例中第二网络设备(第二计算节点)执行的步骤,该执行步骤以及相应的有益效果具体请参照上述相应的示例进行理解,此处不再赘述,该网络设备50包括:
发送单元601,用于向第二网络设备发送数据请求信息,所述第一网络设备上运行目标应用,所述数据请求信息用于请求目标数据;
接收单元602,用于接收所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址;
处理单元603,用于根据所述目标地址信息通过内存语义从所述第一内存池内获取所述目标数据,所述第一内存池用于指示所述目标应用被允许使用的内存资源。
一种可能的实现方式中,所述内存语义包括远程直接数据存取RDMA和/或DSA。
需要说明的是,上述网络设备60的各模块之间的信息交互、执行过程等内容,由于与本申请方法示例基于同一构思,其执行步骤与上述方法步骤的详细内容一致,可参见上述方法示例处的描述。
参阅图9所示,为本申请提供一种网络设备700的结构示意图,该网络设备700包括:处理器702、通信接口703、存储器701。可选的,可以包括总线704。其中,通信接口703、处理器702以及存储器701可以通过总线704相互连接;总线704可以是外围部件互连标准(Peripheral Component Interconnect,PCI)总线或扩充工业标准体系结构(extendedindustry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该网络设备700可以实现图7所示的示例中的网络设备50的功能,或,实现图8中网络设备60的功能。处理器702和通信接口703可以执行上述方法示例中网络设备相应的操作。
下面结合图9对网络设备的各个构成部件进行具体的介绍:
其中,存储器701可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、配置文件或其他内容。
处理器702是控制器的控制中心,可以是一个中央处理器(central processingunit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请提供的示例的一个或多个集成电路,例如:一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(fieldprogrammable gate array,FPGA)。
通信接口703用于与其他设备进行通信。
该处理器702可以执行前述图7所示示例中网络设备50所执行的操作,或,执行前述图8中网络设备60所执行的操作,具体此处不再赘述。
需要说明的是,上述网络设备700的各模块之间的信息交互、执行过程等内容,由于与本申请方法示例基于同一构思,其执行步骤与上述方法步骤的详细内容一致,可参见上述方法示例处的描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (25)
1.一种内存扩展方法,其特征在于,包括:
第一网络设备根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,所述第一内存池为多个网络设备提供的内存资源所构成的逻辑内存,所述内存拓扑用于指示所述目标应用需要占据的一个或多个网络设备中不同种类的内存资源的容量;
所述第一网络设备根据所述内存拓扑在所述第一内存池内建立第二内存池,所述第二内存池用于指示所述目标应用被允许使用的内存资源。
2.根据权利要求1所述的内存扩展方法,其特征在于,所述第一网络设备根据所述内存拓扑在所述第一内存池内建立第二内存池,包括:
所述第一网络设备根据所述内存拓扑在所述第一内存池中确认与所述内存拓扑匹配的内存资源;
所述第一网络设备根据所述与所述内存拓扑匹配的内存资源建立所述第二内存池。
3.根据权利要求1或2所述的内存扩展方法,其特征在于,所述内存拓扑包括所述网络设备的数量、所述内存资源的种类、和所述内存资源的容量。
4.根据权利要求1至3所述的内存扩展方法,其特征在于,所述第二内存池中包括高性能内存段、低性能内存段、持久化能力段和/或非持久化能力段。
5.根据权利要求1至4中任意一项所述的内存扩展方法,其特征在于,所述方法还包括:
所述第一网络设备接收第二网络设备发送的数据请求信息,所述第二网络设备上运行所述目标应用,所述数据请求信息用于请求目标数据;
所述第一网络设备根据所述数据请求信息向所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址,所述目标地址信息用于指示所述第二网络设备通过内存语义从所述第二内存池内获取所述目标数据。
6.根据权利要求1至5中任意一项所述的内存扩展方法,其特征在于,所述方法还包括:
所述第一网络设备根据目标应用的相关信息生成所述内存需求信息,所述目标应用的相关信息包括所述目标应用的类型、所述目标应用的内存膨胀系数、所述目标应用的访问特性和/或所述目标应用的输入数据量,所述内存需求信息包括所述目标应用的算力、绝对内存用量、内存分级配置和/或节点亲和配置。
7.根据权利要求1至5中任意一项所述的内存扩展方法,其特征在于,所述方法还包括:
所述第一网络设备采用全局内存统一编址的方式建立所述第一内存池。
8.根据权利要求1至5中任意一项所述的内存扩展方法,其特征在于,所述内存语义包括远程直接数据存取RDMA和/或DSA。
9.根据权利要求1至5中任意一项所述的内存扩展方法,其特征在于,所述内存资源包括高带宽存储器HBM、双倍速同步动态随机存储器DDR、相变存储器PCM和/或固态存储器SSD。
10.一种数据获取方法,其特征在于,包括:
第一网络设备向第二网络设备发送数据请求信息,所述第一网络设备上运行目标应用,所述数据请求信息用于请求目标数据;
所述第一网络设备接收所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址;
所述第一网络设备根据所述目标地址信息通过内存语义从所述第一内存池内获取所述目标数据,所述第一内存池用于指示所述目标应用被允许使用的内存资源。
11.根据权利要求10中任意一项所述的内存扩展方法,其特征在于,所述内存语义包括远程直接数据存取RDMA和/或DSA。
12.一种网络设备,其特征在于,包括:
处理单元用于:
根据目标应用的内存需求信息以及第一内存池内的内存资源的使用情况生成内存拓扑,所述第一内存池为多个网络设备提供的内存资源所构成的逻辑内存,所述内存拓扑用于指示所述目标应用需要占据的一个或多个网络设备中不同种类的内存资源的容量;
根据所述内存拓扑在所述第一内存池内建立第二内存池,所述第二内存池用于指示所述目标应用被允许使用的内存资源。
13.根据权利要求12所述的网络设备,其特征在于,
所述处理单元用于:
根据所述内存拓扑在所述第一内存池中确认与所述内存拓扑匹配的内存资源;
根据所述与所述内存拓扑匹配的内存资源建立所述第二内存池。
14.根据权利要求12或13所述的网络设备,其特征在于,所述内存拓扑包括所述网络设备的数量、所述内存资源的种类、和所述内存资源的容量。
15.根据权利要求12至14中任意一项所述的网络设备,其特征在于,所述第二内存池中包括高性能内存段、低性能内存段、持久化能力段和/或非持久化能力段。
16.根据权利要求12至15中任意一项所述的网络设备,其特征在于,
接收单元,还用于接收第二网络设备发送的数据请求信息,所述第二网络设备上运行所述目标应用,所述数据请求信息用于请求目标数据;
所述处理单元,还用于根据所述数据请求信息向所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址,所述目标地址信息用于指示所述第二网络设备通过内存语义从所述第二内存池内获取所述目标数据。
17.根据权利要求12至16中任意一项所述的网络设备,其特征在于,
所述处理单元,还用于根据目标应用的相关信息生成所述内存需求信息,所述目标应用的相关信息包括所述目标应用的类型、所述目标应用的内存膨胀系数、所述目标应用的访问特性和/或所述目标应用的输入数据量,所述内存需求信息包括所述目标应用的算力、绝对内存用量、内存分级配置和/或节点亲和配置。
18.根据权利要求12至16中任意一项所述的网络设备,其特征在于,
所述处理单元,还用于采用全局内存统一编址的方式建立所述第一内存池。
19.根据权利要求12至16中任意一项所述的网络设备,其特征在于,所述内存语义包括远程直接数据存取RDMA和/或DSA。
20.根据权利要求12至16中任意一项所述的网络设备,其特征在于,所述内存资源包括高带宽存储器HBM、双倍速同步动态随机存储器DDR、相变存储器PCM和/或固态存储器SSD。
21.一种网络设备,其特征在于,包括:
发送单元,用于向第二网络设备发送数据请求信息,所述第一网络设备上运行目标应用,所述数据请求信息用于请求目标数据;
接收单元,用于接收所述第二网络设备发送目标地址信息,所述目标地址信息包括所述第二内存池内中保存所述目标数据的内存资源的地址;
处理单元,用于根据所述目标地址信息通过内存语义从所述第一内存池内获取所述目标数据,所述第一内存池用于指示所述目标应用被允许使用的内存资源。
22.根据权利要求21所述的网络设备,其特征在于,所述内存语义包括远程直接数据存取RDMA和/或DSA。
23.一种网络设备,其特征在于,包括:
处理器、存储器和通信接口;
所述处理器与所述存储器、所述通信接口相连;
所述通信接口用于与其他设备进行通信;
所述处理器用于读取所述存储器中存储的指令后,使得所述网络设备执行如权利要求1至9中任一项所述的方法,或,使得所述网络设备执行如权利要求10或11所述的方法。
24.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求1至9中任一项所述的方法,或,使得所述计算机执行如权利要求10或11所述的方法。
25.一种内存扩展系统,包括权利要求1至9中任意一项所述的内存扩展方法中包括的第一网络设备和第二网络设备,或者,包括权利要求10或11所述的内存扩展方法中包括的第一网络设备和第二网络设备。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22783942.0A EP4322001A4 (en) | 2021-04-08 | 2022-03-31 | MEMORY EXPANSION METHOD AND ASSOCIATED DEVICE |
PCT/CN2022/084365 WO2022213875A1 (zh) | 2021-04-08 | 2022-03-31 | 一种内存扩展方法以及相关设备 |
US18/473,314 US20240012750A1 (en) | 2021-04-08 | 2023-09-25 | Memory expansion method and related device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021103786016 | 2021-04-08 | ||
CN202110378601 | 2021-04-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115202859A true CN115202859A (zh) | 2022-10-18 |
Family
ID=83574224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110821704.5A Pending CN115202859A (zh) | 2021-04-08 | 2021-07-20 | 一种内存扩展方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115202859A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729849A (zh) * | 2022-11-04 | 2023-03-03 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
-
2021
- 2021-07-20 CN CN202110821704.5A patent/CN115202859A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729849A (zh) * | 2022-11-04 | 2023-03-03 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
CN115729849B (zh) * | 2022-11-04 | 2024-02-20 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN105426245B (zh) | 包括分散的部件的动态地组成的计算节点 | |
US9977618B2 (en) | Pooling of memory resources across multiple nodes | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
TWI430102B (zh) | 網路卡資源配置方法、儲存媒體、及電腦 | |
US11847098B2 (en) | Metadata control in a load-balanced distributed storage system | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
JP7467593B2 (ja) | リソース割振り方法、記憶デバイス、および記憶システム | |
WO2018032519A1 (zh) | 一种资源分配方法、装置及numa系统 | |
US10599436B2 (en) | Data processing method and apparatus, and system | |
CN104219279A (zh) | 用于超大规模分布式处理应用的模块化架构的系统和方法 | |
US20130152103A1 (en) | Preparing parallel tasks to use a synchronization register | |
US10084860B2 (en) | Distributed file system using torus network and method for configuring and operating distributed file system using torus network | |
CN112099728B (zh) | 一种执行写操作、读操作的方法及装置 | |
WO2023020010A1 (zh) | 一种运行进程的方法及相关设备 | |
CN113678104A (zh) | 设备内符号数据移动系统 | |
CN117076140B (zh) | 一种分布式计算方法、装置、设备、系统及可读存储介质 | |
US7793051B1 (en) | Global shared memory subsystem | |
CN115202859A (zh) | 一种内存扩展方法以及相关设备 | |
CN114281516A (zh) | 一种基于numa属性的资源分配方法及装置 | |
US11169720B1 (en) | System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly | |
WO2022213875A1 (zh) | 一种内存扩展方法以及相关设备 | |
CN115470154A (zh) | 一种数据访问方法、管理设备、地址管理装置和存储系统 | |
CN108153489B (zh) | 一种nand闪存控制器的虚拟数据缓存管理系统与方法 | |
US12056398B2 (en) | Electronic data file access management in a distributed computer system |
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 |