一种使用远程节点借用cpu计算资源的方法

文档序号:8487693阅读:1280来源:国知局
一种使用远程节点借用cpu计算资源的方法
【技术领域】
[0001]本发明涉及设备资源借用领域,特别是涉及一种使用远程节点借用CPU计算资源的方法。
【背景技术】
[0002]数据中心中多台服务器的处理器负载有时不平衡,即当设备A的CPU占用率很高,甚至由于处理器资源不够用成为性能瓶颈时,而设备B的CPU占用率却很低,处理资源处于空闲状态。如果将数据中心所有资源当做整体来看,就会出现资源浪费的情况。
[0003]现有方法包括:1、虚拟机的迀移;2、分布式系统架构,如hadoop。
[0004]但是,现有方法存在着很大的不足:
1.迀移和分布式系统的实现复杂。
[0005]2.虚拟机的迀移是以虚拟机为粒度的负载平衡调度,会使得被迀移虚拟机的CPU、内存、1等资源消耗一同迀移到另一台服务器,不能实现仅仅借用其他设备的CPU的计算资源。即使其他设备CPU空闲,如果不能满足其他资源需求,仍然会出现无法迀移或者迀移过去之后除CPU以外的资源成为性能瓶颈。
[0006]3.同样,分布式应用也是以“任务”为粒度的负载调度方案,和迀移存在相同的问题,即不能实现仅仅借用其他设备的CPU的计算资源。

【发明内容】

