CN104809026B - 一种使用远程节点借用cpu计算资源的方法 - Google Patents
一种使用远程节点借用cpu计算资源的方法 Download PDFInfo
- Publication number
- CN104809026B CN104809026B CN201510242576.3A CN201510242576A CN104809026B CN 104809026 B CN104809026 B CN 104809026B CN 201510242576 A CN201510242576 A CN 201510242576A CN 104809026 B CN104809026 B CN 104809026B
- Authority
- CN
- China
- Prior art keywords
- cpu
- equipment
- request
- target device
- register
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开一种使用远程节点借用CPU计算资源的方法,让在一个互联集群中的各个设备可以互相借用各自的CPU,从而实现一台设备可以借用其他设备的CPU来执行自己的程序的功能,而且既不用修改代码,又不会对原来的CPU上的资源造成影响。
Description
技术领域
本发明涉及设备资源借用领域,特别是涉及一种使用远程节点借用CPU计算资源的方法。
背景技术
数据中心中多台服务器的处理器负载有时不平衡,即当设备A的CPU占用率很高,甚至由于处理器资源不够用成为性能瓶颈时,而设备B的CPU占用率却很低,处理资源处于空闲状态。如果将数据中心所有资源当做整体来看,就会出现资源浪费的情况。
现有方法包括:1、虚拟机的迁移;2、分布式***架构,如hadoop。
但是,现有方法存在着很大的不足:
1.迁移和分布式***的实现复杂。
2.虚拟机的迁移是以虚拟机为粒度的负载平衡调度,会使得被迁移虚拟机的CPU、内存、IO等资源消耗一同迁移到另一台服务器,不能实现仅仅借用其他设备的CPU的计算资源。即使其他设备CPU空闲,如果不能满足其他资源需求,仍然会出现无法迁移或者迁移过去之后除CPU以外的资源成为性能瓶颈。
3.同样,分布式应用也是以“任务”为粒度的负载调度方案,和迁移存在相同的问题,即不能实现仅仅借用其他设备的CPU的计算资源。
发明内容
本发明主要解决的技术问题是提供一种使用远程节点借用CPU计算资源的方法,具有可靠性高、操作简单等优点,同时在设备资源借用的应用及普及上有着广泛的市场前景。
为解决上述技术问题,本发明采用的一个技术方案是:
提供一种使用远程节点借用CPU计算资源的方法,一台带有CPU互联的设备可以借用其他设备的CPU来执行自己的程序,其步骤包括:
(1)用一种高速互连方式将n台设备连接成一个互连集群(n为大于或等于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。
在本发明一个较佳实施例中,所述请求设备利用热插拔方法借用目标设备的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的过程。
在本发明一个较佳实施例中,所述高速互连方式包括PCIe、Infiniband和Ethernet中的一种和多种。
在本发明一个较佳实施例中,在步骤(8)中,一旦选定目标设备,其他在响应时间间隔内未接收到确认信息的备选设备,则放弃本次借用CPU请求的响应。
在本发明一个较佳实施例中,在步骤(3)中,如果寄存器不为0,则表示该寄存器对应的CPU通过互连网络发送访存请求到远程设备,从而访问远程设备的物理地址空间,且该寄存器的值为远程设备的设备ID。
本发明的有益效果是:1.数据中心不同设备的CPU负载不平衡的时候,可以方便的实现计算资源的共享;
2.一台设备上的代码可以不用修改运行在另一台设备的CPU上;
3.仅仅借用远端设备的CPU,对远端设备的其他资源没有影响。。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1是本发明的所述请求设备和霉变设备处理地址信息的流程示意图;
图2是本发明的所述请求设备***CPU的流程示意图;
图3是本发明的所述具体实施例一的结构示意图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1-3,本发明实施例包括:
一种使用远程节点借用CPU计算资源的方法,一台带有CPU互联的设备可以借用其他设备的CPU来执行自己的程序,其步骤包括:
(1)用一种高速互连方式将n台设备连接成一个互连集群(n为大于或等于2的整数),使得其中每台设备的CPU可以直接访问另一台设备的物理地址空间。
(2)每一台设备中的每个CPU对应一个具有相应设备ID(machine ID)的寄存器。
(3)如果寄存器表示为0,则表示该寄存器对应的CPU访问本地物理地址空间;如果寄存器不为0,则表示该寄存器对应的CPU访问远程设备的物理地址空间,且该寄存器的值为远程设备的设备ID,该CPU的访存请求通过互连网络发送到相应设备。
(4)在每台设备中设置其CPU占用率的最高阈值、最低阈值、响应时间间隔和请求时间间隔。
(5)在互连集群中,如果一台设备的CPU占用率超过最高阈值,则该设备设置为请求设备,且请求设备通过互连网络向互连集群中的其他设备发出借用CPU请求。
(6)互连集群中的设备对自己的CPU占用率进行检测,当设备CPU占用率小于最低阈值时,该设备设置为备选设备,备选设备对请求设备的借用CPU请求给予响应,同意将自己的CPU借给请求设备。
(7)请求设备搜索并获取其他设备的响应信息,如果请求设备未收到响应,则认为互连集群中没有合适的设备可以借出CPU,请求设备放弃本次请求;在一个请求时间间隔后,重新检测自己的CPU占用率,若CPU占用率仍然大于最高阈值,则重试发送借用CPU请求。
(8)当请求设备收到来自不同备选设备的多个响应时,则选择其中之一作为借用CPU的目标设备,并发送确认信息至该目标设备,其他在响应时间间隔内未接收到确认信息的备选设备,则放弃本次借用CPU请求的响应。
(9)请求设备利用热插拔方法借用目标设备的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的过程。
具体实施例一:以使用PCIe switch作为设备B使用设备A的物理地址访问设备A的方法:
利用前述方法,A选择B作为CPU的借用方之后
1、设备B利用CPU hotplug将CPU0“拔除”。
2、把设备B中CPU0对应的MachineId设置为设备A的设备号。
3、利用PCIe switch可以把设备A的物理地址映射到设备B的一段物理地址空间中,例如+5G偏移量,即将设备A的0—5G映射为设备B的5—10G。
4、同时,设置Controller把CPU0发送的访存请求地址都增加同样的偏移量(即+5G)。
5、当设备B的CPU0发出访问物理地址2G时,设备B的Controller看到CPU0的per-cpu MachineId填入的是设备A的设备号,因此将物理地址+5G之后成为地址7G并发出,7G物理地址属于I/O空间,通过PCIe端口发出。
6、通过PCIe switch映射,设备A收到的物理地址为2G,属于memory地址空间,通过on-chip networ/分发给memory controller。
通过上述机制,设备B释放的CPU可以直接运行设备A上的程序,程序本身不需要改动。
设备A执行CPU的热***操作,保证被***CPU所需要的所有条件和数据结构在内存中被正确设置,设备A提供一个线性地址和页表基地址作为新加入CPU将要执行的第一条指令的地址,并发送给设备B。
设备B利用软件方法把自己的已经让出的CPU的PC和页表基址寄存器分别设置为A发送来的线性地址和页表基址,并启动该CPU。
至此,设备A成功***一个新的CPU,可以把任务调度到这个CPU上,这样设备A就成功借用设备B的一个CPU。
本发明一种使用远程节点借用CPU计算资源的方法的有益效果是:
1.数据中心不同设备的CPU负载不平衡的时候,可以方便的实现计算资源的共享;
2.一台设备上的代码可以不用修改运行在另一台设备的CPU上;
3.仅仅借用远端设备的CPU,对远端设备的其他资源没有影响。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种使用远程节点借用CPU计算资源的方法,其特征在于,一台带有CPU互联的设备可以借用其他设备的CPU来执行自己的程序,步骤包括:
(1)用一种高速互连方式将n台设备连接成一个互连集群,n为大于或等于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,具体步骤包括:
(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的过程。
2.根据权利要求1所述的一种使用远程节点借用CPU计算资源的方法,其特征在于,所述高速互连方式包括PCIe、Infiniband和Ethernet中的一种和多种。
3.根据权利要求1所述的一种使用远程节点借用CPU计算资源的方法,其特征在于,在步骤(8)中,一旦选定目标设备,其他在响应时间间隔内未接收到确认信息的备选设备,则放弃本次借用CPU请求的响应。
4.根据权利要求1所述的一种使用远程节点借用CPU计算资源的方法,其特征在于,在步骤(3)中,如果寄存器不为0,则表示该寄存器对应的CPU通过互连网络发送访存请求到远程设备,从而访问远程设备的物理地址空间,且该寄存器的值为远程设备的设备ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510242576.3A CN104809026B (zh) | 2015-05-14 | 2015-05-14 | 一种使用远程节点借用cpu计算资源的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510242576.3A CN104809026B (zh) | 2015-05-14 | 2015-05-14 | 一种使用远程节点借用cpu计算资源的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104809026A CN104809026A (zh) | 2015-07-29 |
CN104809026B true CN104809026B (zh) | 2018-03-30 |
Family
ID=53693874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510242576.3A Active CN104809026B (zh) | 2015-05-14 | 2015-05-14 | 一种使用远程节点借用cpu计算资源的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104809026B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020972A (zh) * | 2016-05-10 | 2016-10-12 | 广东睿江云计算股份有限公司 | 云主机***中的cpu调度方法及装置 |
CN107729283B (zh) * | 2017-10-10 | 2021-07-13 | 惠州Tcl移动通信有限公司 | 一种基于移动终端控制cpu扩展方法、***及存储介质 |
CN109491788B (zh) * | 2018-11-01 | 2022-12-09 | 郑州云海信息技术有限公司 | 一种虚拟化平台负载均衡实现方法及装置 |
CN109600396A (zh) * | 2019-01-23 | 2019-04-09 | 浙江安点科技有限责任公司 | 实现高可靠安全性的防火墙*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266557A (zh) * | 2007-03-16 | 2008-09-17 | Sap股份公司 | 在客户机-服务器或主机环境中计算作业的多目标分配 |
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理*** |
CN101662506A (zh) * | 2009-10-14 | 2010-03-03 | 中兴通讯股份有限公司 | 一种基于cpu内核共享的负载均衡方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8560465B2 (en) * | 2009-07-02 | 2013-10-15 | Samsung Electronics Co., Ltd | Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments |
-
2015
- 2015-05-14 CN CN201510242576.3A patent/CN104809026B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266557A (zh) * | 2007-03-16 | 2008-09-17 | Sap股份公司 | 在客户机-服务器或主机环境中计算作业的多目标分配 |
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理*** |
CN101662506A (zh) * | 2009-10-14 | 2010-03-03 | 中兴通讯股份有限公司 | 一种基于cpu内核共享的负载均衡方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104809026A (zh) | 2015-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688322A (zh) | 一种容器化管理*** | |
CN104809026B (zh) | 一种使用远程节点借用cpu计算资源的方法 | |
US20080104609A1 (en) | System and method for load balancing distributed simulations in virtual environments | |
CN101605092A (zh) | 一种基于内容的负载均衡*** | |
TWI786527B (zh) | 程式設計平台的使用者代碼運行方法、電子設備和電腦可讀儲存介質 | |
CN108519917A (zh) | 一种资源池分配方法和装置 | |
CN105959347B (zh) | 一种基于p2p网络的全数字协同仿真***通信方法 | |
CN104123265A (zh) | 一种众核间通信方法及*** | |
CN110471766A (zh) | 一种基于cuda的gpu资源调度***和方法 | |
CN107967180A (zh) | 基于numa虚拟化环境下资源全局亲和度网络优化方法和*** | |
CN110300188A (zh) | 数据传输***、方法和设备 | |
CN109426544A (zh) | 虚拟机部署方法和装置 | |
CN105681426A (zh) | 异构*** | |
CN112087332A (zh) | 一种云边协同下的虚拟网络性能优化*** | |
CN103677983A (zh) | 应用的调度方法及装置 | |
CN106059940A (zh) | 一种流量控制方法及装置 | |
WO2020253490A1 (zh) | 一种资源分配方法、装置及设备 | |
WO2024037239A1 (zh) | 一种加速器调度方法及相关装置 | |
CN106911739B (zh) | 一种信息分发方法及装置 | |
CN104166581A (zh) | 一种面向增量制造设备的虚拟化方法 | |
CN110868330B (zh) | 云平台可划分cpu资源的评估方法、装置及评估*** | |
CN104156332B (zh) | 基于外部pci‑e连接的高性能并行计算方法 | |
CN106612296A (zh) | 一种用户设备连接请求分配的方法及装置 | |
CN109614242A (zh) | 一种计算能力共享方法、装置、设备及介质 | |
CN114244548B (zh) | 一种面向云ide的动态调度和用户认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 215163 No. 9 Xuesen Road, Science and Technology City, Suzhou High-tech Zone, Jiangsu Province Patentee after: Hexin Technology (Suzhou) Co.,Ltd. Address before: No.9, Xuesen Road, science and Technology City, high tech Zone, Suzhou, Jiangsu, 215000 Patentee before: SUZHOU POWERCORE INFORMATION TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |