一种分布式系统中提高多核CPU处理能力的方法技术方案

技术编号:2820581 阅读:398 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分布式系统中提高多核CPU处理能力的方法,其特征在于,包括步骤:(1)根据每一个CPU的节点确定功能节点数目、功能节点类型和功能节点标识,并录入数据库表或者配置文件中;(2)所述系统的控制模块根据上述内容创建至少一个应用进程,检测退出的应用进程,并重新创建应用进程;(3)对所述系统中原有的功能节点标识的获取方法修改为在应用进程入口直接读取传入参数。本发明专利技术解决了在保持现有分布式软件结构基本不变的前提下如何充分发挥多核CPU的性能来提高分布式系统处理能力的问题。

【技术实现步骤摘要】

本专利技术涉及分布式系统领域,尤其是涉及使用多核CPU作为处理节点的分布式系统领域。
技术介绍
随着应用需求的不断增加,单个CPU的处理能力已经远远不能满足要求,取而代之,分布式系统由于其强大的处理能力和良好的扩展性,正 在发挥着越来越重要的作用。例如,由于需要同时支持大量的用户,电信 领域的核心网设备和基站设备都釆用了分布式系统方案来实现。介绍两个概念分布式系统的CPU节点和分布式系统的功能节点。分布式系统的 CPU节点指的是组成分布式系统的各个CPU。而分布式系统的功能节点 指的是一个软件实体,软件实体驻留在CPU节点之上,所有的软件实体 通过协作共同完成分布式系统的功能。理想情况下,由N个相同CPU组成的分布式系统,其处理能力应该 是单个CPU运算能力的N倍。实际系统中,由于通信等开销,分布式系 统的处理能力还达不到单个CPU运算能力的N倍。但是,对于一个具有 良好扩展性的分布式系统,其系统处理能力应该与CPU的数目成线性关 系。假设单个CPU的运算能力是C,系统由N个CPU组成,那么一个具 有良好扩展性的分布式系统的处理能力为Nxkxc,其中k为与系统设 计相关常数, 一般小于1。显然,增大N或者提高C,都可以提高具有良好扩展性的分布式系统 的处理能力。实际应用中,这两种方法都经常被用来提高系统的处理能力。 在提高CPU运算能力方面,由于受到工艺和主频等限制,提高单个CPU 核的运算能力变得越来越困难。目前各芯片厂商的普遍做法是在一块芯片上集成多个CPU核,即多核CPU,以提高CPU的运算能力。多核CPU是未来的发展趋势。多核CPU本质上属于对称共享存储器多处理器架构(SMP)。支持 SMP架构的操作系统如linux、 UNIX等,这些现代操作系统都支持多线 程编程,在SMP架构上多个线程可以被操作系统调度到不同的处理器或 者CPU核上同时运行,实现真正的并发。对于一个n核的CPU,其实际 的处理能力不仅取决于n的大小,更取决于应用程序的并行度,即构成应 用程序的工作线程数目m。只有线程数目m足够多,操作系统才能保持 底层的所有CPU核都处于调度运行状态,多核CPU的运算能力才能充分 发挥。因此,为了提高多核CPU的处理能力,必须提高应用程序的并行 度,即增加应用程序的工作线程数目。但是,现在的情况经常是,即使对于一个具有良好扩展性的分布式系 统来说,其单个CPU节点上运行的应用程序的并行度可能较低,即真正 工作的线程数目非常少,因此无法充分挖掘多核CPU节点的运算能力, 即多核CPU的处理能力并不高,从而无法达到提高整个分布式系统的处 理能力的目的。那么如何挖掘分布式系统中多核CPU节点的运算能力 呢?或者说如何提高多核CPU的处理能力呢?显然,提高单个CPU节点上运行程序的并行度可以解决这个问题。 这需要修改现有的应用软件,尽可能使用多线程的方式提高其并行度。对 于大型的分布式系统软件,如复杂的电信设备软件,软件修改量将是巨大 的,而且多线程编程的难度要远远大于串行编程。因此,对于现有的大型 的分布式系统软件来说,这个方法并不总是可行。在保持现有分布式系统软件不作较大改动的条件下,如何提高分布式 系统中多核CPU节点的处理能力呢?有人提出了多核拆分的解决方法, 即^l巴每一个核当作一个独立的CPU节点, 一个多核CPU节点-陂拆分成相 互独立的多个CPU节点。这种方法实际上变相增加了分布式系统中的节 点数N,因而提高了整个系统的处理能力。此方法要求每个CPU核运行 自己的操作系统。为了实现这一点需要操作系统做很多特殊处理,也就是说需要操作系统厂商进行定制,或者通过增加一层特殊中间软件,然后在 中间软件之上运行多个操作系统。其次,每个核上都要驻留操作系统映像, 必然会增加内存的开销。另外,由于底层设备可能只在某个核上才能访问, 因此必然会影响上层应用软件操作的透明性。
技术实现思路
本专利技术所解决的技术问题在于提供一种分布式系统中提高多核CPU处理能力的方法,以解决在保持现有分布式软件结构基本不变的前提下如何充分发挥多核CPU的性能来提高分布式系统处理能力的问题。为了解决上述问题,本专利技术提供了一种分布式系统中提高多核CPU 处理能力的方法,其中,包括以下步骤(1 )根据每一个CPU的节点确定功能节点数目、功能节点类型和功 能节点标识,并录入数据库表或者配置文件中;(2)所述系统的控制模块根据上述内容创建至少一个应用进程,检 测退出的应用进程,并重新创建应用进程;(3 )对所述系统中原有的功能节点标识的获取方法修改为在应用进 程入口直接读取传入参数。本专利技术所述的方法,其中,所述步骤(2)包括(21 )所述系统的控制模块根据CPU的物理地址查询数据库表或者 配置文件获得需要创建的功能节点数目、每一个功能节点的类型以及每一 个功能节点的节点标识;(22 )根据每一个功能节点标识和系统原有的算法确定这每一个节点 标识对应的每一个通讯地址,然后4巴这每一个通讯地址添加到该CPU节 点巾;(23 )创建至少 一个应用进程,每个应用进程运行与功能节点类型相 应的应用程序,并4巴每一个功能节点标识通过参凄t传递分配给对应的每一 个应用进程,同时,建立一张进程ID和功能节点标识与功能节点类型对应表;(24)检测创建的每个应用进程,如发现某个应用进程退出,则查询 该应用进程ID和功能节点标识与功能节点类型对应表以确定退出的应用 进程的功能节点标识和功能节点类型,然后重新创建一个应用进程,运行 与此功能节点类型对应的应用程序并把此功能节点标识传给重新创建的 应用进程,同时更新应用进程ID和功能节点标识与功能节点类型对应表。本专利技术所述的方法,其中,所述步骤(l)中进一步包括所述某个CPU节点上配置的功能节点数目可以大于该CPU包含的核 数目,并且可以在一个CPU节点上同时配置不同类型的功能节点。本专利技术所述的方法,其中,步骤(2)中所述系统的控制模块根据上 述内容创建至少一个应用进程,为系统的控制模块根据上述内容利用fork 创建至少一个应用进程。本专利技术所述的方法,其中,所述步骤(3)为,对所述系统中原有的 功能节点标识的获取方法修改为在应用进程入口 main函数直接读取传入 参数,然后把入参转化为功能节点标识。本专利技术所述的方法,其中,所述步骤(3)中进一步包括根据所述 系统原有算法,不同的功能节点类型相应的应用程序会使用与自己的功能 节点标识对应的通讯地址和其它功能节点进行通信;其中,所述步骤(24)中进一步包括所述系统的控制模块重复执行 这一过程。本专利技术所述的方法,其中,所述CPU的节点,为物理CPU的节点。本专利技术与现有技术相比,本专利技术提高了分布式系统中多核CPU的处 理能力,在几乎不改变现有分布式系统软件架构的前提下,运用本专利技术使 得釆用多核CPU节点替换单核CPU节点来提升分布式系统处理能力的想 法变得实际可行;另外,本专利技术打破了分布式系统中物理CPU节点和功能节点之间--对应关系,每个物理CPU节点之上可以驻留一个或多个功能节点,这些功能节点的类型可以相同也可以不同,从而方便了分布式 系统的设计。附图说明图1是本专利技术的分布式系统的物理CPU节点连接示意图2是本专利技术实施例中数据库表结构设计示意图3是本发本文档来自技高网
...

【技术保护点】
一种分布式系统中提高多核CPU处理能力的方法,其特征在于,包括以下步骤: (1)根据每一个CPU的节点确定功能节点数目、功能节点类型和功能节点标识,并录入数据库表或者配置文件中; (2)所述系统的控制模块根据上述内容创建至少一个应用进程,检测退出的应用进程,并重新创建应用进程; (3)对所述系统中原有的功能节点标识的获取方法修改为在应用进程入口直接读取传入参数。

【技术特征摘要】

【专利技术属性】
技术研发人员:周海山童小九刘忱杨骐
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1