一种内存分配方法及节点的制作方法

文档序号:7999488阅读:216来源:国知局
一种内存分配方法及节点的制作方法
【专利摘要】本发明实施例公开了一种内存分配方法及节点,涉及计算机领域,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。具体方案为:第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项,访存特征表项包括应用程序的访存停顿时间;若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。本发明用于节点操作系统执行应用程序的过程中。
【专利说明】—种内存分配方法及节点

【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种内存分配方法及节点。

【背景技术】
[0002]随着计算机系统设计的发展,数据中心设计研究的深入,业界提出了内存云的设计方案。在该设计方案中,数据中心的一个节点操作系统(简称节点)的内存可以由本地内存和远程内存两部分组成,本地内存为该节点本身的内存,远程内存为该节点调用的距离该节点至少一跳的其他节点(远程节点)的内存。其中,调用远程内存完成访存任务时的访存延迟较大,影响系统性能。
[0003]现有技术中,为了减少访存延迟,可以将一个节点上的访存任务尽量分配到该节点的本地内存或者距离该节点较近的节点中。例如,当节点A的本地内存可以满足访存任务需要时,则不调用远程内存;当节点A的本地内存不足以满足访存任务需要时,则可以调用节点位置距离节点A较近的节点B的部分内存。
[0004]现有技术在减少访存延迟时,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响。具体的,由于不同的应用程序对访存延迟的敏感度不同,可能会存在由于访存敏感度较高的应用程序被分配至远程内存,而导致该应用程序的执行速度大幅降低,访存延迟增大,系统性能降低。


【发明内容】

[0005]本发明的实施例提供一种内存分配方法及节点,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
[0006]本发明实施例的第一方面,提供一种内存分配方法,包括:
[0007]第一节点根据待执行的应用程序的标识在访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述第一节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;
[0008]若所述访存特征表中包含所述应用程序的所述访存特征表项,所述第一节点则根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
[0009]结合第一方面,在一种可能的实现方式中,所述第一节点根据所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存,包括:
[0010]所述第一节点根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;
[0011]所述第一节点查询所述第一节点的内存容量,所述第一节点的内存容量包括所述第一节点的本地内存容量和所述第一节点的远程内存容量;
[0012]所述第一节点查询所述第一节点距离第二节点的跳数,所述第二节点为接受所述第一节点的调用,并为所述第一节点提供远程内存的节点;
[0013]所述第一节点根据所述访存特征表项在所述访存特征表中的排名、所述第一节点的内存容量以及所述第一节点距离所述第二节点的跳数,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
[0014]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:
[0015]若所述访存特征表中不包含所述应用程序的所述访存特征表项,所述第一节点则根据所述内存分配策略,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
[0016]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一节点根据所述内存分配策略,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存,包括:
[0017]所述第一节点查询所述第一节点的内存容量,所述第一节点的内存容量包括所述第一节点的本地内存容量和所述第一节点的远程内存容量;
[0018]所述第一节点查询所述第一节点距离第二节点的跳数,所述第二节点为接受所述第一节点的调用,并为所述第一节点提供远程内存的节点;
[0019]所述第一节点根据所述第一节点的内存容量、所述第一节点距离所述第二节点的跳数,为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存。
[0020]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一节点为所述应用程序分配所述第一节点的本地内存和/或所述第一节点的远程内存之后,所述方法还包括:
[0021]所述第一节点获取所述第一节点执行所述应用程序的当前访存停顿时间;
[0022]所述第一节点获取所述第一节点执行所述应用程序的本地访存延迟和所述第一节点执行所述应用程序的远程访存延迟;
[0023]所述第一节点根据所述本地访存延迟和所述远程访存延迟对所述当前访存停顿时间进行归一化;
[0024]所述第一节点根据归一化结果更新访存特征表。
[0025]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所述访存特征表中包含所述应用程序的访存特征表项时,所述第一节点根据归一化结果更新访存特征表,包括:
[0026]所述第一节点根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;
[0027]所述第一节点根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
[0028]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所述访存特征表中不包含所述应用程序的访存特征表项时,所述第一节点根据归一化结果更新访存特征表,包括:
[0029]所述第一节点将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
[0030]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一节点将所述归一化后的所述访存停顿时间存储至所述访存特征表之前,所述方法还包括:
[0031]所述第一节点判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;
[0032]若所述访存特征表项的个数超过阈值范围,所述第一节点则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
[0033]本发明实施例的第二方面,还提供一种节点,包括:
[0034]查询单元,用于根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,所述访存特征表项包括所述应用程序的访存停顿时间,所述访存停顿时间为所述节点根据所述应用程序调用内存数据时等待所述内存数据返回的时间;
[0035]第一分配单元,用于若所述访存特征表中包含所述应用程序的所述访存特征表项,则根据所述查询单元查找到的所述应用程序的所述访存特征表项,结合内存分配策略为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
[0036]结合第二方面,在一种可能的实现方式中,所述第一分配单元,包括:
[0037]获取模块,用于根据所述应用程序的标识获取所述应用程序的所述访存特征表项在所述访存特征表中的排名;
[0038]第一查询模块,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;
[0039]第二查询模块,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;
[0040]第一分配模块,用于根据所述访存特征表项在所述访存特征表中的排名、所述节点的内存容量以及所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
[0041]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述节点,还包括:
[0042]第二分配单元,用于若所述访存特征表中不包含所述应用程序的所述访存特征表项,则根据所述内存分配策略,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
[0043]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第二分配单元,包括:
[0044]第三查询模块,用于查询所述节点的内存容量,所述节点的内存容量包括所述节点的本地内存容量和所述节点的远程内存容量;
[0045]第四查询模块,用于查询所述节点距离第二节点的跳数,所述第二节点为接受所述节点的调用,并为所述节点提供远程内存的节点;
[0046]第二分配模块,用于根据所述节点的内存容量、所述节点距离所述第二节点的跳数,为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存。
[0047]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述节点,还包括:
[0048]第一获取单元,用于在所述第一分配单元或所述第二分配单元为所述应用程序分配所述节点的本地内存和/或所述节点的远程内存之后,获取所述节点执行所述应用程序的当前访存停顿时间;
[0049]第二获取单元,用于获取所述节点执行所述应用程序的本地访存延迟和所述节点执行所述应用程序的远程访存延迟;
[0050]归一化单元,用于根据所述第二获取单元获取的所述本地访存延迟和所述远程访存延迟对所述第一获取单元获取的所述当前访存停顿时间进行归一化;
[0051]更新单元,用于根据所述归一化单元的归一化结果更新访存特征表。
[0052]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,当所述访存特征表中包含所述应用程序的访存特征表项时,所述更新单元,包括:
[0053]计算模块,用于根据所述归一化结果和所述访存特征表中的所述应用程序的访存停顿时间计算所述应用程序的所述访存停顿时间的平均值;
[0054]更新模块,用于根据所述访存停顿时间的平均值更新所述访存特征表中的所述应用程序的访存特征表项。
[0055]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述更新单元,还用于将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表。
[0056]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述节点,还包括:
[0057]判断单元,用于在所述更新单元将所述归一化后的所述访存停顿时间和所述应用程序的标识存储至所述访存特征表之前,判断所述访存特征表中的访存特征表项的个数是否超过阈值范围;
[0058]删减单元,用于若所述访存特征表项的个数超过阈值范围,则采用最久未使用LRU算法删减所述访存特征表中的所述访存特征表项。
[0059]本发明实施例提供的内存分配方法及节点,第一节点根据待执行的应用程序的标识在预设的访存特征表中查询所述应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,第一节点可以根据应用程序的访存特征为应用程序分配第一节点的本地内存和/或第一节点的远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。

