用于针对数据中心的带外的基于功率的任务调度的技术的制作方法_2

文档序号:9921921阅读:来源:国知局
进行数据的发送和接收。网络104可以被实施为任何 数量的各种有线和/或无线网络。例如,网络104可以被实施为或以其它方式包括交换结构 网络、有线或无线局域网(LAN)、有线或无线广域网(WAN)、蜂窝网络、和/或诸如因特网之类 的可公开访问的全球网络。同样,网络104可以包括任何数量的额外设备,诸如额外的计算 机、路由器以及交换机,以便于在系统100的设备之间进行通信。
[0019] 现在参考图2,在示例性实施例中,每个计算节点102可以在操作期间建立环境 200。示例性环境200包括操作系统202和固件环境208。操作系统202建立任务执行模块204 和任务卸载模块206,而固件环境208建立功率管理模块210、卸载请求模块212、卸载接受模 块214、以及带外(00B)通信模块216。环境200的各个模块可以被实施为硬件、固件、软件或 其组合。例如,模块、逻辑单元、以及环境200的其它部件中的每个可以形成处理器120、管理 引擎130、或计算节点102的其它硬件部件的一部分,或以其它方式由处理器120、管理引擎 130、或计算节点102的其它硬件部件建立。同样,在一些实施例中,环境200中的这些模块中 的一个或多个可以被实施为电路或电气设备的集合(例如,任务执行电路、任务卸载电路、 功率管理电路等)。
[0020]操作系统202可以被实施为任何操作系统、虚拟机器监测器、管理程序、或计算节 点10 2的其它控制结构。例如,操作系统20 2可以被实施为Microsoft? Wi ndOW?或 Linux?。操作系统202可以在计算节点102上执行或以其它方式管理应用、过程、以及其它 计算作业。操作系统202还可以提供计算节点102的动态使用信息,诸如,处理器使用、存储 器使用、存储设备使用或I/O使用。使用信息可以作为一个整体、基于每个任务或每个作业, 或以任何其它方式,被提供给计算节点102。如上文所描述的那样,操作系统202可以建立任 务执行模块204和任务卸载模块206。
[0021]任务执行模块204被配置为在操作系统202内执行一个或多个任务。每个任务可以 被实施为任何应用、脚本、作业、或将由计算节点102执行的其它工作负荷。任务执行模块 204可以建立队列或其它结构以在执行任务之前对它们进行存储和组织。
[0022]任务卸载模块206被配置为将一个或多个任务卸载到远程计算节点102以待执行, 并且执行从远程计算节点102接受的被卸载的任务。例如,计算节点102可以与任务执行模 块204协调以增加和/或移除要由计算节点102执行的任务,并且可以与远程计算节点102进 行任务的发送和/或接收。如下文进一步描述的那样,响应于从固件环境208(例如,从卸载 请求模块212和/或卸载接受模块214)接收的命令,任务卸载模块206可以卸载和/或接收任 务。
[0023]固件环境208可以被实施为独立于操作系统202的计算节点102的任何执行环境。 例如,固件环境208可以由管理引擎130和/或由处理器120建立。与操作系统202相比,固件 环境208典型地处于较低级别的抽象或以其它方式具有到计算节点102的硬件的更接近的 访问。操作系统202可以通过一个或多个操作系统驱动器与固件环境208进行交互。例如,操 作系统202可以使用操作系统驱动器来与计算节点102的UEFI BIOS进行交互。UEFI BIOS可 以建立固件环境208和/或可以与由管理引擎130建立的固件环境208通信。由于固件环境 208是独立于操作系统202的,所以由固件环境208的模块执行的一些或所有操作可以在不 涉及操作系统202的情况下被执行。
[0024] 功率管理模块210被配置为确定计算节点102的当前功率消耗以及确定该功率消 耗是否超出最佳水平。例如,功率管理模块210可以将计算节点102的当前功率消耗与阈值 功率消耗水平相比较。功率管理模块210可以监测计算节点102的各个部件(诸如,处理器 120、存储器124、数据存储设备126和/或通信电路128)的当前功率消耗。
[0025] 卸载请求模块212被配置为在确定计算节点102的当前功率消耗超出最佳水平之 后,使用带外通信设施将卸载任务请求广播到界定的网络环境。卸载请求模块212还被配置 为当计算节点102的功率消耗超出最佳水平时,确定将要被卸载的任务的功率需求。除了功 率需求之外,卸载请求模块212还可以例如使用与将要被卸载的任务相关联的操作系统202 度量确定该任务的一个或多个计算需求。卸载任务需求被包括在广播到远程计算节点102 的卸载任务请求中。卸载请求模块212可以响应于从远程计算设备102接收到任务接受使得 操作系统202卸载任务。例如,卸载请求模块212可以将命令从固件环境208发送到操作系统 202。可以将卸载任务请求广播到一个或多个远程计算节点102,该一个或多个远程计算节 点102的每个也包括卸载接受模块214。
[0026]卸载接受模块214被配置为从远程计算节点102接收卸载任务请求,并且确定与卸 载任务请求相关联的功率需求和任何计算需求。卸载接受模块214被配置为基于卸载任务 请求的需求和计算节点102的可用资源(包括功率资源和/或计算资源)来确定是否接受该 卸载任务请求。卸载接受模块214被配置为将卸载任务接受发送到远程计算节点102,并且 接收从远程计算节点102返回的被卸载的任务。
[0027] 00B通信模块216被配置为使用带外通信设施(诸如,管理引擎130的带外网络能 力)发送和接收数据。00B通信模块216可以发送和/或接收任务卸载请求、任务卸载接受、被 卸载的任务、和/或关于一个或多个远程计算节点102的其它数据。
[0028]现在参考图3,在使用中,每个计算节点102可以执行用于基于功率的任务调度的 方法300。该方法300开始于方框302,在方框302中计算节点102接收将要执行的任务列表。 每个任务可以被实施为将由计算节点102执行的任何应用、脚本、作业或其它工作负荷。任 务列表可以由数据中心管理器、云操作系统、系统管理员或任何其它资源产生或以其它方 式提交。应当注意的是,在一些实施例中,可以将任务列表提交到数据中心中的任何计算节 点102,并且在执行期间,可以如下文所描述的那样将任务分布在数据中心内。
[0029]在方框304中,计算节点102开始执行先前接收的任务。计算节点102可以例如通过 执行操作系统202内的一个或多个应用、过程、脚本、作业或其它程序来执行任务。在开始执 行任务之后,方法300同时进行到方框306、308。在执行方框306、308的同时,计算节点102可 以继续执行这些任务中的一个或多个。
[0030] 在方框306中,计算节点102使用固件环境208监测计算节点102的功率消耗,并且 可以将一个或多个任务卸载到远程计算节点102。例如,如果计算节点102的当前功率消耗 超出预先定义的阈值,则计算节点102可以卸载任务。由固件环境208执行的功率消耗监测 和任务卸载可以对于操作系统202和/或对由操作系统202执行的任务是透明的。在下文中 结合图4描述了用于监测功率消耗和卸载任务的方法的一个实施例。
[0031] 在方框308中,计算节点102使用固件环境208监测从远程计算节点102接收的任务 卸载请求。计算节点102可以评估该卸载请求以确定功率资源和/或计算资源是否可用于执 行该被卸载的任务。如果是,则计算节点102可以接受该被卸载的任务以供执行。在下文中 结合图5描述了用于接受被卸载的任务的方法的一个实施例。
[0032]在执行方框306、308之后,方法300循环回到方框304以继续执行任务。计算节点 102可以开始执行从远程计算节点102接收到的被卸载的任务,并且可以停止执行已经卸载 到远程计算节点102的任务。此外,尽管示出为同时执行方框306、308,并且然后循环回到方 框304,但是应当理解的是,在一些实施例中,计算节点102可以以任何次序(包括同时地、顺 序地、继续地、周期性地、或以交织的方式)执行那些操作。例如,可以在处理器120执行方框 304的同时由管理引擎130执行方框306、308。
[0033]现在参考图4,在使用中,每个计算节点102可以执行用于监测功率消耗和卸载任 务的方法400。方法400由固件环境208执行;例如,由UEFI BIOS固件环境中的处理器120执 行、由管理引擎130执行、或由计算节点102的任何其它固件部件执行。方法400开始于方框 402,在方框402中计算节点102监测计算节点102的功率消耗。计算节点102可以监测例如所 消耗的电功率(例如,电流的安培或电气的瓦特)、温度、所使用的冷却能力、或由计算节点 102所消耗的功率的任何其它量化指示。在一些实施例中,在方框404中,计算节点102可以 确定计算节点102的一个或多个部件的每个部件的功率消耗。例如,计算节点102可以确定 处理器120、1/0子系统122、存储器124、数据存储设备126、通信电路128、和/或诸如系统电 源之类的其它部件的功率消耗。
[0034]在方框406中,计算节点102确定计算节点102的功率消耗是否在最佳水平之上。计 算节点102可以使用任何适当的技术来确定当前功率消耗是否超出了最佳水平。计算节点 102可以确定例如功率消耗是否超出了预先定义的阈值。如果不在最佳水平之上,则方法 400循环回到方框402以继续监测功率消耗。如果该功率消耗在最佳水平之上,则方法400前 进到方框408。
[0035] 在方框408中,计算节点102确定与可以被卸载到远程计算节点102的任务相关联 的功率需求。功率需求可以指不执行被卸载的任务所需要的功率量。例如,功率需求可以规 定特定瓦特或相对的功率需求(例如,高、低、或其它相对值)。在一些实施例中,在方框410 中计算节点102可以确定被卸载的任务的一个或多个
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1