[0007]本发明主要解决的技术问题是提供一种使用远程节点借用CPU计算资源的方法,具有可靠性高、操作简单等优点,同时在设备资源借用的应用及普及上有着广泛的市场前景。
[0008]为解决上述技术问题,本发明采用的一个技术方案是:
提供一种使用远程节点借用CPU计算资源的方法,一台带有CPU互联的设备可以借用其他设备的CPU来执行自己的程序,其步骤包括:
(1)用一种高速互连方式将η台设备连接成一个互连集群(η为大于或等于2的整数),使得其中每台设备的CPU可以直接访问另一台设备的物理地址空间;
(2)每一台设备中的每个CPU对应一个具有相应设备ID的寄存器;
(3)如果寄存器表示为0,则表示该寄存器对应的CPU访问本地物理地址空间;如果寄存器不为0,则表示该寄存器对应的CPU访问远程设备的物理地址空间,且该寄存器的值为远程设备的设备ID ;
(4)在每台设备中设置其CPU占用率的最高阈值、最低阈值、响应时间间隔和请求时间间隔;
(5)在互连集群中,如果一台设备的CPU占用率超过最高阈值,则该设备设置为请求设备,且请求设备通过互连网络向互连集群中的其他设备发出借用CPU请求;
(6)互连集群中的设备对自己的CPU占用率进行检测,当设备CPU占用率小于最低阈值时,该设备设置为备选设备,备选设备对请求设备的借用CPU请求给予响应,同意将自己的CPU借给请求设备;
(7)请求设备搜索并获取其他设备的响应信息,如果请求设备未收到响应,则认为互连集群中没有合适的设备可以借出CPU,请求设备放弃本次请求;在一个请求时间间隔后,重新检测自己的CPU占用率,若CPU占用率仍然大于最高阈值,则重试发送借用CPU请求;
(8)当请求设备收到来自不同备选设备的多个响应时,则选择其中之一作为借用CPU的目标设备,并发送确认信息至该目标设备;
(9)请求设备利用热插拔方法借用目标设备的CPU。
[0009]在本发明一个较佳实施例中,所述请求设备利用热插拔方法借用目标设备的CPU的具体步骤包括:
(9.1)请求设备与目标设备建立网络连接;
(9.2)目标设备检测自己各个CPU的占用率,并将占用率最低的CPU设置为出借CPU ;
(9.3)目标设备采用CPU热插拔技术将出借CPU拔除,其中,所述CPU热插拔技术以CPU核或处理器为最小单位,同时,出借CPU上的所有进程都被迀移到目标设备的其他的CPU 上;
(9.4)目标设备把出借CPU让出后,把出借CPU对应的设备ID设置为请求设备的设备
ID ;
(9.5)目标设备将准备就绪通知发送至请求设备;
(9.6)请求设备执行CPU的热插入操作,并在内存中设置出借CPU的所有数据信息和数据结构;
(9.7)请求设备提供给出借CPU执行第一条指令的地址信息,并将地址信息发送给目标设备,其中,地址信息包括线性地址和页表基地址;
(9.8)当目标设备收到请求设备发送来的地址信息时,表示请求设备准备就绪;
(9.9)目标设备把出借CPU的PC和页表基址寄存器分别设置为请求设备发送来的线性地址和页表基址,并启动出借CPU ;
(9.10)目标设备通过互联网络将访存请求发送到请求设备,使得目标设备的出借CPU开始执行请求设备内存中的指令;
(9.11)请求设备成功插入出借CPU,在请求设备的操作系统里设置出借CPU的各种CPU变量和就绪队列,并通过进程调度把进程调度到出借CPU上,完成请求设备向目标设备借用CPU的过程。
[0010]在本发明一个较佳实施例中,所述高速互连方式包括PCIe、Infiniband和Ethernet中的一种和多种。
[0011]在本发明一个较佳实施例中,在步骤(8)中,一旦选定目标设备,其他在响应时间间隔内未接收到确认信息的备选设备,则放弃本次借用CPU请求的响应。
[0012]在本发明一个较佳实施例中,在步骤(3)中,如果寄存器不为0,则表示该寄存器对应的CPU通过互连网络发送访存请求到远程设备,从而访问远程设备的物理地址空间,且该寄存器的值为远程设备的设备ID。
[0013]本发明的有益效果是:1.数据中心不同设备的CPU负载不平衡的时候,可以方便的实现计算资源的共享; 2.一台设备上的代码可以不用修改运行在另一台设备的CPU上;
3.仅仅借用远端设备的CPU,对远端设备的其他资源没有影响。。
【附图说明】
[0014]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1是本发明的所述请求设备和霉变设备处理地址信息的流程示意图;
图2是本发明的所述请求设备插入CPU的流程示意图;
图3是本发明的所述具体实施例一的结构示意图。
【具体实施方式】
[0015]下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0016]请参阅图1-3,本发明实施例包括:
一种使用远程节点借用CPU计算资源的方法,一台带有CPU互联的设备可以借用其他设备的CPU来执行自己的程序,其步骤包括:
(I)用一种高速互连方式将η台设备连接成一个互连集群(η为大于或等于2的整数),使得其中每台设备的CPU可以直接访问另一台设备的物理地址空间。
[0017](2)每一台设备中的每个CPU对应一个具有相应设备ID(machine ID)的寄存器。
[0018](3)如果寄存器表示为0,则表示该寄存器对应的CPU访问本地物理地址空间;如果寄存器不为0,则表示该寄存器对应的CPU访问远程设备的物理地址空间,且该寄存器的值为远程设备的设备ID,该CPU的访存请求通过互连网络发送到相应设备。
[0019](4)在每台设备中设置其CPU占用率的最高阈值、最低阈值、响应时间间隔和请求时间间隔。
[0020](5)在互连集群中,如果一台设备的CPU占用率超过最高阈值,则该设备设置为请求设备,且请求设备通过互连网络向互连集群中的其他设备发出借用CPU请求。
[0021](6)互连集群中的设备对自己的CPU占用率进行检测,当设备CPU占用率小于最低阈值时,该设备设置为备选设备,备选设备对请求设备的借用CPU请求给予响应,同意将自己的CPU借给请求设备。
[0022](7)请求设备搜索并获取其他设备的响应信息,如果请求设备未收到响应,则认为互连集群中没有合适的设备可以借出CPU,请求设备放弃本次请求;在一个请求时间间隔后,重新检测自己的CPU占用率,若CPU占用率仍然大于最高阈值,则重试发送借用CPU请求。
[0023](8)当请求设备收到来自不同备选设备的多个响应时,则选择其中之一作为借用CPU的目标设备,并发送确认信息至该目标设备,其他在响应时间间隔内未接收到确认信息的备选设备,则放弃本次借用CPU请求的响应。
[0024](9)请求设备利用热插拔方法借用目标
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1