【专利附图】

【附图说明】
[0060]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0061]图1为本发明实施例1中的一种内存分配方法流程图;
[0062]图2为本发明实施例2中的一种内存分配方法流程图;
[0063]图3为本发明实施例3中的一种节点的组成示意图;
[0064]图4为本发明实施例3中的另一种节点的组成示意图;
[0065]图5为本发明实施例3中的另一种节点的组成示意图;
[0066]图6为本发明实施例3中的另一种节点的组成示意图;
[0067]图7为本发明实施例4中的一种节点的组成示意图。

【具体实施方式】
[0068]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0069]实施例1
[0070]本发明实施例提供一种内存分配方法,如图1所示,包括:
[0071]101、第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项。
[0072]其中,访存特征表项包括应用程序的访存停顿时间,访存停顿时间为第一节点根据所述应用程序调用内存数据时等待内存数据返回的时间。第一节点具体为数据中心的一个节点操作系统,该节点操作系统具有存储、计算等功能,可以调度执行相关的应用程序。
[0073]具体的,访存停顿时间为第一节点的处理器因等待内存数据返回而导致的流水线阻塞周期数,流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行的方法。
[0074]102、若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
[0075]其中,第一节点的远程内存为第一节点调用自第二节点的第二节点的内存。第二节点为数据中心的另一个节点操作系统。第一节点调用远程内存的具体方法可以包括:第一节点发送远程内存借用请求至第二节点,以使得第二节点处理该远程内存借用请求,并生成远程内存借用响应;第一节点接收来自第二节点的远程内存借用响应;第一节点根据远程内存借用响应接管借用自第二节点的远程内存;第一节点记录本次借用的远程内存信息,远程内存信息可以包括第一节点距离第二节点的跳数、该远程内存的内存容量等。
[0076]需要说明的是,第一节点可以调用至少一个其他节点的内存作为其远程内存,且第一节点还可以被其他节点的调用,为其他节点提供内存。
[0077]优选的,当访存特征表中包含应用程序的访存特征表项时,第一节点则可以查询该应用程序的访存特征表项,并根据该应用程序的访存特征表项,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
[0078]进一步地,第一节点根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存的方法具体包括:第一节点根据应用程序的标识获取应用程序的访存特征表项在访存特征表中的排名;第一节点查询第一节点的内存容量,第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量;第一节点查询第一节点距离第二节点的跳数,第二节点为接受第一节点的调用,并为第一节点提供远程内存的节点;第一节点根据访存特征表项在访存特征表中的排名、内存容量以及第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
[0079]需要说明的是,在本实施例的一种应用场景中,本发明实施例的方法还可以包括:若访存特征表中不包含应用程序的访存特征表项,第一节点则根据内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
[0080]进一步地,第一节点则仅根据内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存的方法具体包括:第一节点查询第一节点的内存容量,第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量;第一节点查询第一节点距离第二节点的跳数,第二节点为接受第一节点的调用,并为第一节点提供远程内存的节点;第一节点根据内存容量、第一节点距离第二节点的跳数,为应用程序分配第一节点的本地内存和/或第一节点的远程内存。
[0081]本发明实施例提供的内存分配方法,第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项,若访存特征表中包含应用程序的访存特征表项,第一节点则根据应用程序的访存特征表项,结合内存分配策略为应用程序分配第一节点的本地内存和/或第一节点的远程内存。与现有技术中,仅考虑本地节点与远程节点的距离对访存延迟的影响,而未考虑到应用程序的访存特征对访存延迟的影响相比,第一节点可以根据应用程序的访存特征为应用程序分配第一节点的本地内存和/或第一节点的远程内存,可以避免由于访存敏感度较高的应用程序被分配至远程内存而造成的增大访存延迟的问题,从而可以提高系统性能。
[0082]实施例2
[0083]本发明实施例提供一种内存分配方法,如图2所示,包括:
[0084]201、第一节点根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项。
[0085]其中,由于不同应用程序的访存特征存在较大的差异,例如,部分应用程序对访存延迟非常敏感,即随着访存延迟的增大,节点执行该应用程序的速度显著降低;部分应用程序对访存延迟并不敏感,即访存延迟的增大对节点执行该应用程序的速度并无明显影响。因此,在为应用程序分配内存前,第一节点可以根据待执行的应用程序的标识在预设的访存特征表中查询应用程序的访存特征表项。例如,应用程序的访存特征,即应用程序对访存延迟的敏感度可以表现在应用程序的访存停顿时间的长短上,当应用程序的访存停顿时间较长,即第一节点的处理器因等待内存数据返回而导致的流水线阻塞周期数较大时,则可以确定该应用程序对访存延迟的敏感度较高;当应用程序的访存停顿时间较短,即第一节点的处理器因等待内存数据返回而导致的流水线阻塞周期数较小时,则可以确定该应用程序对访存延迟的敏感度较低。
[0086]访存特征表为预设在第一节点中,用于存储第一节点执行过的应用程序的访存特征表项的列表,应用程序的访存特征表项可以包括:应用程序的访存停顿时间memorystall cycles、访存带宽占用 memory bandwidth consumpt1n、节点内存占用 memoryfootprint 等。
[0087]202、第一节点查询第一节点的内存容量,第一节点的内存容量包括第一节点的本地内存容量和第一节点的远程内存容量。
[0088]203、第一节点查询第一节点距离第二节点的跳数,第二节点为接受第一节点的调用,并为第一节点提供远程内存的节点。
[0089]需要说明的是,无论访存特征表中是否包含应用程序的访存特征表项,本发明实施例中都需要执行步骤202-203。
[0090]进一步的,第一节点可以判断访存特征表中是否包含应用程序的访存特征表项,即本发明实施例的方法还可以包括步骤204:
[0091]204、第一节点判断访存特征表中是否包含应用程序的访存特征表项。
[0092]其中,若访存特征表中包含应用程序的访存特征表项,则继续执行步骤205-206 ;若访存特征表中不包含应用程序的访存特征表项,则继续执行步骤207。
[0093]需要说明的是,在本实施例中步骤202、步骤203和步骤204的执行不分先后,可以以步骤202、步骤203、步骤204的顺序执行,也可以以步骤202、步骤204、步骤203的顺序执行,或者以其他的执行顺序执行步骤202、步骤203和步骤204,本实施例对步骤202、步骤203和步骤204执行的先后顺序不作限制。
[0094]205、第一节点根据应用程序的标识获取应用程序的访存特征表项在访存特征表中的排名。
[0095]具体的,当访存特征表中包含应用程序的访存特征表项时,第一节点则可以根据应用程序的标识获取应用程序的访存特征表项在访存特征表中的排名。
[0096]例如,表1所示为一个简单的访存特征表实例,访存特征表主要可以包含两项内容:应用程序的标识、应用程序的访存特征表项在访存特征表中的排名和与其对应的应用程序的访存特征。
[0097]表1

【权利要求】
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算法删减所述访存特征表中的所述访存特征表项。
【文档编号】H04L29/08GK104166596SQ201310183058
【公开日】2014年11月26日 申请日期:2013年5月17日 优先权日:2013年5月17日
【发明者】董建波, 侯锐, 张科, 张立新 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1