用于调度计算任务的方法和系统的制作方法

文档序号:10686884阅读:365来源:国知局
用于调度计算任务的方法和系统的制作方法
【专利摘要】本发明涉及一种用于调度计算任务的方法和系统。一种计算机实现的方法包括:(i)接收要由数据中心环境处理的计算任务;(ii)接收一组计算任务参数,所述计算任务参数指定要处理的计算任务的特征;(iii)接收一组计算实体参数,所述计算实体参数指定所述计算实体的特征;(iv)将所述计算任务参数和所述计算实体参数传送到调度实体;以及(v)由所述调度实体基于不同因素选择所述多个计算实体中用于处理所述计算任务的一个或多个计算实体。
【专利说明】
用于调度计算任务的方法和系统
技术领域
[0001]本发明涉及自动数据中心应用调度,并且进一步涉及机器学习技术。
【背景技术】
[0002]在数据中心环境中,使用虚拟机的应用调度是一种已知技术。在使用虚拟机的应用调度中,做出针对哪个特定计算实体(i)应实例化某个虚拟机和/或(ii)应执行应用的决策。

【发明内容】

[0003]根据本发明的一个方面,具有一种用于在包括多个计算实体的数据中心环境中调度计算任务的方法、计算机程序产品和/或系统,所述方法、计算机程序产品和/或系统执行以下操作(不一定按照以下顺序):(i)至少部分地基于以下项确定反馈信息:(a)所述多个计算实体中用于处理历史计算任务的历史计算实体选择,以及(b)与由所述历史计算实体选择处理的所述历史计算任务关联的历史处理结果;(ii)接收对应于以下项的数据:(a)要由所述数据中心环境处理的新计算任务,(b)指定所述新计算任务的特征的关联计算任务参数,以及(C) 一组计算实体参数,所述计算实体参数指定所述多个计算实体中的所述计算实体的特征;以及(iii)由调度实体的机器逻辑至少部分地基于以下项选择所述多个计算实体中的一个或多个计算实体作为用于处理所述新计算任务的一个或多个选定计算实体:(a)所述一组计算任务参数,(b)所述一组计算实体参数,以及(C)所述反馈信息。
【附图说明】
[0004]参考附图描述各实施例,这些附图是:
[0005]图1示意性地示出包括调度实体的数据中心环境;
[0006]图2示意性地示出根据本发明的自动调度系统的第一实施例;
[0007]图3是示出根据本发明的自动调度方法的第一实施例的流程图;以及
[0008]图4是提供适合于实现本发明的不同实施例的硬件和软件环境的一个实例的网络计算机系统的框图。
【具体实施方式】
[0009]某些实施例涉及一种用于调度计算任务的计算机实现的方法。某些实施例可以是有利的,因为可以基于高级机器学习技术实现数据中心环境中的改进计算任务调度,该技术不仅考虑实际计算任务参数和计算实体参数,而且还考虑从先前调度决策获得的知识。本【具体实施方式】部分分为以下子部分:(i)硬件和软件环境;(ii)实施例(多个)和讨论;以及(iii)定义。
[0010]1.硬件和软件环境
[0011]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0012]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是一但不限于一电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROMS闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0013]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0014]用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0015]这里参照根据本发明一些实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0016]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0017]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0018]附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0019]现在将参考附图详细描述根据本发明的软件和/或方法的可能硬件和软件环境的一个实施例。图4是示出网络计算机系统100的不同部分的功能框图,网络计算机系统100包括:服务器子系统102;客户机子系统104、106、108、110、112;通信网络114;服务器计算机200;通信单元202;处理器集合204;输入/输出(I/O)接口集合206;存储设备208;持久存储设备210;显示设备212;外部设备集合214;随机存取存储器(RAM)设备230;高速缓冲存储设备232;以及程序300。
[0020]在本发明中,子系统102在许多方面表示不同计算机子系统(多个)。因此,现在将在以下各段中讨论子系统102的数个部分。
[0021]子系统102可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话,或者能够经由网络114与客户机子系统通信的任何可编程电子设备。程序300是机器可读指令和/或用于创建、管理和控制某些软件功能的数据的集合,这些功能将在下面本【具体实施方式】部分在实例实施例子部分中详细讨论。
[0022]子系统102能够经由网络114与其它计算机子系统通信。网络114例如可以是局域网(LAN)、诸如因特网之类的广域网(WAN)或这两者的组合,并且可以包括有线、无线或光纤连接。一般而言,网络114可以是将支持服务器与客户机子系统之间的通信的连接和协议的任意组合。
[0023]子系统102被示出为具有许多双箭头的框图。这些双箭头(没有单独的参考标号)表示通信结构,其在子系统102的不同组件之间提供通信。该通信结构可以使用任何体系架构实现,该体系架构被设计为在处理器(例如微处理器、通信和网络处理器等)、系统存储器、外围设备与系统中的任何其它硬件组件之间传递数据和/或控制信息。例如,通信结构可以至少部分地使用一条或多条总线实现。
[0024]存储器208和持久存储装置210是计算机可读存储介质。一般而言,存储器208可以包括任何合适的易失性或非易失性计算机可读存储介质。还要注意的是,现在和/或不久的将来:(i)外部设备(多个)214可以能够为子系统102提供部分或全部存储器;和/或(ii)子系统102外部的设备可以能够为子系统102提供存储器。
[0025]程序300存储在持久存储装置210中,以便由相应计算机处理器204的一个或多个通常通过存储器208中的一个或多个存储器访问和/或执行。持久存储装置210: (i)至少比传送中的信号更持久;(ii)在有形介质(例如磁或光领域)上存储程序(包括其软逻辑和/或数据);以及(iii)明显没有永久存储装置持久。备选地,数据存储装置可以比由持久存储装置210提供的存储类型更持久和/或永久。
[0026]程序300可以包括机器可读和可执行指令和/或实质性数据(S卩,存储在数据库中的数据类型)。在该特定实施例中,持久存储装置210包括硬磁盘驱动器。为了指定某些可能变化,持久存储装置210可以包括固态硬盘驱动器、半导体存储设备、只读存储器(R0M)、可擦式可编程只读存储器(EPROM)、闪存,或者能够存储程序指令或数字信息的任何其它计算机可读存储介质。
[0027]持久存储装置210使用的介质还可以是可移动介质。例如,可移动硬盘驱动器可以用于持久存储装置210。其它实例包括光盘和磁盘、拇指驱动器以及智能卡,它们插入到驱动器中以便传输到也是持久存储装置210的一部分的另一个计算机可读存储介质上。
[0028]在这些实例中,通信单元202用于与子系统102外部的其它数据处理系统或设备通信。在这些实例中,通信单元202包括一个或多个网络接口卡。通信单元202可以通过使用物理和无线通信链路两者之一或全部提供通信。在此讨论的任何软件模块可以通过通信单元(例如通信单元202)下载到持久存储设备(例如持久存储设备210)。
[0029]I/O接口集合206允许使用其它设备输入和输出数据,其它设备可以在本地连入与服务器计算机200的数据通信。例如,I/O接口集合206提供到外部设备集合214的连接。外部设备集合214将通常包括诸如以下设备:键盘、小键盘、触摸屏和/或某种其它合适的输入设备。外部设备集合214还可以包括便携式计算机可读存储介质,例如拇指驱动器、便携式光盘或磁盘和存储卡。用于实现本发明实施例的软件和数据(例如,程序300)可以存储在此类便携式计算机可读存储介质上。在这些实施例中,相关软件可能(或可能不)经由I/O接口集合206全部或部分地下载到持久存储设备210上。I/O接口集合206还连入与显示设备212的数据通信。
[0030]显示设备212提供用于向用户显示数据的机构,并且例如可以是计算机显示器或智能电话显示屏。
[0031]在此描述的程序基于应用(为其在本发明的特定实施例中实现程序)来确定。但是应理解,在此任何特定程序术语的使用只是为了方便,因此不应将本发明限于仅在由此类术语确定和/或暗示的任何特定应用中使用。
[0032]出于示例目的给出了对本发明的不同实施例的描述,但所述描述并非旨在是穷举的或是限于公开的实施例。在不偏离所述实施例的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。在此使用的术语的选择,旨在最好地解释实施例的原理、实际应用或对市场中的技术的技术改进,或者使所属技术领域的其它普通技术人员能理解在此公开的实施例。
[0033]I1.实施例和讨论
[0034]某些实施例意识到,在调度使用虚拟机的应用的系统中,机器逻辑可能不会始终很容易地进行关于将使用哪个特定计算实体的决策,因为数个正交维度的异构性包括:(i)计算实体在电源效率、计算能力(每秒单线程操作数和物理多线程能力数量)、I/o速度和容量(存储器/存储/网络子系统)等方面展现出明显不同的特征;(ii)应用/虚拟机在计算和10(存储器/存储/网络)要求、运行时间、处理器或者甚至节点数量等方面展现出明显不同的特征;和/或(iii)给定时间点的计算实体可以在与要调度的应用并行运行的应用的资源使用方面展现出明显不同的特征。
[0035]根据某些实施例,调度实体通过集成先前反馈信息,不断完善调度过程。从而,可以通过考虑在过去不同时间点获得的多个反馈信息,调度过程可以不断进化。
[0036]根据某些实施例,调度实体包括自学习调度机制,其考虑从先前计算任务调度获得的多个反馈信息来选择一个或多个计算实体。例如,调度实体可以包括存储装置,其存储关于先前决策的信息,这些决策与在该决策下处理计算任务期间或之后从数据中心环境接收的回报信息关联。调度实体可以适于考虑从先前决策获得的信息来进行当前决策。从而,可以实现改进的计算任务调度,其随时间完善调度决策。
[0037]根据某些实施例,自学习调度机制适于考虑用于先前计算任务调度中的计算任务参数和计算实体参数来选择一个或多个计算实体。例如,自学习调度机制可以将要处理的当前计算任务的计算任务参数与过去调度的计算任务的先前计算任务参数相比较,以便发现过去是否已处理相同或类似的计算任务。同样,自学习调度机制可以将先前计算实体参数与实际计算实体参数相比较,以便发现应在其上处理计算任务的最佳计算实体。从而,基于上面提及的参数,可以将先前调度任务与当前调度任务相比较,并且基于反馈信息,可以针对当前调度任务做出改进的调度决策。
[0038]根据某些实施例,调度实体包括用于选择一个或多个计算实体的多臂匪徒模型(mult1-armed bandit model)。有利地,多臂匪徒模型可以提供改进的调度决策结果,因为它们适合于考虑数个不同准则中的任意一个以便选择调度决策,并且因为它们被正式证明为保证其决策产生的回报方面的最终改进。
[0039]根据某些实施例,调度实体包括考虑反馈信息的上下文自学习机制,该信息源自对具有与当前要调度的计算任务的计算任务参数类似的计算任务参数的计算任务的处理。因此,换言之,不仅考虑涉及相同计算任务的调度决策,而且还考虑涉及类似计算任务的调度决策,以便做出当前调度决策。从而,可以实现改进的自学习调度算法。
[0040]根据某些实施例,调度实体包括考虑反馈信息的上下文自学习机制,该信息源自在具有与当前要选择的计算实体的计算实体参数类似的计算实体参数的计算实体上处理计算任务。因此,换言之,不仅考虑在相同计算实体上部署的调度,而且还考虑在类似计算实体上部署的调度决策,以便做出当前调度决策。从而,可以实现改进的自学习调度算法。
[0041]根据某些实施例,调度实体包括参数处理实体,该参数处理实体接收计算任务参数,并且选择被考虑用于选择一个或多个计算实体的计算任务参数子集。从而,获得用于做出调度决策的计算任务参数子集。根据某些实施例,参数处理实体可以适于修改用于做出调度决策的计算任务参数。
[0042]根据某些实施例,参数处理实体适于为计算任务参数分配加权参数,以便基于由加权参数加权的计算任务参数选择一个或多个计算实体。借助加权参数,可以分别增加一个或多个计算任务参数的影响,减小其它计算任务参数的影响。从而,当做出调度决策时,可以对某些计算任务参数的影响进行加权。
[0043]根据某些实施例,参数处理实体适合于通过应用算术运算修改计算任务参数、或者通过基于算术运算组合两个或更多计算任务参数而生成修改后的计算任务参数、或者改变至少一个计算任务参数并连同原始计算任务参数一起添加改变后的计算任务参数。通过修改和/或组合多个计算任务参数,可以改进机器学习过程。
[0044]根据某些实施例,调度实体包括参数处理实体,该参数处理实体接收计算实体参数,并且选择被考虑用于选择一个或多个计算实体的计算实体参数子集。从而,获得用于做出调度决策的计算实体参数子集。根据某些实施例,参数处理实体可以适合于修改用于做出调度决策的计算实体参数。
[0045]根据某些实施例,参数处理实体适合于为计算实体参数分配加权参数,以便基于由加权参数加权的计算实体参数选择一个或多个计算实体。借助加权参数,可以分别增加一个或多个计算实体参数(例如,CPU时钟、存储器的大小等)的影响,减小其它计算实体参数的影响。从而,当做出调度决策时,可以对某些计算实体参数的影响进行加权。
[0046]根据某些实施例,参数处理实体适合于通过应用算术运算修改计算实体参数、或者通过基于算术运算组合两个或更多计算实体参数而生成修改后的计算实体参数、或者改变至少一个计算实体参数并连同原始计算实体参数一起添加改变后的计算实体参数。通过修改和/或组合多个计算实体参数,可以改进机器学习过程。
[0047]根据某些实施例,基于计算任务要求选择多个计算实体中的计算实体子集。计算任务要求可以是例如用于运行某个计算任务的最低要求,例如用于运行应用的最低存储要求。因此,基于计算任务要求,可以排除不满足计算任务要求的计算实体。
[0048]根据某些实施例,一个或多个计算实体的选择基于一个或多个优化特征,这些优化特征定义要通过调度实体改进的一个或多个数据中心参数。例如,借助调度决策,应该优化数据中心的电源效率或处理速度。为了实现该目标,调度实体可以做出考虑该目标的调度决策,即,在极具电源效率并相应显示高处理能力的计算实体处调度某个计算任务。
[0049]将理解,当在本说明书中使用时,术语“数据中心”指定显示多个计算实体以便处理计算任务的任何计算环境。计算实体可以经由网络连接耦合以便交换信息。
[0050]还将理解,当在本说明书中使用时,术语“计算实体”指定适于接收计算任务并处理该计算任务的任何种类的数据处理实体,例如但不限于,计算实体可以是计算机、服务器或任何其它处理单元。
[0051]还将理解,当在本说明书中使用时,术语“计算任务”指定要由计算实体处理的任何种类的任务,例如但不限于应用、虚拟机或任何其它软件或软件部分。
[0052]还将理解,当在本说明书中使用时,术语“计算实体参数”指定可以用于指定计算实体的任何种类的参数。例如但不限于,计算实体参数可以指示处理能力(例如,CPU时钟、(PU体系架构、CPU核心数量等)、存储大小等。
[0053]还将理解,当在本说明书中使用时,术语“计算任务参数”指定可以用于指定计算任务的任何种类的参数。例如但不限于,计算任务参数可以指示指令总数、存储要求、CPU要求等。
[0054]如果没有另外明确指示,则本发明的实施例可以自由地彼此组合。
[0055]图1示出一个实例数据中心环境10的示意框图。数据中心环境10包括多个计算实体20,它们通过网络基础架构彼此耦合以便在计算实体20之间交换信息。为了在数据中心环境10中调度计算任务(应用1-应用5),S卩,在计算实体20之一或计算实体20子集处托管某个计算任务(在多个计算实体20必须处理该计算任务的情况下),数据中心环境10包括调度实体30。调度实体30适合于选择一个或多个计算实体20来执行某个计算任务。
[0056]图2通过示意框图示出用于在数据中心环境中调度计算任务的基本调度系统环境400。系统400包括调度实体410。调度实体410适合于接收多个参数,基于这些参数选择一个或多个(如果计算任务需要多个计算实体)计算实体,以便执行要处理或执行的某个计算任务。调度实体410可以以程序300的形式实现,程序300在网络计算机系统100的服务器计算机200上运行,如图4中所示并且如上面详细讨论的那样。
[0057]首先,调度实体410可以接收计算任务参数。计算任务参数可以涉及某个计算任务,并且可以指定该计算任务的某些特征。例如,计算任务可以是应用,并且计算任务参数可以是应用执行的指令数量、存储访问数量等。计算任务参数还可以包括更复杂的参数,例如中央处理单元(CPU)的使用率或存储使用率。
[0058]根据另一个实施例,计算任务还可以由要在数据中心环境中实例化的虚拟机构成。在这种情况下,计算任务参数例如可以是虚拟机的性能参数(例如,CPU、存储器)。
[0059]例如,可以由任务表征框架420获得参数。任务表征框架420可以适合于从一般计算任务信息提取计算任务参数。例如,任务表征框架420可以接收可执行命令或可执行软件代码。任务表征框架420解释接收的计算任务信息,从而获得提供给调度实体410的一个或多个计算任务参数。
[0060]此外,可以将计算任务要求提供给调度实体410。计算任务要求可以是计算实体为了处理某个计算任务而必须满足的最低准则。例如,计算任务要求可以是某个计算实体为了执行计算任务而必须提供的最小(主要)存储器。根据另一个实施例,计算任务要求可以是用于执行计算任务的最低中央处理器(CPU)能力。
[0061 ]值得一提的是,计算任务参数和计算任务要求与某个计算任务相关,即,对于要在数据中心450中调度的每个计算任务,必须考虑一组不同的计算任务参数/计算任务要求。
[0062]此外,调度实体410接收关于包括在数据中心450中的计算实体的信息。该信息在下面可以被称为计算实体参数。计算实体(在下面也被称为节点)例如可以是物理服务器或计算机,可以在其上执行或处理计算任务。第一组计算实体参数可以是时变参数,例如实际CPU负载、在计算实体上运行的应用数量、可用存储大小等。时变计算实体参数可以由监视单元430提供。监视单元430可以与包括在数据中心450中的计算实体耦合,并且可以将关于相应计算实体的负载的信息传输到监视单元430。
[0063]第二组计算实体参数可以是非时变或基本非时变参数,例如CPU时钟速率、CPU类型、存储大小、硬件体系架构属性等。非时变参数可以是固有的计算实体参数,这些参数可以被提供给调度实体410,以便基于参数进行调度选择(S卩,应该选择哪个计算实体的决策)。
[0064]值得一提的是,计算实体参数(具体地说第一和第二组计算实体参数)与某个计算实体相关,即,对于包括在数据中心450中的每个计算实体,必须考虑一组不同的计算实体参数。
[0065]在调度某个计算任务之前,可以考虑初始选择信息。可以针对数据中心环境中的任务调度定义初始选择信息。例如,对于数据中心环境,可以例如由数据中心管理员指定某些策略。为了遵守策略,可以通过考虑初始选择信息执行某个计算任务的调度,该信息包括策略规则。例如,数据中心管理员可能希望实施每个计算实体的某个最大应用数量,该数量包括在初始选择信息中。为了遵守该规则,从已经具有在计算实体上运行的最大应用数量的潜在计算实体列表中过滤计算实体。
[0066]一般而言,在机器学习中,通常修改影响某个过程的特征特性,以使得机器学习算法可以更好地利用它们。具体地说,修改可以采取以下两种形式之一:
[0067]形式I。添加新特性,该新特性是现有特性的某种变换(例如,对于属于数值的特性,跨条目将该特性的值缩放到某个有界区间,或者应用函数,例如平方、对数、指数等)。在变换过程中,可以消除原始特性(但并非一定如此)。
[0068]形式2。经由函数组合两个或更多现有特性(例如,两个或更多特性的乘积、两个特性的比率等)。
[0069]可以重复应用这些修改步骤,其中作为一个步骤中的“新”特性的特性变成其它步骤的“现有”特性。
[0070]最后,从较大原始和/或强化特性集合中,可以仅选择较少数量的代表性特性以便改进机器学习过程。
[0071 ] 如图2中所示,调度实体410可以包括第一参数处理实体440。第一参数处理实体440可以接收计算任务参数。参数处理实体440适合于处理接收的计算任务参数,以便获得修改后的计算任务参数。可以将修改后的计算任务参数传输到调度处理实体460。如前面提及的,参数处理实体440可以适合于修改(通过缩放、应用数学函数等)计算任务参数、组合两个或更多计算任务参数以便获得新的计算任务参数、改变至少一个计算任务参数并连同原始计算任务参数一起添加改变后的计算任务参数,或者以其它方式修改计算任务参数。备选地或此外,第一参数处理实体440可以选择计算任务参数子组,并且将参数子组提供给调度处理实体460。从而,可以改进机器学习过程。
[0072]此外,调度实体410可以包括第二参数处理实体470。第二参数处理实体470可以接收计算实体参数,具体地说,第一和第二组计算实体参数。参数处理实体470适合于处理接收的计算实体参数,以便获得修改后的计算实体参数。可以将修改后的计算实体参数传输到调度处理实体460。类似于第一参数处理实体440,第二参数处理实体470可以适合于修改(通过缩放、应用数学函数等)第一和/或第二组计算实体参数、组合第一和/或第二组计算实体参数的两个或更多参数以便获得新参数、改变至少一个计算实体参数并连同原始计算实体参数一起添加改变后的计算实体参数,或者以其它方式修改第一和/或第二组计算实体参数。备选地或此外,第二参数处理实体470可以选择第一和/或第二组计算实体参数子组,并且将参数子组提供给调度处理实体460。从而,可以改进机器学习过程。
[0073]调度处理实体460可以实现基于机器的算法,以便基于(修改后的)计算实体参数和(修改后的)计算任务参数选择某个计算实体。从而,还可以考虑过去进行的先前选择(在下面也被称为决策)。换言之,调度处理实体460可以适合于及时学习,以便选择有利的计算实体。
[0074]调度处理实体460可以使用机器学习技术,其适合于从先前决策学习,并且基于从先前决策获得的知识进行实际计算实体选择。此外,调度处理实体460可以被配置为动态适应上下文变化,从而还考虑计算实体的工作负载和计算能力(CPU时钟/体系架构、存储大小等)O
[0075]调度处理实体460可以根据基于来自先前决策的知识的(修改后的)计算实体参数和(修改后的)计算任务参数进行决策,该计算实体(由计算实体参数指定)可以针对此类计算任务(由计算任务参数指定)提供有利的性能。例如,(修改后的)计算实体参数可以提供关于可用计算实体、其计算能力和计算实体的实际工作负载的信息。(修改后的)计算任务参数(例如,指令数量、存储要求等)可以提供关于要由数据中心的一个或多个计算实体处理的计算任务的?目息。
[0076]为了能够考虑从先前决策获得的知识,数据中心可以在计算任务的执行期间或之后,将反馈信息提供给调度处理实体460。反馈信息可以包括在计算任务的执行期间获得的信息,例如消耗的电力、CPU使用率和/或性能瓶颈(所述信息在下面也被称为回报)。此外,反馈信息可以包括关于哪个计算实体执行计算任务的信息。此外,反馈信息可以包括关于用于选择计算实体的(修改后的)计算实体参数和(修改后的)计算任务参数的信息。反馈信息所基于的信息在此有时将被称为“历史”信息,例如用于处理“历史计算任务”的数据中心的“历史计算实体选择”,以及“历史处理结果”。如上面提及的,在某些实施例中,“当前”或“新”任务及其关联的计算实体选择和处理结果在当前或新任务完成时,将变成“历史”数据以便用于反馈信息目的。在这些实施例中,持续发生机器学习。
[0077]调度处理实体460可以包括存储实体或者可以与存储实体耦合,以便存储反馈信息。存储实体可以存储先前选择的历史,即至少信息元组,元组至少包括关于选定决策(已在哪个计算实体上执行哪种应用(一般而言为计算任务))的信息以及关于决策回报的信息。基于该历史,调度处理实体460可以能够提供改进的计算任务分配。例如,回报可以是计算任务处理时间的度量。具体地说,回报值可以与处理/执行计算任务需要的处理时间成反比。根据另一个实施例,回报可以是计算实体处理计算任务的能量消耗的度量。具体地说,回报值可以与处理/执行计算任务需要的能量消耗成反比。
[0078]调度处理实体460可以适合于实现多臂匪徒模型,以便基于(修改后的)计算实体参数、(修改后的)计算任务参数和反馈信息自动进行选择。多臂匪徒模型算法一般而言是已知的。
[0079]根据第一实施例,调度处理实体460可以仅考虑先前决策,这些决策指相同的先前决策,即,为了针对相同计算任务(由相同计算任务参数指定)和相同计算实体(由相同计算实体参数指定)实现计算任务分配进行的决策。
[0080]根据优选实施例,调度处理实体460可能不仅考虑相同的先前决策,而且可能实现上下文模型,即,可以使用类似的先前决策进行实际决策的模型。例如,可以考虑涉及计算任务分配的先前决策,该任务类似于要在数据中心环境中调度的当前计算任务。更详细地说,当在数据中心中调度应用A时,调度处理实体460可能不仅考虑针对相同应用A进行的过去选择,而且还考虑针对类似于A的应用B进行的选择。可以基于提供给调度处理实体460的应用(一般而言为计算任务)的计算任务参数来定义类似性,这些参数例如包括指令数量、平均(PU使用率、平均存储使用率等。
[0081]此外,调度处理实体460还可以实现上下文模型,其不仅考虑在相同计算实体上托管/执行的决策,而且还考虑类似的计算实体。具体地说,为了在计算实体C处调度计算任务A,调度处理实体460可能不仅考虑将计算任务A分配给计算实体C的过去决策,而且还考虑将计算任务A分配给计算实体D的过去决策,其中计算实体D在所提取的计算实体特性方面类似于计算实体C。从而,调度处理实体460可以不仅从相同的过去选择学习,而且还从类似的过去选择学习。此外,还可以组合上面提及的上下文选择方案,即,实际决策可以基于关于类似计算任务和类似计算实体的先前决策。
[0082]根据相应情况,计算任务的调度可以追求不同的目标,例如缩短计算任务的处理时间或降低能量消耗。换言之,必须基于要由调度过程实现的不同目标完成计算实体的选择。因此,基于要实现的给定目标,改变用于选择计算实体的选择算法。例如,可以将信息提供给调度处理实体460,该信息表征应由调度过程实现的目的或目标。基于该信息,调度处理实体460可以做出用于选择某个计算实体的决策。
[0083]图3示出用于在包括多个计算实体的数据中心环境中调度计算任务的方法。首先,接收要由数据中心环境处理的计算任务(S200)。此外,可以提供一组计算任务参数(S210),这些计算任务参数指定要处理的计算任务的特征。此外,可以提供一组计算实体参数(S220),其中计算实体参数指定计算实体的特征。可以将计算任务参数和计算实体参数转发到调度实体(S230)。
[0084]在变型中,提供的一组计算实体参数可以指定实际可用于处理该计算任务的那些计算实体的特征。换言之,可以在下面描述的选择步骤S240之前,进行相关实体的预选择。
[0085]在接收计算任务参数和计算实体参数之后,调度实体可以选择多个计算实体中的一个或多个计算实体以便处理计算任务(S240)。该选择基于所述一组计算任务参数、所述一组计算实体参数以及从先前计算任务调度收集的反馈信息。与先前一样,在选择计算实体的步骤之前,从选择实体(用于调度先前计算任务(多个))和处理此类先前计算任务(多个)的先前步骤收集反馈信息。另外如上所述,反馈信息可以对以下一项或多项进行编码:参数、数据、模型等,它们在先前选定的实体上处理先前计算任务(多个)时获得,例如在先前计算任务(多个)的执行期间或之后获得。
[0086]最后,可以在选定的至少一个计算实体上处理计算任务(S250)。
[0087]出于示例和描述目的提供了实施例的上述描述。其并非旨在是穷举的或将本发明的实施例限于所公开的精确形式。可以根据上述教导进行修改和变化,或者可以从各种实施例的实施获得修改和变化。在此讨论的实施例的选择和描述是为了解释各种实施例的原理和性质及其实际应用,以便当适合于所构想的特定使用时,使得所属技术领域的技术人员能够在具有各种修改的各种实施例中使用本发明。在此描述的实施例的特性可以以所有可能的组合进行组合,而不偏离基本原理概念的范围。
[0088]II1.定义
[0089]本发明:不应被视为以下绝对指示:术语“本发明”描述的主题由提交的权利要求涵盖,或者由可以最终在专利诉讼之后公告的权利要求涵盖;尽管术语“本发明”用于帮助读者大概理解在此被认为可能是新的那些公开,但如使用术语“本发明”指示的,这种理解是暂定和临时的,并且随着相关信息的开发和权利要求的潜在修改而在专利诉讼过程中有所变化。
[0090]实施例:参见上面的“本发明”定义一类似注意事项适用于术语“实施例”。
[0091 ]和/或:可兼或;例如,A、B “和/或” C表示A或B或C中的至少一个为真并且适用。
[0092]包括/包含:除非另外明确指出,否则表示“包括但不一定限于”。
[0093]没有实质性人为干预:在具有很少或没有人为输入的情况下自动发生的过程(通常通过诸如软件之类的机器逻辑的操作);涉及“没有实质性人为干预”的某些实例包括:
(i)计算机正在执行复杂处理,并且某人由于电网电力中断而将计算机切换到备用电源,以使得处理不间断地继续;(i i)计算机将要执行资源密集型处理,并且某人确认确实应该进行该资源密集型处理(在这种情况下,单独考虑,确认过程具有实质性人为干预,但该资源密集型处理不包括任何实质性人为干预,尽管需要某人进行简单的是-否型确认);以及(iii)使用机器逻辑,计算机已进行重大决策(例如,用于在预测到恶劣天气时使所有飞机着陆的决策),但在实施重大决策之前,计算机必须从人力资源获得简单的是-否型确认。
[0094]自动:没有任何人为干预。
[0095]模块/子模块:以操作方式工作以便执行某种功能的任何硬件、固件和/或软件集合,不考虑模块是否:(i)在单个局部邻近中;(ii)在广泛区域内分布;(iii)在较大软件代码块中的单个邻近中;(iv)位于单个软件代码块中;(v)位于单个存储设备、存储器或介质中;(vi)机械连接;(vii)电连接;和/或(viii)连入数据通信。
[0096]计算机:具有显著数据处理和/或机器可读指令读取能力的任何设备,包括但不限于:台式计算机、大型计算机、膝上型计算机、基于现场可编程门阵列(FPGA)的设备、智能电话、个人数字助理(PDA)、本体安装或插入的计算机、嵌入设备型计算机、基于专用集成电路(ASIC)的设备。
【主权项】
1.一种用于在包括多个计算实体的数据中心环境中调度计算任务的计算机实现的方法,所述方法包括: 至少部分地基于以下项确定反馈信息: 所述多个计算实体中用于处理历史计算任务的历史计算实体选择,以及 与由所述历史计算实体选择处理的所述历史计算任务关联的历史处理结果; 接收对应于以下项的数据: 要由所述数据中心环境处理的新计算任务, 指定所述新计算任务的特征的关联计算任务参数,以及 一组计算实体参数,所述计算实体参数指定所述多个计算实体中的所述计算实体的特征;以及 由调度实体的机器逻辑至少部分地基于以下项选择所述多个计算实体中的一个或多个计算实体作为用于处理所述新计算任务的一个或多个选定计算实体: 所述一组计算任务参数, 所述一组计算实体参数,以及 所述反馈信息。2.如权利要求1所述的方法,还包括: 在所述一个或多个选定计算实体上处理所述计算任务。3.如权利要求1所述的方法,还包括: 当随时间调度其它新计算任务时,由所述调度实体通过持续集成反馈信息来不断完善调度过程。4.如权利要求1所述的方法,其中所述调度实体包括在所述一个或多个选定计算实体的选择中考虑所述反馈信息的自学习调度机制。5.如权利要求3所述的方法,其中所述自学习调度机制适于考虑在选择一个或多个计算实体以便在所述数据中心环境中调度先前计算任务的先前步骤中使用的计算任务参数和计算实体参数。6.如权利要求1所述的方法,其中所述调度实体包括用于选择所述一个或多个计算实体的多臂匪徒模型。7.如权利要求1所述的方法,其中所述调度实体包括考虑所述反馈信息的上下文自学习机制,所述反馈信息源自对具有与待调度的当前计算任务的计算任务参数类似的计算任务参数的计算任务的处理。8.如权利要求1所述的方法,其中所述调度实体包括考虑反馈信息的上下文自学习机制,所述反馈信息源自在具有与当前选择的计算实体的计算实体参数类似的计算实体参数的计算实体上处理计算任务。9.如权利要求1所述的方法,其中所述调度实体包括参数处理实体,所述参数处理实体接收所述计算任务参数并且选择被考虑以便选择所述一个或多个计算实体的计算任务参数的子集。10.如权利要求1所述的方法,其中所述调度实体包括参数处理实体,所述参数处理实体接收所述计算任务参数并且适于:通过应用算术运算修改所述计算任务参数、或者通过基于算术运算组合两个或更多计算任务参数而生成修改后的计算任务参数、或者改变至少一个计算任务参数并连同原始计算任务参数一起添加改变后的计算任务参数。11.如权利要求1所述的方法,其中所述调度实体包括参数处理实体,所述参数处理实体接收所述计算实体参数并且选择被考虑以便选择所述一个或多个计算实体的计算实体参数的子集。12.如权利要求1所述的方法,其中所述调度实体包括参数处理实体,所述参数处理实体接收所述计算实体参数并且适于:通过应用算术运算修改所述计算实体参数、或者通过基于算术运算组合两个或更多计算实体参数而生成修改后的计算实体参数、或者改变至少一个计算实体参数并连同原始计算实体参数一起添加改变后的计算实体参数。13.如权利要求1所述的方法,其中基于计算任务要求选择所述多个计算实体中的计算实体子集。14.如权利要求1所述的方法,其中基于一个或多个优化特征选择所述一个或多个计算实体,所述优化特征定义要通过所述调度实体改进的一个或多个数据中心参数。15.—种用于在包括多个计算实体的数据中心环境中调度计算任务的计算机程序产品,所述计算机程序产品包括其上存储程序指令的计算机可读存储介质,所述程序指令被编程为实现如权利要求1-14所述的任一方法的所有步骤。16.—种用于在包括多个计算实体的数据中心环境中调度计算任务的计算机实现的方法,所述方法包括用于执行如权利要求1-14所述的任一方法的所有步骤的装置。17.—种用于在包括多个计算实体的数据中心环境中调度计算任务的计算机系统,所述计算机系统包括: 处理器集合;以及 计算机可读存储介质; 其中: 所述处理器集合被构造、定位、连接和/或编程,以便运行存储在所述计算机可读存储介质上的程序指令;以及所述程序指令包括: 第一程序指令,其被编程为至少部分地基于以下项确定反馈信息: 所述多个计算实体中用于处理历史计算任务的历史计算实体选择,以及 与由所述历史计算实体选择处理的所述历史计算任务关联的历史处理结果; 第二程序指令,其被编程为接收对应于以下项的数据: 要由所述数据中心环境处理的新计算任务, 指定所述新计算任务的特征的关联计算任务参数,以及 一组计算实体参数,所述计算实体参数指定所述多个计算实体中的所述计算实体的特征;以及 第三程序指令,其被编程为由调度实体的机器逻辑至少部分地基于以下项选择所述多个计算实体中的一个或多个计算实体作为用于处理所述新计算任务的一个或多个选定计算实体: 所述一组计算任务参数, 所述一组计算实体参数,以及 所述反馈信息。
【文档编号】G06F9/455GK106055379SQ201610217148
【公开日】2016年10月26日
【申请日】2016年4月8日 公开号201610217148.X, CN 106055379 A, CN 106055379A, CN 201610217148, CN-A-106055379, CN106055379 A, CN106055379A, CN201610217148, CN201610217148.X
【发明人】A·S·安格尔, B·普利萨卡利, G·R·赫雷拉
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1