本发明专利技术实施例提供一种多节点计算系统下选择共享内存所在节点的方法和装置,以提高多节点计算系统的总体存取性能。所述方法包括:获取确定各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值之和的参数;根据所述参数计算各CPU与任意一个节点上内存之间的内存亲和性权值之和;将其中计算所得内存亲和性权值之和最小时的节点选择为各CPU的共享内存所在节点。由于访问共享内存的各中央处理器CPU与这一节点上内存之间的内存亲和性权值之和最小,因此,各节点上的CPU访问这一节点上的共享内存付出的代价最小,在需要访问共享内存的场景下系统的存取效率最高,从而提高了系统的总体存取性能。
【技术实现步骤摘要】
本专利技术涉及通信领域,尤其涉及多节点计算系统下选择共享内存所在节点的方法和装置。
技术介绍
随着计算与存储技术的不断发展,多个节点并存的计算系统(可以称为“多节点计算系统”)已经越来越普及。为了解决多节点计算系统中的中央处理器(CPU,CentralProcessor Unit)在存取内存方面的瓶颈,多节点计算系统出现了非一致性内存访问(NUMA, Non-Uniform Memory Access)架构。在NUMA架构下,每个应用程序可以运行在某一硬件节点上,该节点的CPU可以存取本节点和其他节点上的内存区域,但在不同节点上的存取速度与效率不同,这种区别主要是由于每个节点上的CPU与不同节点的内存具有不同的“内存亲和性”。所谓内存亲和性,是指NUMA架构下每个CPU存取该CPU所在节点或其他节点上的内存的延迟大小。延迟越小,表明内存亲和性越高。现有技术提供的NUMA架构考虑了 CPU和内存对的亲和性问题,S卩,获取CPU和内存(该内存不与其他节点上的CPU共享)之间的总线连接速度和跳数(hop);然后使用总线连接速度和跳数作为权值来计算[cpu, memory, val],这里,cpu, memory表示一对CPU和memory (称为“CPU和内存对”),val指cpu和memory之间的内存亲和性的值,简称“内存亲和性权值”,而[cpu,memory, val]就表示cpu和memory构成的CPU和内存对之间的内存亲和性权值为val,不同的[cpu, memory, val]构成了 CPU和内存对亲和性表;当一个应用程序需要申请内存时,首先查询该CPU和内存对亲和性表,得到一个内存亲和性最高的节点,在该节点上开辟一块内存空间。上述现有技术提供的NUMA架构只是解决了没有共享内存时的内存亲和性问题,在多个CPU需要共享内存时,如何在多个节点中选择一个最合适的节点作为分配共享内存的节点,从而最优化内存总体存取效率,使在NUMA架构下的多个节点存取该共享内存时的内存亲和性最高。然而,现有的NUMA架构并没有相应的解决方案。
技术实现思路
本专利技术实施例提供一种多节点计算系统下选择共享内存所在节点的方法和装置,以将共享内存分配到最优节点上,而提高多节点计算系统的总体存取性能。本专利技术实施例提供一种多节点计算系统下选择共享内存所在节点的方法,包括获取确定各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值之和的参数;根据所述参数计算所述各CPU与任意一个节点上内存之间的内存亲和性权值之和;将其中计算所得内存亲和性权值之和最小时的节点选择为各CPU的共享内存所在节点。本专利技术实施例提供一种多节点计算系统下选择共享内存所在节点的装置,包括参数获取模块,用于获取确定各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值之和的参数;求和模块,用于根据所述参数获取模块获取的参数计算所述各CPU与任意一个节点上内存之间的内存亲和性权值之和节点选择模块,用于将所述求和模块计算所得内存亲和性权值之和最小时的节点选择为各CPU的共享内存所在节点。从上述本专利技术实施例可知,本专利技术提供的方法不仅考虑到多节点计算系统下多个CPU需要共享内存这一情形,而且根据确定访问共享内存的各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值之和的参数,计算出一个使这些内存亲和性权值之和最小的节点,并将其选择为共享内存所在节点。由于访问共享内存的各中央处理器CPU与这一节点上内存之间的内存亲和性权值之和最小,因此,各节点上的中央处理器CPU访问这一节点上的共享内存付出的代价最小,在需要访问共享内存的场景下系统的存取效率最 闻,从而提闻了系统的总体存取性能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以如这些附图获得其他的附图。图I是本专利技术一实施例提供的多节点计算系统下选择共享内存所在节点的方法流程示意图;图2是本专利技术一实施例提供的多节点计算系统下选择共享内存所在节点的装置逻辑结构示意图;图3是本专利技术另一实施例提供的多节点计算系统下选择共享内存所在节点的装置逻辑结构示意图;图4是本专利技术另一实施例提供的多节点计算系统下选择共享内存所在节点的装置逻辑结构示意图;图5是本专利技术另一实施例提供的多节点计算系统下选择共享内存所在节点的装置逻辑结构示意图;图6是本专利技术另一实施例提供的多节点计算系统下选择共享内存所在节点的装置逻辑结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。以下以NUMA架构下的多节点计算系统为例说明本专利技术提供的多节点计算系统下选择共享内存所在节点的方法,本领域技术人员能够理解,本专利技术实施例提供的方法不仅适用于NUMA架构下的多节点计算系统,但凡有多个节点共享内存的场景也可以使用本专利技术实施例提供的方法。请参阅附图1,是本专利技术实施例提供的多节点计算系统下选择共享内存所在节点的方法流程示意图,主要包括步骤S101,获取确定各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值之和的参数。在本专利技术实施例中,确定各CPU与任意一个节点上内存之间的内存亲和性权值之和的参数包括各CPU所在节点对的内存节点对权值和所述各CPU访问所述任意一个节点上内存的频度,而各CPU可以是NUMA架构下的多节点计算系统中某个节点上的CPU,这些CPU由于某种原因都需要存取某个节点上的数据,即访问该节点上的共享内存。需要说明的是,访问共享内存的CPU也可以认为是动用CPU资源去访问某个共享内存,例如,运行于某个节 点的应用程序去访问某个共享内存,也就是动用该应用程序节点上的CPU资源去访问某个共享内存;又如,多个进程或者进程的多个部分都需要访问某个共享内存,不同的进程或进程的多个部分可能运行在不同的节点,当这些进程启动并开始访问某个共享内存时,也就是动用了不同进程或进程的多个部分的节点上的CPU资源去访问某个共享内存。S102,根据步骤SlOl获取的参数计算各CPU与任意一个节点上内存之间的内存亲和性权值之和。在本专利技术实施例中,内存亲和性权值的概念与现有技术的内存亲和性权值的概念基本相同,都是指CPU和内存对之间的内存亲和性权值,例如,若访问共享内存的各中央处理器CPU用Cpu1, cpu2,......,Cpum表示,则访问共享内存的各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值可以对应表示为[Cpu17Iiiemory1, valj , [cpu2, memory2,val2],......, [cpum, memorym, valj。所不同的是,本专利技术实施例的Cpu1、cpu2、......和Cpum之间的关系是该m个CPU需要访问共享内存,而现有技术中没有考虑到共享内存的情况,即,现有技术的cpu^cpuy......和。口^这!!!个CPU访问的本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种多节点计算系统下选择共享内存所在节点的方法,其特征在于,所述方法包括 获取确定各中央处理器CPU与任意一个节点上内存之间的内存亲和性权值之和的参数; 根据所述参数计算所述各CPU与任意一个节点上内存之间的内存亲和性权值之和; 将其中计算所得内存亲和性权值之和最小时的节点选择为各CPU的共享内存所在节点。2.如权利要求I所述的方法,其特征在于,所述参数包括所述各CPU所在节点对的内存节点对权值和所述各CPU访问所述任意一个节点上内存的频度。3.如权利要求2所述的方法,其特征在于,所述节点对的内存节点对权值为所述节点对中一个节点上的CPU与所述节点对中另一个节点上内存之间的内存亲和性权值。4.如权利要求2所述的方法,其特征在于,所述获取所述各CPU所在节点对的内存节点对权值包括 获取一个节点上的CPU与该节点的邻居节点上内存之间的内存亲和性权值;或者根据所述获取的一个节点上的CPU与该节点的邻居节点上内存之间的内存亲和性权值,获取一个节点上的CPU与该节点的非邻居节点上内存之间的内存亲和性权值。5.如权利要求2所述的方法,其特征在于,所述获取所述各CPU访问所述任意一个节点上内存的频度包括 统计每个节点对中一个节点上的CPU访问所述任意一个节点上内存的次数以及所述次数之和; 根据所述次数以及所述次数之和,求取所述次数与所述次数之和的比值,所述比值为所述各CPU访问所述任意一个节点上内存的频度。6.如权利要求2所述的方法,其特征在于,所述根据所述参数计算所述各CPU与任意一个节点上内存之间的内存亲和性权值之和包括 计算所述各CPU所在节点对的内存节点对权值与所述各CPU访问所述任意一个节点上内存的频度的乘积; 求取所述乘积之和,所述乘积之和为根据所述参数计算出的所述各CPU与任意一个节点上内存之间的内存亲和性权值之和。7.如权利要求I所述的方法,其特征在于,所述方法还包括 检查所述共享内存所在节点上的内存是否满足所述各CPU的访问,若不能,则按照所述方法重新选择共享内存所在节点。8.一种多节点计算系统下选择共享内存所在节点的装置,其特征在于,所述装置包括 参数获取模块,用于获取各中央处理器C...
【专利技术属性】
技术研发人员:李俊,章晓峰,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。