CN104166596A - 一种内存分配方法及节点 - Google Patents
一种内存分配方法及节点 Download PDFInfo
- Publication number
- CN104166596A CN104166596A CN201310183058.XA CN201310183058A CN104166596A CN 104166596 A CN104166596 A CN 104166596A CN 201310183058 A CN201310183058 A CN 201310183058A CN 104166596 A CN104166596 A CN 104166596A
- Authority
- CN
- China
- Prior art keywords
- node
- memory access
- memory
- application program
- list item
- 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
Abstract
本发明实施例公开了一种内存分配方法及节点,涉及计算机领域,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。具体方案为:第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项,访存特征表项包括应用程序的访存停顿时间;若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。本发明用于节点操作系统执行应用程序的过程中。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种内存分配方法及节点。
背景技术
随着计算机系统设计的发展,数据中心设计研究的深入,业界提出了内存云的设计方案。在该设计方案中,数据中心的一个节点操作系统(简称节点)的内存可以由本地内存和远程内存两部分组成,本地内存为该节点本身的内存,远程内存为该节点调用的距离该节点至少一跳的其他节点(远程节点)的内存。其中,调用远程内存完成访存任务时的访存延迟较大,影响系统性能。
现有技术中,为了减少访存延迟,可以将一个节点上的访存任务尽量分配到该节点的本地内存或者距离该节点较近的节点中。例如,当节点A的本地内存可以满足访存任务需要时,则不调用远程内存;当节点A的本地内存不足以满足访存任务需要时,则可以调用节点位置距离节点A较近的节点B的部分内存。
现有技术在减少访存延迟时,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响。具体的,由于不同的应用程序对访存延迟的敏感度不同,可能会存在由于访存敏感度较高的应用程序被分配至远程内存,而导致该应用程序的执行速度大幅降低,访存延迟增大,系统性能降低。
发明内容
本发明的实施例提供一种内存分配方法及节点,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
本发明实施例的第一方面,提供一种内存分配方法,包括:
第一节点根据待执行的应用程序的标识在访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述第一节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;
若所述访存特征表中包含所述应用程序的所述访存特征表项,所述第一节点则根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
结合第一方面,在一种可能的实现方式中,所述第一节点根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存,包括:
所述第一节点根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;
所述第一节点查询所述第一节点的内存容量,所述第一节点的内存容量包括所述第一节点的本地内存容量和所述第一节点的远程内存容量;
所述第一节点查询所述第一节点距离第二节点的跳数,所述第二节点为接受所述第一节点的调用,并为所述第一节点提供远程内存的节点;
所述第一节点根据所述访存特征表项在所述访存特征表中的排名、所述第一节点的内存容量以及所述第一节点距离所述第二节点的跳数,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:
若所述访存特征表中不包含所述应用程序的所述访存特征表项,所述第一节点则根据所述内存分配策略,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一节点根据所述内存分配策略,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存,包括:
所述第一节点查询所述第一节点的内存容量,所述第一节点的内存容量包括所述第一节点的本地内存容量和所述第一节点的远程内存容量;
所述第一节点查询所述第一节点距离第二节点的跳数,所述第二节点为接受所述第一节点的调用,并为所述第一节点提供远程内存的节点;
所述第一节点根据所述第一节点的内存容量、所述第一节点距离所述第二节点的跳数,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一节点为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存之后,所述方法还包括:
所述第一节点获取所述第一节点执行所述应用程序的当前访存停顿时间;
所述第一节点获取所述第一节点执行所述应用程序的本地访存延迟和所述第一节点执行所述应用程序的远程访存延迟;
所述第一节点根据所述本地访存延迟和所述远程访存延迟对所述当前访存停顿时间进行归一化;
所述第一节点根据归一化结果更新访存特征表。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所述访存特征表中包含所述应用程序的访存特征表项时,所述第一节点根据归一化结果更新访存特征表,包括:
所述第一节点根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;
所述第一节点根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所述访存特征表中不包含所述应用程序的访存特征表项时,所述第一节点根据归一化结果更新访存特征表,包括:
所述第一节点将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一节点将所述归一化后的所述访存停顿时间存储至所述访存特征表之前,所述方法还包括:
所述第一节点判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;
若所述访存特征表项的个数超过阈值范围,所述第一节点则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
本发明实施例的第二方面,还提供一种节点,包括:
查询单元,用于根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;
第一分配单元,用于若所述访存特征表中包含所述应用程序的所述访存特征表项,则根据所述查询单元查找到的所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
结合第二方面,在一种可能的实现方式中,所述第一分配单元,包括:
获取模块,用于根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;
第一查询模块,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;
第二查询模块,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;
第一分配模块,用于根据所述访存特征表项在所述访存特征表中的排名、所述节点的内存容量以及所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述节点,还包括:
第二分配单元,用于若所述访存特征表中不包含所述应用程序的所述访存特征表项,则根据所述内存分配策略,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第二分配单元,包括:
第三查询模块,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;
第四查询模块,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;
第二分配模块,用于根据所述节点的内存容量、所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述节点,还包括:
第一获取单元,用于在所述第一分配单元或所述第二分配单元为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存之后,获取所述节点执行所述应用程序的当前访存停顿时间;
第二获取单元,用于获取所述节点执行所述应用程序的本地访存延迟和所述节点执行所述应用程序的远程访存延迟;
归一化单元,用于根据所述第二获取单元获取的所述本地访存延迟和所述远程访存延迟对所述第一获取单元获取的所述当前访存停顿时间进行归一化;
更新单元,用于根据所述归一化单元的归一化结果更新访存特征表。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,当所述访存特征表中包含所述应用程序的访存特征表项时,所述更新单元,包括:
计算模块,用于根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;
更新模块,用于根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述更新单元,还用于将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述节点,还包括:
判断单元,用于在所述更新单元将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表之前,判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;
删减单元,用于若所述访存特征表项的个数超过阈值范围,则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
本发明实施例提供的内存分配方法及节点,第一节点根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,第一节点可以根据应用程序的访存特征为应用程序分配第一节点的本地内存和/或第一节点的远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中的一种内存分配方法流程图;
图2为本发明实施例2中的一种内存分配方法流程图;
图3为本发明实施例3中的一种节点的组成示意图;
图4为本发明实施例3中的另一种节点的组成示意图;
图5为本发明实施例3中的另一种节点的组成示意图;
图6为本发明实施例3中的另一种节点的组成示意图;
图7为本发明实施例4中的一种节点的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种内存分配方法,如图1所示,包括:
101、第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项。
其中,访存特征表项包括应用程序的访存停顿时间,访存停顿时间为第一节点根据所述应用程序调用内存数据时等待内存数据返回的时间。第一节点具体为数据中心的一个节点操作系统,该节点操作系统具有存储、计算等功能,可以调度执行相关的应用程序。
具体的,访存停顿时间为第一节点的处理器因等待内存数据返回而导致的流水线阻塞周期数,流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行的方法。
102、若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
其中,第一节点的远程内存为第一节点调用自第二节点的第二节点的内存。第二节点为数据中心的另一个节点操作系统。第一节点调用远程内存的具体方法可以包括:第一节点发送远程内存借用请求至第二节点,以使得第二节点处理该远程内存借用请求,并生成远程内存借用响应;第一节点接收来自第二节点的远程内存借用响应;第一节点根据远程内存借用响应接管借用自第二节点的远程内存;第一节点记录本次借用的远程内存信息,远程内存信息可以包括第一节点距离第二节点的跳数、该远程内存的内存容量等。
需要说明的是,第一节点可以调用至少一个其他节点的内存作为其远程内存,且第一节点还可以被其他节点的调用,为其他节点提供内存。
优选的,当访存特征表中包含应用程序的访存特征表项时,第一节点则可以查询该应用程序的访存特征表项,并根据该应用程序的访存特征表项,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
进一步地,第一节点根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存的方法具体包括:第一节点根据应用程序的标识获取应用程序的访存特征表项在访存特征表中的排名;第一节点查询第一节点的内存容量,第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量;第一节点查询第一节点距离第二节点的跳数,第二节点为接受第一节点的调用,并为第一节点提供远程内存的节点;第一节点根据访存特征表项在访存特征表中的排名、内存容量以及第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
需要说明的是,在本实施例的一种应用场景中,本发明实施例的方法还可以包括:若访存特征表中不包含应用程序的访存特征表项,第一节点则根据内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
进一步地,第一节点则仅根据内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存的方法具体包括:第一节点查询第一节点的内存容量,第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量;第一节点查询第一节点距离第二节点的跳数,第二节点为接受第一节点的调用,并为第一节点提供远程内存的节点;第一节点根据内存容量、第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
本发明实施例提供的内存分配方法,第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,第一节点可以根据应用程序的访存特征为应用程序分配第一节点的本地内存和/或第一节点的远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
实施例2
本发明实施例提供一种内存分配方法,如图2所示,包括:
201、第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项。
其中,由于不同应用程序的访存特征存在较大的差异,例如,部分应用程序对访存延迟非常敏感,即随着访存延迟的增大,节点执行该应用程序的速度显著降低;部分应用程序对访存延迟并不敏感,即访存延迟的增大对节点执行该应用程序的速度并无明显影响。因此,在为应用程序分配内存前,第一节点可以根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项。例如,应用程序的访存特征,即应用程序对访存延迟的敏感度可以表现在应用程序的访存停顿时间的长短上,当应用程序的访存停顿时间较长,即第一节点的处理器因等待内存数据返回而导致的流水线阻塞周期数较大时,则可以确定该应用程序对访存延迟的敏感度较高;当应用程序的访存停顿时间较短,即第一节点的处理器因等待内存数据返回而导致的流水线阻塞周期数较小时,则可以确定该应用程序对访存延迟的敏感度较低。
访存特征表为预设在第一节点中,用于存储第一节点执行过的应用程序的访存特征表项的列表,应用程序的访存特征表项可以包括:应用程序的访存停顿时间memory stall cycles、访存带宽占用memorybandwidth consumption、节点内存占用memory footprint等。
202、第一节点查询第一节点的内存容量,第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量。
203、第一节点查询第一节点距离第二节点的跳数,第二节点为接受第一节点的调用,并为第一节点提供远程内存的节点。
需要说明的是,无论访存特征表中是否包含应用程序的访存特征表项,本发明实施例中都需要执行步骤202-203。
进一步的,第一节点可以判断访存特征表中是否包含应用程序的访存特征表项,即本发明实施例的方法还可以包括步骤204:
204、第一节点判断访存特征表中是否包含应用程序的访存特征表项。
其中,若访存特征表中包含应用程序的访存特征表项,则继续执行步骤205-206;若访存特征表中不包含应用程序的访存特征表项,则继续执行步骤207。
需要说明的是,在本实施例中步骤202、步骤203和步骤204的执行不分先后,可以以步骤202、步骤203、步骤204的顺序执行,也可以以步骤202、步骤204、步骤203的顺序执行,或者以其他的执行顺序执行步骤202、步骤203和步骤204,本实施例对步骤202、步骤203和步骤204执行的先后顺序不作限制。
205、第一节点根据应用程序的标识获取应用程序的访存特征表项在访存特征表中的排名。
具体的,当访存特征表中包含应用程序的访存特征表项时,第一节点则可以根据应用程序的标识获取应用程序的访存特征表项在访存特征表中的排名。
例如,表1所示为一个简单的访存特征表实例,访存特征表主要可以包含两项内容:应用程序的标识、应用程序的访存特征表项在访存特征表中的排名和与其对应的应用程序的访存特征。
表1
在表1中,访存特征表项包括:应用程序的访存停顿时间memory stallcycles,访存特征表是根据应用程序的访存的敏感度高低依次存储应用程序的访存特征表项的。则应用程序1的访存停顿时间memory stall cycles1最长,应用程序1的访存敏感度最高,应用程序n的访存停顿时间memorystall cycles n最短,应用程序n的访存敏感度最低。
206、第一节点根据访存特征表项在访存特征表中的排名、第一节点的内存容量以及第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
其中,第一节点可以根据访存特征表项在访存特征表中的排名、内存容量以及第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存的具体方法可以是:第一节点获取第一节点的内存容量的分布情况,第一节点的第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量;第一节点获取距离第一节点不同跳数的远程内存的分布情况;第一节点根据获取到的本地内存和远程内存的分布情况,结合访存特征表项在访存特征表中的排名为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
例如,若第一节点的本地内存容量占第一节点的全部内存容量(包括本地内存容量和远程内存容量)的30%,距离第一节点1跳的远程内存容量占第一节点的全部内存容量的30%,距离第一节点2跳的远程内存容量占第一节点的全部内存容量的40%,则第一节点可以将访存特征表中访存特征表项排名前30%的应用程序分配至第一节点的本地内存,第一节点可以将访存特征表中访存特征表项排名30%-60%的应用程序分配至距离第一节点1跳的远程内存,第一节点可以将访存特征表中访存特征表项排名后40%的应用程序分配至距离第一节点2跳的远程内存。
其中,在分配过程中,若第一节点所选范围内的内存容量不足以满足应用程序的访存任务需要时,则可以借用其他范围内的内存,直至第一节点完成内存分配。例如,若访存特征表中包含应用程序A的访存特征表项,应用程序A的访存特征表项在访存特征表中的排名处于30%-60%。但是,第一节点发现距离第一节点1跳的远程内存不足以满足应用程序A访存任务需要,则第一节点可以借用第一节点的本地内存或者距离第一节点2跳的远程内存。
需要说明的是,本发明实施例的内存分配方法中,第一节点根据访存特征表项在访存特征表中的排名、内存容量以及第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存的具体方法包括但不限于本实施例所列举的方法,第一节点根据访存特征表项在访存特征表中的排名、内存容量以及第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存的其他方法本实施例不再赘述。
207、第一节点根据第一节点的内存容量、第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
其中,当访存特征表中不包含应用程序的访存特征表项时,第一节点则获取第一节点的内存容量的分布情况,第一节点的第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量;第一节点获取距离第一节点不同跳数的远程内存的分布情况;第一节点根据获取到的本地内存和远程内存的分布情况为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
进一步的,第一节点还可以实时更新访存特征表中的访存特征表项,以使得第一节点在给应用程序分配内存时,能够避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而提高系统性能,因此,本实施例的方法还可以包括步骤208-211:
208、第一节点获取第一节点执行应用程序的当前访存停顿时间。
其中,由于第一节点可以根据访存特征表项在访存特征表中的排名、内存容量以及第一节点距离第二节点的跳数为应用程序分配第一节点的本地内存和/或第一节点的远程内存,或者第一节点可以根据第一节点的内存容量以及第一节点距离第二节点的跳数为应用程序分配第一节点的本地内存和/或第一节点的远程内存,而第一节点执行同一应用程序时,该应用程序的访存特征表项在访存特征表中的排名、第一节点的内存容量以及第一节点距离第二节点的跳数都不尽相同,因此第一节点每次执行应用程序的访存停顿时间也不尽相同,因此,在第一节点可以在第一节点执行应用程序的过程中,获取第一节点执行应用程序的当前访存停顿时间,以便于第一节点根据当前访存停顿时间更新访存特征表。
209、第一节点获取第一节点的本地访存延迟和第一节点执行应用程序的远程访存延迟。
其中,第一节点的本地访存延迟为第一节点将应用程序分配至本地内存时,第一节点执行该应用程序的访存延迟,第一节点执行应用程序的远程访存延迟可以包括:第一节点将应用程序分配至距离第一节点1跳的远程内存时,第一节点执行该应用程序的远程访存延迟、第一节点将应用程序分配至距离第一节点2跳的远程内存时,第一节点执行该应用程序的远程访存延迟以及第一节点将应用程序分配至距离第一节点n跳的远程内存时,第一节点执行该应用程序的远程访存延迟。
210、第一节点根据本地访存延迟和远程访存延迟对当前访存停顿时间进行归一化。
其中,第一节点根据本地访存延迟和远程访存延迟归一化当前访存停顿时间的具体方法为:第一节点采用第一节点执行应用程序的远程访存延迟除以第一节点的本地访存延迟的商值,乘以第一节点执行应用程序的当前访存停顿时间,作为当前访存停顿时间的归一化结果。
例如,若第一节点执行应用程序的远程访存延迟为T1,第一节点的本地访存延迟为T2,第一节点执行应用程序的当前访存停顿时间为T3,则第一节点根据本地访存延迟和远程访存延迟归一化当前访存停顿时间具体如公式:T3×(T1/T2)。
进一步的,第一节点可以记录第一节点的本地内存被访问次数、距离第一节点的一跳的远程内存被访问次数,以及距离第一节点的两跳的远程内存被访问次数,然后根据本地访存延迟和远程访存延迟,结合已记录的内存访问次数归一化当前访存停顿时间。
例如,若第一节点执行应用程序的本地访存延迟为T,第一节点的本地内存被访问次数为K;第一节点执行应用程序的一跳远程内存访问延迟为T1,距离第一节点一跳远程内存被访问次数为K1;第一节点执行应用程序的两跳远程内存访问延迟为T2,距离第一节点两跳远程内存被访问次数为K2;第一节点执行应用程序的当前访存停顿时间为T3,则第一节点根据本地访存延迟和远程访存延迟归一化当前访存停顿时间具体如公式:
211、第一节点根据归一化结果更新访存特征表。
具体的,步骤211可以包括步骤211a-211b或者步骤211c:
211a、当访存特征表中包含应用程序的访存特征表项时,第一节点根据归一化结果和访存特征表中的应用程序的访存停顿时间计算应用程序的访存停顿时间的平均值。
211b、第一节点根据访存停顿时间的平均值更新访存特征表中的应用程序的访存特征表项。
具体的,当访存特征表中包含应用程序的访存特征表项时,第一节点可以计算归一化后的当前访存停顿时间和访存特征表中的应用程序的访存停顿时间的平均值,并使用计算得到的访存停顿时间的平均值替换访存特征表中的应用程序的访存特征表项。
211c、当访存特征表中不包含应用程序的访存特征表项时,第一节点将归一化后的访存停顿时间和应用程序的标识存储至访存特征表。
进一步可选的,由于访存特征表中不包含应用程序的访存特征表项,因此第一节点并不能使用当前访存停顿时间的平均值替换访存特征表中的应用程序的访存特征表项,而是将将归一化后的访存停顿时间和应用程序的标识存储至访存特征表。在这种情况下,若访存特征表中的访存特征表项的个数超过阈值范围,则会存在访存特征表中的访存特征表项溢出的问题,因此,当访存特征表中不包含应用程序的访存特征表项时,在步骤211c第一节点将归一化后的访存停顿时间和应用程序的标识存储至访存特征表之前,本实施例的方法还可以包括:第一节点判断访存特征表中的访存特征表项的个数是否超过阈值范围;若访存特征表项的个数超过阈值范围,第一节点则采用最久未使用(Least Recently Used,LRU)算法删减访存特征表中的访存特征表项。
其中,采用LRU算法可以删除访存特征表中存储的第一节点最久未执行、并未更新过的访存特征表项。
需要说明的是,在本发明实施例的一种应用场景中,在执行应用程序时,第一节点也可以随机分配内存或者根据内存分配策略分配内存,在第一节点执行应用程序的一段时间内,第一节点可以获取该应用程序的访存特征,并根据该应用程序的访存特征判断上述分配方式是否合理,若不合理,第一节点则根据获取到的访存特征重新为该应用程序分配内存。
进一步的,除了不同的应用程序对访存延迟的敏感度不同,可能会存在由于访存敏感度较高的应用程序被分配至远程内存,而导致该应用程序的执行速度大幅降低,访存延迟增大,系统性能降低之外,节点的访存带宽(memory bandwidth)、内存容量(memory capacity)等也可能会影响应用程序的执行速度,进而影响系统性能。例如,通常情况下,本地内存与远程内存相比,本地内存具有较高的访存带宽,而远程内存由于可以共享多个节点,因而具有较高的内存容量。因此,若第一节点将带宽需求高、容量需求小的程序分配至本地内存,而将带宽需求低、容量需求高的程序分配远端内存,也可以有效提高系统的性能。第一节点根据访存带宽、内存容量等为应用程序分配内存的方法本实施例这里不再赘述。
本发明实施例提供的内存分配方法,第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,第一节点可以根据应用程序的访存特征为应用程序分配第一节点的本地内存和/或第一节点的远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
实施例3
本发明实施例提供一种节点,如图3,包括:查询单元31、第一分配单元32。
查询单元31,用于根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间。
第一分配单元32,用于若所述访存特征表中包含所述应用程序的所述访存特征表项,则根据所述查询单元31查找到的所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
进一步的,如图4所示,所述第一分配单元32,可以包括:获取模块321、第一查询模块322、第二查询模块323、第一分配模块324。
获取模块321,用于根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名。
第一查询模块322,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量。
第二查询模块323,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点。
第一分配模块324,用于根据所述访存特征表项在所述访存特征表中的排名、所述节点的内存容量以及所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
进一步的,如图5所示,所述节点,还可以包括:第二分配单元33。
第二分配单元33,用于若所述访存特征表中不包含所述应用程序的所述访存特征表项,则根据所述内存分配策略,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
进一步的,如图6所示,所述第二分配单元33,包括:第三查询模块331、第四查询模块332、第二分配模块333。
第三查询模块331,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量。
第四查询模块332,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点。。
第二分配模块333,用于根据所述节点的内存容量、所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
进一步的,所述节点,还可以包括:第一获取单元34、第二获取单元35、归一化单元36、更新单元37。
第一获取单元34,用于在所述第一分配单元或所述第二分配单元为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存之后,获取所述节点执行所述应用程序的当前访存停顿时间。
第二获取单元35,用于获取所述节点执行所述应用程序的本地访存延迟和所述节点执行所述应用程序的远程访存延迟。
归一化单元36,用于根据所述第二获取单元获取的所述本地访存延迟和所述远程访存延迟对所述第一获取单元获取的所述当前访存停顿时间进行归一化。
更新单元37,用于根据所述归一化单元的归一化结果更新访存特征表。
进一步的,在本实施例的一种应用场景中,当所述访存特征表中包含所述应用程序的访存特征表项时,所述更新单元37,可以包括:计算模块371、更新模块372。
计算模块371,用于根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值。
更新模块372,用于根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
进一步的,在本实施例的灵一种应用场景中,所述更新单元37,还用于将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
进一步的,所述节点,还可以包括:判断单元38、删减单元39。
判断单元38,用于在所述更新单元37将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表之前,判断所述访存特征表中的访存特征表项的个数是否超过阈值范围。
删减单元39,用于若所述访存特征表项的个数超过阈值范围,则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
需要说明的是,本发明实施例提供的节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的节点,可以根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配节点的本地内存和/或节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,节点可以根据应用程序的访存特征将应用程序分配至节点的本地内存和/或远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
实施例4
本发明实施例提供一种节点,如图7所示,包括:处理器41、存储器42。
处理器41,用于根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;若所述访存特征表中包含所述应用程序的所述访存特征表项,则根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
存储器42,用于预存所述访存特征表。
进一步的,所述存储器42,还用于预存所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;存储所述节点距离第二节点的跳数。
所述处理器41,还用于根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;根据所述访存特征表项在所述访存特征表中的排名、所述节点的内存容量以及所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
进一步的,所述处理器41,还用于若所述访存特征表中不包含所述应用程序的所述访存特征表项,则根据所述内存分配策略,为所述应用程序分配所述节点的本地内存和/或节点的远程内存。
进一步的,所述处理器41,还用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;根据所述节点的内存容量、所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
进一步的,所述处理器41,还用于获取所述节点执行所述应用程序的当前访存停顿时间;获取所述节点执行所述应用程序的本地访存延迟和所述节点执行所述应用程序的远程访存延迟;根据所述本地访存延迟和所述远程访存延迟对所述当前访存停顿时间进行归一化;根据所述归一化单元的归一化结果更新访存特征表。
进一步的,所述处理器41,还用于当所述访存特征表中包含所述应用程序的访存特征表项时,根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
进一步的,所述处理器41,还用于将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
进一步的,所述处理器41,还用于在将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表之前,判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;若所述访存特征表项的个数超过阈值范围,则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
需要说明的是,本发明实施例提供的节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的节点,可以根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配节点的本地内存和/或节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,节点可以根据应用程序的访存特征将应用程序分配至节点的本地内存和/或远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种内存分配方法,其特征在于,包括:
第一节点根据待执行的应用程序的标识在访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述第一节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;
若所述访存特征表中包含所述应用程序的所述访存特征表项,所述第一节点则根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
2.根据权利要求1所述的内存分配方法,其特征在于,所述第一节点根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存,包括:
所述第一节点根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;
所述第一节点查询所述第一节点的内存容量,所述第一节点的内存容量包括所述第一节点的本地内存容量和所述第一节点的远程内存容量;
所述第一节点查询所述第一节点距离第二节点的跳数,所述第二节点为接受所述第一节点的调用,并为所述第一节点提供远程内存的节点;
所述第一节点根据所述访存特征表项在所述访存特征表中的排名、所述第一节点的内存容量以及所述第一节点距离所述第二节点的跳数,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
3.根据权利要求1所述的内存分配方法,其特征在于,还包括:
若所述访存特征表中不包含所述应用程序的所述访存特征表项,所述第一节点则根据所述内存分配策略,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
4.根据权利要求3述的内存分配方法,其特征在于,所述第一节点根据所述内存分配策略,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存,包括:
所述第一节点查询所述第一节点的内存容量,所述第一节点的内存容量包括所述第一节点的本地内存容量和所述第一节点的远程内存容量;
所述第一节点查询所述第一节点距离第二节点的跳数,所述第二节点为接受所述第一节点的调用,并为所述第一节点提供远程内存的节点;
所述第一节点根据所述第一节点的内存容量、所述第一节点距离所述第二节点的跳数,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
5.根据权利要求2或4所述的内存分配方法,其特征在于,在所述第一节点为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存之后,所述方法还包括:
所述第一节点获取所述第一节点执行所述应用程序的当前访存停顿时间;
所述第一节点获取所述第一节点执行所述应用程序的本地访存延迟和所述第一节点执行所述应用程序的远程访存延迟;
所述第一节点根据所述本地访存延迟和所述远程访存延迟对所述当前访存停顿时间进行归一化;
所述第一节点根据归一化结果更新访存特征表。
6.根据权利要求5所述的内存分配方法,其特征在于,当所述访存特征表中包含所述应用程序的访存特征表项时,所述第一节点根据归一化结果更新访存特征表,包括:
所述第一节点根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;
所述第一节点根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
7.根据权利要求5所述的内存分配方法,其特征在于,当所述访存特征表中不包含所述应用程序的访存特征表项时,所述第一节点根据归一化结果更新访存特征表,包括:
所述第一节点将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
8.根据权利要求7所述的内存分配方法,其特征在于,在所述第一节点将所述归一化后的所述访存停顿时间存储至所述访存特征表之前,还包括:
所述第一节点判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;
若所述访存特征表项的个数超过阈值范围,所述第一节点则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
9.一种节点,其特征在于,包括:
查询单元,用于根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;
第一分配单元,用于若所述访存特征表中包含所述应用程序的所述访存特征表项,则根据所述查询单元查找到的所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
10.根据权利要求9所述的节点,其特征在于,所述第一分配单元,包括:
获取模块,用于根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;
第一查询模块,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;
第二查询模块,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;
第一分配模块,用于根据所述访存特征表项在所述访存特征表中的排名、所述节点的内存容量以及所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
11.根据权利要求9所述的节点,其特征在于,还包括:
第二分配单元,用于若所述访存特征表中不包含所述应用程序的所述访存特征表项,则根据所述内存分配策略,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
12.根据权利要求11所述的节点,其特征在于,所述第二分配单元,包括:
第三查询模块,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;
第四查询模块,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;
第二分配模块,用于根据所述节点的内存容量、所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
13.根据权利要求10或12所述的节点,其特征在于,还包括:
第一获取单元,用于在所述第一分配单元或所述第二分配单元为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存之后,获取所述节点执行所述应用程序的当前访存停顿时间;
第二获取单元,用于获取所述节点执行所述应用程序的本地访存延迟和所述节点执行所述应用程序的远程访存延迟;
归一化单元,用于根据所述第二获取单元获取的所述本地访存延迟和所述远程访存延迟对所述第一获取单元获取的所述当前访存停顿时间进行归一化;
更新单元,用于根据所述归一化单元的归一化结果更新访存特征表。
14.根据权利要求13所述的节点,其特征在于,当所述访存特征表中包含所述应用程序的访存特征表项时,所述更新单元,包括:
计算模块,用于根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;
更新模块,用于根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
15.根据权利要求13所述的节点,其特征在于,所述更新单元,还用于将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
16.根据权利要求15所述的节点,其特征在于,还包括:
判断单元,用于在所述更新单元将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表之前,判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;
删减单元,用于若所述访存特征表项的个数超过阈值范围,则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310183058.XA CN104166596B (zh) | 2013-05-17 | 2013-05-17 | 一种内存分配方法及节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310183058.XA CN104166596B (zh) | 2013-05-17 | 2013-05-17 | 一种内存分配方法及节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104166596A true CN104166596A (zh) | 2014-11-26 |
CN104166596B CN104166596B (zh) | 2018-06-26 |
Family
ID=51910428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310183058.XA Active CN104166596B (zh) | 2013-05-17 | 2013-05-17 | 一种内存分配方法及节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166596B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294192A (zh) * | 2015-05-26 | 2017-01-04 | 龙芯中科技术有限公司 | 内存分配方法、内存分配装置及服务器 |
WO2019029236A1 (zh) * | 2017-08-07 | 2019-02-14 | 华为技术有限公司 | 一种内存分配方法和服务器 |
CN109445945A (zh) * | 2018-10-29 | 2019-03-08 | 努比亚技术有限公司 | 应用程序的内存分配方法、移动终端、服务器及存储介质 |
CN110377430A (zh) * | 2019-07-24 | 2019-10-25 | 中南民族大学 | 数据迁移方法、设备、存储介质及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073992A1 (en) * | 2005-09-29 | 2007-03-29 | International Business Machines Corporation | Memory allocation in a multi-node computer |
CN101158927A (zh) * | 2007-10-25 | 2008-04-09 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
CN102439570A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 针对多步长非一致性内存访问numa架构的内存管理方法及装置 |
CN102609312A (zh) * | 2012-01-10 | 2012-07-25 | 中国科学技术大学苏州研究院 | 基于公平性考虑的短作业优先内存请求调度方法 |
CN102646058A (zh) * | 2011-02-21 | 2012-08-22 | 华为技术有限公司 | 多节点计算系统下选择共享内存所在节点的方法和装置 |
-
2013
- 2013-05-17 CN CN201310183058.XA patent/CN104166596B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073992A1 (en) * | 2005-09-29 | 2007-03-29 | International Business Machines Corporation | Memory allocation in a multi-node computer |
CN101158927A (zh) * | 2007-10-25 | 2008-04-09 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
CN102646058A (zh) * | 2011-02-21 | 2012-08-22 | 华为技术有限公司 | 多节点计算系统下选择共享内存所在节点的方法和装置 |
CN102439570A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 针对多步长非一致性内存访问numa架构的内存管理方法及装置 |
CN102609312A (zh) * | 2012-01-10 | 2012-07-25 | 中国科学技术大学苏州研究院 | 基于公平性考虑的短作业优先内存请求调度方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294192A (zh) * | 2015-05-26 | 2017-01-04 | 龙芯中科技术有限公司 | 内存分配方法、内存分配装置及服务器 |
CN106294192B (zh) * | 2015-05-26 | 2020-01-31 | 龙芯中科技术有限公司 | 内存分配方法、内存分配装置及服务器 |
WO2019029236A1 (zh) * | 2017-08-07 | 2019-02-14 | 华为技术有限公司 | 一种内存分配方法和服务器 |
US11042412B2 (en) | 2017-08-07 | 2021-06-22 | Huawei Technologies Co., Ltd. | Memory allocation method and server |
CN109445945A (zh) * | 2018-10-29 | 2019-03-08 | 努比亚技术有限公司 | 应用程序的内存分配方法、移动终端、服务器及存储介质 |
CN109445945B (zh) * | 2018-10-29 | 2023-09-19 | 努比亚技术有限公司 | 应用程序的内存分配方法、移动终端、服务器及存储介质 |
CN110377430A (zh) * | 2019-07-24 | 2019-10-25 | 中南民族大学 | 数据迁移方法、设备、存储介质及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104166596B (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9971681B2 (en) | Lazy real time garbage collection method | |
WO2023050712A1 (zh) | 一种深度学习业务的任务调度方法及相关装置 | |
CN102439577B (zh) | 一种构建内存访问模型的方法及装置 | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
KR20080068468A (ko) | 멀티 프로세서 시스템 온 칩에서의 메모리 관리 방법 | |
CN104166596A (zh) | 一种内存分配方法及节点 | |
US10261918B2 (en) | Process running method and apparatus | |
CN106406762A (zh) | 一种重复数据删除方法及装置 | |
US8954969B2 (en) | File system object node management | |
EP2743833B1 (en) | Method and apparatus for querying and traversing virtual memory area | |
CN106897022B (zh) | 一种管理存储设备的方法及装置 | |
EP4123473A1 (en) | Intelligent query plan cache size management | |
RU2010138732A (ru) | Система обновления карты и программа обновления карты с использованием динамической кэш-памяти | |
US9460000B2 (en) | Method and system for dynamically changing page allocator | |
CN104391947B (zh) | 海量gis数据实时处理方法及系统 | |
CN102169464B (zh) | 一种用于非易失性存储器的缓存方法、装置及智能卡 | |
JP2019164629A (ja) | モデル生成装置、情報処理装置、モデル生成方法およびプログラム | |
CN103874988A (zh) | 对高速缓存进行可编程分区 | |
CN105117168A (zh) | 一种信息处理方法和电子设备 | |
CN106547488B (zh) | 一种混合缓存管理方法 | |
CN106775450B (zh) | 一种混合存储系统中的数据分布方法 | |
US20090320036A1 (en) | File System Object Node Management | |
CN109492020A (zh) | 一种数据缓存方法、装置、电子设备及存储介质 | |
JP2012083870A5 (zh) | ||
CN110688379B (zh) | 一种数据存储方法、系统、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |