一种利用内存带宽的内存应用方法、装置与计算设备制造方法及图纸

技术编号:33242710 阅读:17 留言:0更新日期:2022-04-27 17:47
本发明专利技术公开了一种利用内存带宽的内存应用方法、装置与计算设备。上述方法包括步骤:在NUMA架构的多内存节点系统中,当用户态程序待使用的内存数据的大小大于或者等于预设阈值时,将所述用户态程序待使用的内存数据划分为多个支持并行处理的数据块;至少基于与所述用户态程序待使用的内存数据所对应的内存节点的距离确定一个或者多个目标内存节点;将一个或者多个数据块保留在所述用户态程序所对应的内存节点,将剩余数据块分配至所述一个或者多个目标内存节点。本发明专利技术一并公开了相应的装置和计算设备。置和计算设备。置和计算设备。

【技术实现步骤摘要】
一种利用内存带宽的内存应用方法、装置与计算设备


[0001]本专利技术涉及进程调度
,尤其是一种利用内存带宽的内存应用方法、装置与计算设备。

技术介绍

[0002]在内存带宽有限的场景,单进程的大数据量操作受限于内存访问速度,此时性能表现较差。在NUMA(非一致内存访问)架构的服务器上,NUMA系统节点(NODE)是由一组CPU以及本地内存组成,每个NODE都有自己的本地内存,每个NODE访问本地内存的延迟要低于访问其他NODE的远端内存。因此在linux系统上,进程倾向于在本地NODE上申请内存使用,此时虽然访问本地数据较快,但是当需求大量数据访问(如大数组运算)时,同一NODE上的内存带宽反而限制了性能。
[0003]如图1所示,在多NODE系统里,进程都是就近申请内存,因此当进程运行在NODE 0对应的CPU上,此时申请的大数组内存也都在NODE 0上,如果进行数组拷贝,此时主要的操作就是NODE 0上的内存访问,此时运算性能受内存带宽的影响,带宽越高,性能越好。在一些带宽有限的服务器设备上,此时性能表现较差,计算耗时较长。

技术实现思路

[0004]为此,本专利技术提供了一种利用内存带宽的内存应用方法、装置与计算设备,以力图解决或者至少缓解上面存在的至少一个问题。
[0005]根据本专利技术的一个方面,提供了一种利用内存带宽的内存应用方法,包括步骤:在NUMA架构的多内存节点系统中,当用户态程序待使用的内存数据的大小大于或者等于预设阈值时,将所述用户态程序待使用的内存数据划分为多个支持并行处理的数据块;至少基于与所述用户态程序待使用的内存数据所对应的内存节点的距离确定一个或者多个目标内存节点;将一个或者多个数据块保留在所述用户态程序所对应的内存节点,将剩余数据块分配至所述一个或者多个目标内存节点。
[0006]可选地,在根据本专利技术的应用方法中,所述将所述用户态程序待使用的内存数据划分为多个支持并行处理的数据块的步骤包括:将所述用户态程序待使用的内存数据按照数组名或者指针名划分为多个支持并行处理的数据块。
[0007]可选地,在根据本专利技术的应用方法中,所述至少基于与所述用户态程序待使用的内存数据所对应的内存节点的距离确定一个或者多个目标内存节点的步骤包括:在所述全部内存节点中,确定与所述用户态程序所对应的内存节点的距离小于或者等于距离阈值的内存节点作为候选节点,从所述候选节点中确定与划分的所述数据块数量相应的目标内存节点。
[0008]可选地,在根据本专利技术的应用方法中,从所述候选节点中确定与划分的所述数据块数量相应的目标内存节点的步骤包括:在所述候选节点中,将其中内存容量大于或者等于预设容量阈值的一个或者多个确定为目标内存节点。
[0009]可选地,在根据本专利技术的应用方法中,将将一个或者多个数据块保留在所述用户态程序所对应的内存节点的步骤包括:将所述用户态程序最先使用的和/或等待使用的一个或者多个数据块保留在所述内存数据所在的内存节点;或者,将先保存在所述用户态程序待使用的内存数据的一个或者多个数据块保留在用户态程序所对应的内存节点。
[0010]根据本专利技术的另一方面,还提供了一种利用内存带宽的内存应用装置,包括:划分模块,适于在NUMA架构的多内存节点系统中,当用户态程序待使用的内存数据的大小大于或者等于预设阈值时,将所述用户态程序待使用的内存数据划分为多个支持并行处理的数据块;选择模块,适于至少基于与所述用户态程序待使用的内存数据所对应的内存节点的距离确定一个或者多个目标内存节点;分配模块,适于将一个或者多个数据块保留在所述用户态程序所对应的内存节点,将剩余数据块分配至所述一个或者多个目标内存节点。
[0011]可选地,在根据本专利技术的应用装置中,所述划分模块适于:将所述用户态程序待使用的内存数据按照数组名或者指针名划分为多个支持并行处理的数据块。
[0012]可选地,在根据本专利技术的应用装置中,所述选择模块适于:在所述全部内存节点中,确定与所述用户态程序所对应的内存节点的距离小于或者等于距离阈值的内存节点作为候选节点,从所述候选节点中确定与划分的所述数据块数量相应的目标内存节点。
[0013]根据本专利技术的另一方面,还提供了一种计算设备,包括:至少一个处理器和存储有程序指令的存储器;当程序指令被处理器读取并执行时,使得计算设备执行如上的利用内存带宽的内存应用方法。
[0014]根据本专利技术的再一方面,还提供了一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上的利用内存带宽的内存应用方法。
[0015]根据本专利技术的利用内存带宽的内存应用方法、装置与计算设备,能够实现以下有益效果:
[0016]本申请在大数据量运算场景,通过将内存分配到相邻的节点的内存上,充分利用多个NODE的内存带宽,显著提升了大数据量运算的性能。
附图说明
[0017]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
[0018]图1示出了根据本专利技术一个实施例的NUMA架构的结构示意图;
[0019]图2示出了根据本专利技术一个实施例的计算设备200的示意图;
[0020]图3示出了根据本专利技术一个实施例的利用内存带宽的内存应用方法300的流程图;
[0021]图4示出了根据本专利技术一个实施例的大数组拷贝运算的内存应用方法的流程图;
[0022]图5示出了根据本专利技术一个实施例的大数组拷贝运算的内存应用方法的流程图;
[0023]图6示出了根据本专利技术一个实施例的利用内存带宽的内存应用装置600的结构示意图;
[0024]图7是根据本申请实施例的第一种计算机可读存储介质的示意性结构框图;
[0025]图8是根据本申请实施例的第二种计算机可读存储介质的示意性结构框图。
具体实施方式
[0026]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0027]图1为本专利技术实施例的NUMA架构的框架示意图;假设进程运行在CPU 0上,例如进程执行的是数组拷贝的操作,在执行进程时,首先初始化数组,此时数组内存在距离NODE 0最近的内存0上申请内存数据,然后进行数组拷贝的运算,此时主要的操作就是NODE 0上的内存0访问,由于内存带宽有限,此时性能并不是最优。
[0028]如图1所示,由于用户态程序都是运行在某一CPU上,此时在本地内存充足的情况下使用的都是当前NODE对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用内存带宽的内存应用方法,包括步骤:在NUMA架构的多内存节点系统中,当用户态程序待使用的内存数据的大小大于或者等于预设阈值时,将所述用户态程序待使用的内存数据划分为多个支持并行处理的数据块;至少基于与所述用户态程序待使用的内存数据所对应的内存节点的距离确定一个或者多个目标内存节点;将一个或者多个数据块保留在所述用户态程序所对应的内存节点,将剩余数据块分配至所述一个或者多个目标内存节点。2.如权利要求1所述的应用方法,其中,所述将所述用户态程序待使用的内存数据划分为多个支持并行处理的数据块的步骤包括:将所述用户态程序待使用的内存数据按照数组名或者指针名划分为多个支持并行处理的数据块。3.如权利要求1或2所述的应用方法,其中,所述至少基于与所述用户态程序待使用的内存数据所对应的内存节点的距离确定一个或者多个目标内存节点的步骤包括:在所述全部内存节点中,确定与所述用户态程序所对应的内存节点的距离小于或者等于距离阈值的内存节点作为候选节点,从所述候选节点中确定与划分的所述数据块数量相应的目标内存节点。4.如权利要求3所述的应用方法,其中,从所述候选节点中确定与划分的所述数据块数量相应的目标内存节点的步骤包括:在所述候选节点中,将其中内存容量大于或者等于预设容量阈值的一个或者多个确定为目标内存节点。5.如权利要求1或2所述的应用方法,其中,将一个或者多个数据块保留在所述用户态程序所对应的内存节点的步骤包括:将所述用户态程序最先使用的和/或等待使用的一个或者多个数据块保留在所述内存数据所在的内存节点;...

【专利技术属性】
技术研发人员:叶中玉周鹏胡翔余昇锦
申请(专利权)人:西安统信软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1