CN109983441B - 用于批作业的资源管理 - Google Patents
用于批作业的资源管理 Download PDFInfo
- Publication number
- CN109983441B CN109983441B CN201780072388.8A CN201780072388A CN109983441B CN 109983441 B CN109983441 B CN 109983441B CN 201780072388 A CN201780072388 A CN 201780072388A CN 109983441 B CN109983441 B CN 109983441B
- Authority
- CN
- China
- Prior art keywords
- job
- resource
- jobs
- resources
- client
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
批作业管理服务的调度器确定一组资源客户端不足以执行一个或多个作业。所述调度器准备所述作业的资源要求的多维统计表示,并将其发射到资源控制器。所述资源控制器使用所述多维表示和资源使用状态信息来做出资源分配改变决策。
Description
背景技术
许多公司和其它组织操作计算机网络,所述计算机网络互连多个计算系统以支持其操作,例如其中所述计算系统被共同定位(例如,作为本地网络的一部分)或替代地定位在多个不同的地理位置中(例如,通过一个或多个专用或公共中间网络连接)。例如,容纳大量互连计算系统的分布式系统已经变得司空见惯。这种分布式系统可以向与客户端交互的服务器提供后端服务。这种分布式系统还可以包含由实体操作以向客户提供计算资源的数据中心。一些数据中心运营商为各种客户拥有的硬件提供网络接入、电力和安全安装设施,而其它数据中心运营商提供“全方位服务(full service)”设施,所述全方位服务设施还包含可供所述运营商的客户使用的硬件资源。当被远程客户访问时,数据中心处的这种资源可以被称为驻留“在云中”,并且可以被称为云计算资源。
用于商品硬件的虚拟化技术的出现已经在管理具有不同要求的许多客户的大规模计算资源方面提供了益处。例如,虚拟化技术可以通过向每个用户提供由单个物理计算装置托管的一个或多个虚拟机来允许单个物理计算装置在多个用户之间共享。每个这样的虚拟机可以是充当不同逻辑计算系统的软件模拟,所述软件模拟向用户提供他们是给定硬件计算资源的唯一运营商和管理员的假象,同时还在各种虚拟机之间提供应用隔离和安全性。通过虚拟化,单个物理计算装置可以按动态方式创建、维护或删除虚拟机。
使用云计算资源的虚拟化来运行客户端程序可以使一些客户端在给定时间访问比客户端的预置资源可能的更大量的计算容量。例如,某些客户端可能希望执行大量分析和其它计算密集型计算,这些计算很容易耗尽预置资源的资源容量。一些这样的计算可能具有对于其它计算的依赖性,并且所需资源的组合可能对于不同计算而改变。针对不同的计算工作量有效地管理云资源的分配可能存在重要的问题。
附图说明
图1示出了根据至少一些实施例的实例系统环境,其中资源控制器可以满足由事件驱动的调度器识别的用于批作业处理的多维资源要求。
图2示出了根据至少一些实施例的作业队列、计算环境和调度器之间的关系的实例,以及可以用于批作业管理的实例数据结构。
图3示出了根据至少一些实施例的可由调度器生成的资源报告的实例内容。
图4示出了根据至少一些实施例的可由批作业调度器生成的资源要求的节省空间的表示的实例。
图5示出了根据至少一些实施例的可以在由批作业调度器生成的资源要求中表示的资源属性的实例。
图6示出了根据至少一些实施例的可以由资源控制器确定资源分配改变时考虑的因素的实例。
图7示出了根据至少一些实施例的可以在其中实施用于管理批作业的服务的实例提供商网络环境。
图8是示出根据至少一些实施例的可以由批作业管理服务的调度器和资源控制器执行的操作的各方面的流程图。
图9是示出根据至少一些实施例的可以执行以在一个实例场景中生成作业要求的统计表示的操作的各方面的流程图。
图10是示出根据至少一些实施例的可以响应于接收到资源报告而在资源控制器处执行的操作的各方面的流程图。
图11是示出可以在至少一些实施例中使用的实例计算装置的框图。
尽管本文通过实例的方式针对若干实施例和说明性附图描述了实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应当理解,附图和对其的详细描述并非旨在将实施例限制于所公开的特定形式,而是相反,其意图是覆盖落入由所附权利要求限定的精神和范围内的所有修改、等同物和替代物。本文使用的标题仅用于组织目的,并不意指用于限制说明书或权利要求的范围。如在整个本申请中所使用的,词语“可以”以允许的意义使用(即,意指具有潜在的意义),而不是强制意义(即,意指必须)。类似地,词语“包含(include)”、“包含(including)”和“包含(includes)”意指包含但不限于。当在权利要求中使用时,术语“或”用作包含性的而不是排他性的或。例如,短语“x、y或z中的至少一个”意指x、y和z中的任何一个,以及它们的任何组合。
具体实施方式
描述了用于管理用于完成由批作业管理服务的客户端提交的作业请求的资源分配的方法和设备的各种实施例。在至少一些实施例中,可以在提供商网络处实施网络可访问的批作业管理服务。由例如公司或公共部门组织的实体设置提供可通过互联网和/或其它网络访问的一个或多个网络可访问服务(例如各种类型的基于云的计算或存储服务)到分布式客户端集的网络在这样的实施例中可以称为提供商网络。提供商网络有时可称为“公共云”环境。在某些情况下,提供商网络的资源可以分布在多个数据中心,而这些数据中心又可以分布在许多城市、州和国家之间。
在一个实施例中,批作业管理服务可以实施一个或多个编程接口,从而使得客户端能够指定对可以部署的资源的数量和类型的限制,这些资源将用于客户端的批作业。可以为给定客户端的一个或多个逻辑资源分组指定各组这样的限制,每个资源逻辑分组可以被称为计算环境。在一个实施例中,还可以使用编程接口来指示要用于管理作业的调度的队列,以及作业定义和队列与计算环境之间的映射。在一个实施例中,可以为客户端的一个或多个队列的作业实例化一个或多个调度器实例(例如,各自包括相应的线程或进程)。调度器可以被认为是服务的数据平面的一部分(处置/处理客户端应用程序数据的服务部分,包含例如提交的作业),而不是表示服务的管理部分的控制平面。客户端可以向任何客户端队列提交作业,每个提交的作业指示实施作业所需的资源的各种属性,例如特定类型的CPU数量、存储器量等。在一些实施例中,还可以在作业提交中指示作业之间的依赖性。为客户端设置的调度器可以在各种时间点和各种触发条件下检查给定队列中的待处理作业,并且在一些实施例中,至少在某些情况下生成对队列的待处理作业的要求的多维统计表示。例如,作业的CPU要求的统计分布可能表示一个维度,而作业的存储器要求的统计分布可能表示另一维度。在各种实施例中,术语“待处理作业”可以用于指代尚未完成的提交作业,例如,因为其尚未开始执行或者因为其已经开始执行但尚未完成执行。
在一些实施例中,统计表示可以由调度器提供,作为到服务的控制平面或称为资源控制器的管理部件的资源报告的一部分。在一个实施例中,用于生成多维表示的技术可以独立于作业队列的当前群体。无论队列是否具有十个待处理作业或十万个待处理作业,在各种实施例中,作业要求的多维表示的大小以及因此资源报告的大小可以保持相当小,例如,在某些实施中限于几千字节或几万字节。下面进一步详细描述的限制资源报告的大小的技术可以使服务能够处理任意大(或小)的队列大小,而不会影响各种实施例中的资源分配决策制定过程的性能。
响应于接收资源报告,资源控制器可以负责根据客户端指定的资源限制、作业资源要求的多维表示和/或与当前分配和资源使用有关的状态信息,来确定将分配任何其它资源以允许执行一个或多个待处理作业。如果要分配新资源,和/或如果要进行例如合并或拆分现有资源的其它改变,则可以代表资源控制器将适当的请求发射到一个或多个资源提供商(其例如可能包含提供商网络的其它网络可访问服务)。因此,在这样的实施例中,可以将进行资源分配改变的职责与作业的实际调度分开,其中资源分配改变决策在控制平面中进行,而作业调度在数据平面中执行。在一些实施例中,这种职责划分可以简化调度器的实施。在一个实施例中,例如,调度器可以实施事件驱动的执行模型,其中给定的调度器对来自各种源的事件通知作出反应,并且不一定必须轮询系统的其它部件。报告中包含的要求的多维方面可以使得能够在各种实施例中做出精确的要求驱动的分配决策。一般而言,资源控制器关于作业要求的细节越多,在各种实施例中可以在作业和资源之间识别的匹配越好,从而潜在地减少资源的过度分配和分配不足。
实例系统环境
图1示出了根据至少一些实施例的实例系统环境,其中资源控制器可以满足由事件驱动的调度器识别的用于批作业处理的多维资源要求。如图所示,批作业管理服务102可以包括一组控制平面部件105和一组数据平面部件150。在所描绘的实施例中,控制平面或管理部件可以包含例如前端请求处置器(FRH)118、资源控制器112和客户资源中介117。如名称所示,前端请求处置器118可以负责接收由服务102的客户端提交的请求,并启动响应请求所需的动作。客户端可以向FRH提交各种编程请求,例如创建队列、创建/修改计算环境、提交作业、终止作业等的请求。资源控制器可以针对可从以下各处访问的各种资源做出分配变更决策。各种资源提供商170(例如,170A或170B)-例如,根据客户需要分配额外资源、合并或拆分分配的资源,或自由分配的资源。客户资源中介可以从资源控制器112接收对资源分配改变动作191(例如,动作191A或191B)的请求,并且在所描绘的实施例中使用适当的客户端授权凭证将它们发射到资源提供商。
数据平面部件可以包括用于批作业管理服务102的各种客户端或客户的相应作业管理环境(JME)152。例如,客户C1的JME 152A可以包含作业队列154A和154B,以及事件驱动的调度器实例(ESI)153A和153B,而客户C2的JME 152B可以包括队列154M和ESI 153K。在一些实施例中,可以响应于客户端提交给前端请求处置器118的程序性请求来建立作业队列,而ESI可以由资源控制器基于例如作业队列的数量和/或来设置。预期的作业提交率。在一个实施例中,例如,当待处理的作业数量增加时,资源控制器可以建立更多的ESI,或者可以将更多的计算或存储器资源添加到现有的ESI。在另一个实施例中,可以响应于客户端请求而不是由资源控制器管理或除了由资源控制器管理之外创建ESI。
ESI 153可以经由相应的通知接口155(例如155A或155B)从所描述的实施例中的多个不同类型的源接收事件通知166(例如,166A和166B)。一些事件通知可以由前端请求处置器118生成,例如,当客户端提交新作业时,当客户端请求取消/终止现有作业时,等等。在各种实施例中,当在资源提供商处完成运行作业时,可以生成其它事件通知。另外,在至少一个实施例中,可以按事件通知的形式向ESI报告关于各种资源的当前使用的信息。响应于接收至少一些类型的事件通知,ESI 153可以分析其负责的作业队列154的当前状态。可以准备资源报告179(例如,资源报告179A或179B)并将其发射到资源控制器,例如,基于队列的状态和已经可用于作业的调度器的资源。如下面进一步详细讨论的,资源报告179可以包括所描绘的实施例中的以下元素中的一个或多个:所选择的一组排队作业的要求的多维统计表示,以及一个或多个的资源使用状态信息。为客户端配置的更多计算环境。多维表示可以指示沿着给定队列的作业要求的若干不同属性或维度的值的分布-例如处理(虚拟或物理CPU)要求的分布,存储器要求的分布,开始或结束作业的期限,等等。在一些实施例中,可以在客户端JME中的每个队列生成一个这样的多维表示,而在其它实施例中,可以针对多于一个队列生成单个多维表示。
资源控制器112可以访问客户的计算环境定义113,其可以指示对代表给定客户端(例如C1或C2)分配的最大(或最小)资源集的限制。使用例如各种类型的二进制打包算法之类的一个或多个优化算法114,资源控制器的放大/缩小逻辑115可以确定当前分配给客户端的资源集是否要按比例放大(通过分配/激活)在给定资源报告中指示的要求的情况下,新资源不违反计算环境定义中的限制(113)或按比例缩小(例如,通过解除分配/去激活可能空闲的资源,或通过合并资源实例)。可以将放大或缩小决策的表示发射到客户资源中介117,并且相应的动作可以由中间装置在所描绘的实施例中的适当的资源提供商170处发起。分配改变可以导致事件通知被发射到受影响的ESI 153,其然后可以在各种实施例中将来自队列154的各种作业调度到RP的适当资源上。
在不同实施例中,可以为客户端的批作业分配或激活各种资源的任何期望组合,例如在虚拟化计算服务170A处实例化的客户虚拟机,物理主机或服务器,存储服务170B的存储装置,数据库。实例,图形处理装置(例如,基于GPU的装置或虚拟机),针对机器学习优化的装置,程序执行容器等。在给定的时间点,在各种实施例中,给定计算环境的资源可以处于若干状态之一。例如,在一个实施例中,可以分配和使用给定资源(执行或协助执行正在运行的作业),分配和释放(可用于执行待处理作业,如果存在,但当前未指定任何作业)虽然计算环境的限制允许这样的分配,但是未分配(尚未分配和指定用于作业)。在一个实施中,一些空闲资源可以被置于休眠或去激活状态,当被指派给作业时,它们可以从所述状态转换到激活状态。
队列和计算环境之间的映射
图2示出了根据至少一些实施例的作业队列、计算环境和调度器之间的关系的实例,以及可以用于批作业管理的实例数据结构。如图所示,给定客户(C1)的作业管理环境202可以包括一些数量的作业队列205(例如,队列205A-205C),一些计算环境212(例如,CE212A-212D),以及一些数量的调度器。实例210(例如,210A或210B)。如前所述,给定的计算环境可以表示具有客户端指定的关联限制的资源的逻辑分组。给定计算环境的资源实际上可以表示所描绘的实施例中的占位符,对于所述占位符,可以在需要时分配对应的实际资源(例如虚拟或物理机器或装置)。可以使用与一个或多个计算环境212相对应的资源来实现给定队列的提交的作业290(例如队列205A的作业290A和290B,或队列205C的作业290K),并且可以使用给定的计算环境212来执行在所描绘的实施例中,来自几个不同队列205的作业,使得可以说在队列和计算环境之间存在m:n关系。给定调度器实例210可以被配置成在与所描绘实施例中的队列相关联的适当计算环境集合处调度一个或多个队列205的作业的执行。在其它实施例中,队列和调度器实例之间的关系可以更受限制-例如,在一个实施例中,给定调度器可以恰好负责一个队列。
还示出了关于所描绘的实施例的可用于表示计算环境,队列,作业定义和作业(作业定义的提交实例)的数据结构或对象的内容。表示计算环境212的对象可以包含,例如,用于唯一名称或标识符(CEName 222)的相应条目,类型(CET类型224),状态(CEStatus 226),以及指示环境可能包含的资源种类和数量的一个或多个资源描述符。例如,在所描绘的实例场景中,可以将CEType元素设置为“托管”或“非托管”。在托管环境中,资源分配可以由批作业管理服务处理,而在非托管环境中,可能必须由代表其设置非托管环境的客户端请求对资源分配的改变。非托管计算环境可能很有用,例如,对于需要自定义资源配置的特殊用途作业,或者需要运行作业管理服务的提供商网络之外的资源。CEStatus字段可以指示计算环境212当前是否被启用(即,可用于作业)或禁用。
例如228A或228B的资源描述符228可以包括所描绘的实施例中的若干子字段。RType子字段(在资源描述符228A的情况下为230A)可以指示资源类型(例如计算或存储)。RMin,RMax和RDefault子字段232A,234A和236A可以分别指示RType的最小允许资源,RType的最大允许资源,以及在计算环境时要实例化或启用的RType的默认资源量。最初启用。最小,最大和默认资源量的单位可能因RType而异-例如,对于虚拟或物理CPU,单位可能是整数处理器计数,而对于存储器或存储,单位可以用千兆字节表示,或者喜欢。在一些情况下,给定RType(例如虚拟机)的资源可以被分类为若干实例类型,并且RInstanceTypes子字段238A可以指示计算环境中允许的实例类型。例如,在一个实施例中,虚拟机可以在虚拟化计算服务的三种实例类型中可用:小型,中型和大型,其中一个大型实例是八个小型实例或四个中型实例的逻辑等效物。因此,可以将给定计算环境的小实例合并到逻辑上等效的中型或大型实例中,或者将大型实例拆分成逻辑上等效的较小实例,并且可以由资源控制器在某些实例中进行这种合并或拆分决策。实施例。在一些实施例中,一些资源实例可以基于获取模式而与其它资源实例不同-例如,一些虚拟机可以被保留很长时间,其它虚拟机可以按需获取,而其它虚拟机可以使用现货定价机制获取(如果资源)提供商有足够的空闲资源。RInstanceTypes子字段可以指示至少一些这样的实施例中的获取模式。在至少一些实施例中,资源描述符还可以包含关于网络限制的信息(例如,用于资源的特定子网或隔离虚拟网络,经由子域RNetworkDetails 240A指示)、安全性限制(通过RSecurityDetails 242A指示),以及/或客户希望用于对资源描述符进行分类的文本标签(RTags 244A)。
队列对象205可以具有关联的标识符QName 252,状态字段QStatus 254(例如,可设置为启用或禁用),以及计算环境(CE)的优先级排序256,其将用于队列中的队列的作业。描述了实施例如果为给定队列指派CE 257A的优先级高于CE 257B,则可以首先尝试在CE257A中查找队列的给定作业的资源,并且仅当CE 257A没有足够的资源来完成这项作业时才可以仅尝试从CE 257B查找资源。
作业定义对象270可以包括用于唯一名称(JDName 272)的字段,对应于作业定义的每个提交的作业实例的资源要求274,要为履行作业实例而执行的命令276,以及在一些情况下的其它配置细节。在所示实施例中为281。在一些实施例中,可以在作业定义中指示分别用于命令的必需和可选参数277和279。在一些实施例中,可以专门为具有单个作业定义的作业指定给定作业队列。在其它实施例中,给定作业队列可以用于若干作业定义的实例。
在所描绘的实施例中,提交的作业对象290(其也可以称为作业实例)可以包括作业名称(JName 291),作业将被插入其中的队列292的标识符,并且取决于-信息293指示对其它作业的依赖性(例如,作业是否只能在关于一个或多个其它作业的状态的某些条件下开始)。在一些实施例中,可以将ArraySize字段294设置为大于一的整数,以提交可以同时执行的一组作业(如果有足够的资源可用)。可以通过JobDef字段295指示作业的定义,可以通过Params字段296指示作业命令的实际参数,并且可以通过Retries字段297指示要执行作业的最大尝试次数。注意,各种其它字段和子字段可以用于不同实施例中所示的不同种类的对象或数据结构;所示的实例字段不是限制性的。在各种实施例中,客户端可以利用批作业管理服务的相应编程接口来创建,查看/列出,删除或修改图2中所示的各种数据结构。例如,在一个实施例中,用于计算环境的应用程序编程接口(API)可以包含createComputeEnvironment、listComputeEnvironments、updateComputeEnvironment、deleteComputeEnvironment等。在至少一些实施例中,客户端可以使用除API之外的编程接口,例如基于web的控制台,命令行工具或图形用户界面来与批作业管理服务交互。
资源报告内容
图3示出了根据至少一些实施例的可由调度器生成的资源报告的实例内容。如图所示,资源报告310可以包括待处理作业要求312A的至少一个多维统计表示,以及至少一个资源使用状态报告314A。在一些实施例中,可以为调度器负责的每个队列产生相应的统计表示312,并且可以为可用于由调度器管理的一个或多个队列的每个计算环境生成相应的资源使用状态对象314A。在其它实施例中,可以创建多于一个队列的待决作业要求的合并统计表示,和/或可以为多于一个计算环境创建合并资源使用状态对象。如前所述,可以在一些实施例中响应于由调度器接收的事件通知来生成资源报告310,并且可以将资源报告发射到服务的资源控制器。在至少一个实施例中,资源报告可以由每个调度器周期性地(例如,每T秒或几分钟一次)提交,作为“心跳”机制的一部分,其通知资源控制器调度器仍然是活动的,例如,除了或者而不是在与作业状态更改相关联的事件通知触发后提交。实际上,由计时器或其它类似的超时机制生成的通知可以被认为是调度器可以通过生成资源报告来响应的事件的另一实例。在一个实施例中,如果存在至少一个待处理作业,其资源要求使得不能使用与作业所属的队列相关联的计算环境的空闲资源来调度作业,则资源报告可以仅由调度器生成。
二维簇330表示图3所示实施例中给定队列的待处理作业的要求340的多维表示的一个实例。表示中包含的两个资源属性或维度是(a)每个作业所需的虚拟CPU(vCPU)的数量,以及(b)每个作业所需的存储器量(以GB为单位)。可以使用聚类算法将vCPU要求分组为至少三个桶:<=2个vCPU,2到4个vCPU,以及4到8个vCPU。然后,对于每个vCPU群集的作业,可以使用存储器要求分配将作业分组为至少三个存储器要求桶:<=4千兆字节,4到8千兆字节,以及8到16千兆字节。作为二维聚类的结果,作业可以被分组为四个不同的群集:具有与所述组合相对应的5个作业的群体(4到8个vCPU,4到8GB的存储器)的一个群集、具有对应于(<=2个vCPU,8-16个存储器)的3个作业的群体的第二群集、对应于(<=2个vCPU,4-8个GB存储器)的单个作业的第三群集,以及对应于组合(2-4个vCPU,<=4GB存储器)的单个作业的第四群集。如下所述,可以通过调度器为相应实施例中的具有非零群体的每个2维桶创建相应元组,从而指示个别桶和相应作业群体的属性的所需值,并在资源报告中发射到资源控制器。
在各种实施例中,可以使用任何适当的范围分割方法来识别用于每个属性(例如,桶350A和350B的边界)的桶的边界-例如,可以使用与常用资源配置相对应的边界,例如存储器的2GB倍数。在所描述的实例中,边界选择导致了相当不平衡的集群-最少集群群体为10个作业总群体中的1个,最多集群群体为5个作业。在至少一些实施例中,可以使用比图3中所示的更平衡的聚类方法:例如,图9中所示类型的递归二进制分裂算法可以用来尝试实现具有大致相等的总体的桶,这可能更有利于资源控制器处采用的某些种类的资源分配算法。在至少一个实施例中,可以采用聚类机器学习算法(例如k均值聚类的各种版本中的任何一种)来自动生成资源报告的多维统计分布。
与队列大小无关的作业资源要求表示
图4示出了根据至少一些实施例的可由批作业调度器生成的资源要求的节省空间的表示的实例。在考虑N个不同要求属性的场景中,一个或多个队列的待决作业的资源要求的统计表示410可以包括一个或多个所需资源属性值412的N元组,例如N元组412A和412B,对应于由调度器识别的具有非零群体的多维桶。对应于每个N元组,相应的作业群体计数414(例如,414A或414B)可以包含在统计表示中。在所描绘的实施例中,已经为统计表示指定了最大R千字节大小,这可以限制可以包含在表示中的元组或桶的数量。作为这种尺寸限制的结果,通过统计表示传达的信息可以在所描述的实施例中关于作业要求的准确性或准确性方面改变;对于较大的队列大小,要求信息可以按更概括的形式表示,在确保与资源控制器的资源报告消息的大小相比于用于较小队列大小的大小时保持不变的同时失去一些准确性。
vCPU的二维分布和存储器要求,如图3所示,可以由对应的2元组实例430表示。如图所示,可以生成总共四个2元组,每个元组指示所需的vCPU数量和每个桶所需的存储器量。回想一下,在图3所示的实例中,每个桶对应于一系列值(例如,在4到8GB的存储器之间,或在2到4个vCPU之间)。从每个桶/集群的每个属性的范围,可以在各种实施例中基于依赖于属性的规则来确定对应的集合所需值。因此,如果特定桶指示2-4个vCPU的范围,则在所描绘的实施例中,可以将所需数量的vCPU设置为范围的最大值(4个vCPU),例如,因为分配小于最大值可能是潜在的导致所述存储桶中的作业无法在目标时间范围内完成其执行。相反,根据关于存储器实施的规则,可以将存储器属性的范围的平均值设置为所描绘的实例中的所需值(例如,基于作业可能能够执行的假设)具有合理的性能,存储器少于其定义中指出的存储器)。例如,在所示的第四个元组的情况下,存储器所需值被设置为12GB,对应于桶的8-16GB的存储器范围。
如上所述,在图4所示的实施例中,作业要求的表示的大小可以被限制为最大R千字节。如果N元组中的每一个和相应的作业总体信息占据最多M个字节,则这意味着在所描绘的实例中可以包含的最大元组数量大约为floor(R*1024/M)。由于每个N元组的N个所需值的组合对应于N维空间中的单个点,这意味着,随着所表示的作业总数的增加,要求的准确性或准确性可能会降低,因为更多并且可以将更多作业要求映射到单个点。图4中描绘了三个作业队列大小和相应的统计表示。在队列状态450C中,待处理作业的数量非常低(10),并且因此相应的统计表示454C可以是非常准确或精确的。例如,10个作业可能由10个不同的桶表示,因此可以准确地指示每个作业的要求。在队列状态450B中,可能有1000个待处理作业被映射到大致相同数量的元组,因此要求信息的准确性可能稍微更小,整个包含表示454B的资源报告的大小可保持或多或少不变。即使队列大小是队列状态450A中的一百万个作业,包含表示454A的资源报告的大小也可以保持不变,尽管要求数据可能比10个作业或1000个作业情况更接近。在一些实施例中,资源要求表示的大小可以是系统或服务的可调参数,因此可以根据需要进行调整,以实现资源报告消息大小和准确度之间的期望折衷。
作业资源要求的实例维度
图5示出了根据至少一些实施例的可以在由批作业调度器生成的资源要求中表示的资源属性的实例。可以使用几类资源属性的任何期望组合来指示不同实施例中的作业要求。如图所示,属性502可以在所描绘的实施例中被分类为至少以下类别:处理属性510、存储器属性512、存储装置属性514、网络属性516、安全属性518、时间相关属性520和软件堆栈属性522。应注意,对于至少一些属性,在各种实施例中,可行的值范围可能不一定是数值的-相反,例如,在某些情况下,分类值可能是合适的。此外,在给定实施例中可行值范围是数值的那些情况下,可行值在某些情况下可以是离散的(例如,仅整数)而在其它情况下可以是连续的(例如,实值)。
关于处理,取决于客户端希望运行的作业的种类,属性值510可以指示具有特定时钟频率的物理CPU(pCPU)的数量,具有指定计算容量的虚拟CPU(vCPU),GPU,在所描绘的实施例中的FPGA(现场可编程门阵列)等。关于存储器属性514,存储器大小(例如,如上面的实例中以千兆字节表示)、存储器技术(例如,要使用的SDRAM的类型,DDRAM等)、存储器带宽和/或存储器等待时间可以在一些实施例中,表示为不同的要求。
存储装置属性516可用于指示例如存储装置大小、存储装置技术、存储装置带宽、各种对象大小的存储延迟、故障恢复级别等的要求。网络属性516可以指实例如优选的互连类型、各种消息大小的消息延迟、带宽、支持的网络协议等
安全属性518可以指实例如多租户与专用资源的要求,资源支持的网络隔离技术的类型,TPM(可信平台模块)的可用性等。与时间相关的属性可能包含,例如,凝视或结束作业的截止日期(开始或截止日期)、请求作业和作业启动之间的最大延迟(启动延迟)、软件堆栈相关属性,例如,可以指示期望的操作系统版本、中间件程序、应用程序堆栈等。注意,在各种实施例中,在指定作业要求时(例如,在作业定义或作业提交中)可以仅考虑图5中指示的属性的子集,且因此在资源报告中仅可以表示子集。在一些实施例中,未在图5中示出的其它属性可用于指示作业所需资源的额外特征。
资源分配变更决策中考虑的实例因素
如前所述,在各种实施例中,调度器可以例如响应于事件通知和/或基于调度将资源报告发射到资源控制器。图6示出了根据至少一些实施例的可以由资源控制器确定资源分配改变时考虑的因素的实例。除了可以包含在从调度器接收的资源报告中的多维作业要求610和当前资源使用信息612之外,资源控制器630还可以在所描述的实施例中做出其决定时考虑若干其它参数。(注意,在至少一个实施例中,可以从除资源报告之外的源收集资源使用信息612-例如,可以由与用于批作业的资源提供商相关联的各种监视服务向资源控制器提供资源使用数据。)
资源启动时间元数据614可以指示启动或激活各种类型的资源所花费的时间,例如客户虚拟机,存储装置等。如果在提交作业的时间与作业执行开始的时间之间存在长时间延迟,则某些客户端可能具有可能无法正常作业的应用程序。在一个实施例中,即使当前没有当前排队的作业,资源控制器也可以决定保持激活相对长的启动时间的资源池,以便在提交需要这些资源的作业时,所述作业可以开始执行更多比必须激活新资源实例更快。
资源计费元数据616可以包含客户端为代表他们分配的资源计费的粒度-例如,一些资源可以按小时粒度计费,其它资源按每分钟或每天粒度计费。粒度可能会影响控制器关于何时应释放或取消分配空闲资源的决策。例如,考虑具有每小时计费粒度的资源的情况,所述资源被分配给客户端但在某个阈值时间内保持空闲,因此是发布的候选者。如果在做出关于可能释放资源的决定时,最近资源的新计费时间已经开始,那么保留资源可能是合理的,直到(比方说)在小时结束前十分钟,因为那里通过立即释放资源,不会给客户带来任何节省,并且在当前计费小时完成之前,客户可能会提交可以使用所述资源的新作业的非零概率。
在某些情况下,如前所述,资源可以分为基于大小的或基于能力的资源实例类别。例如,在一个实施中,虚拟化计算服务的计算实例(客户虚拟机)可以被指定为大,中或小,其中大计算实例的计算能力是(大约)K媒体的计算容量的K倍。计算实例,并且中等计算实例的计算能力是(大约)L小计算实例的计算能力的L倍。因此,从计算能力的角度来看,K*L小型计算实例至少原则上可以由一个大型计算实例或K个媒体实例替换,反之亦然。根据客户端的首选项、批作业管理服务自己的合并/拆分资源的规则、待处理作业的要求以及可用的适用资源合并/拆分选项618,资源控制器可以决定用其它类型的逻辑上等同的资源实例替换一种类型的资源实例。在一个实施例中,例如,其可以减少使用一种类型的M个实例而不是另一种类型的N个实例的计费成本(和/或消耗的管理资源)。
在给定客户端的计算环境限制的情况下,在一些实施例中,许多不同的优化算法可用于将待处理作业映射到资源。例如,可以使用最大作业优先的二进制打包算法,可以使用先进先出算法,其中资源要求的大小不用于确定资源分配的顺序,可以使用各种基于优先级的算法,等等。为给定队列或给定客户端选择的特定优化算法可以由标准620管理,所述标准可以由客户端以编程方式(例如,在队列创建时)指示或者由各种实施例中的作业管理服务确定。在至少一个实施例中,资源控制器可以监视各种队列的完成率或作业,并基于对监视数据的分析来改变优化算法(或调整算法的参数)。
图6中所示的不同标准的任何组合可由资源控制器630用来确定资源分配变化650(例如分配/启动新资源、释放分配的资源以供其他客户端使用,合并或分割资源等)。在一些实施例中,未在图6中示出的其它因素也可以考虑。
提供商网络环境
图7示出了根据至少一些实施例的可以在其中实施用于管理批作业的服务的实例提供商网络环境。如图所示,除了批作业管理服务710之外,提供商网络702还可以包括动态供应计算服务720、虚拟计算服务730、一个或多个存储或数据库服务740,以及机器学习服务750。在所描绘的实施例中,批作业管理服务710可以利用一个或多个其它服务的资源,例如,执行客户端提交的作业和/或执行批作业管理服务本身的一个或多个控制平面功能。例如,在一个实施例中,关于控制平面功能,来自池744的存储资源可用于容纳先前在图2的上下文中讨论的一些或所有数据对象的持久表示,服务720或730的计算资源可以用于执行用于资源分配决策的优化算法,来自服务750的机器学习算法可以用于通过调度器聚集未决的作业要求,等等。
动态供应计算服务720可以使客户端能够注册可执行程序以便执行而无需为客户端预先分配执行平台(因此有时可以称为“无服务器”计算服务)。可以由客户端在服务720处提交程序,并且可以指示将使得程序的执行的一个或多个触发条件(例如由批作业管理服务的调度器调度作业)。除了预先为客户端预留或供应计算资源之外,每当触发程序的执行时,服务720可以简单地从执行平台的池724为注册的程序726选择计算资源。客户端甚至可能不知道用于执行程序的虚拟机或物理机的类型,并且可以简单地提供执行结果。因此,在至少一些实施例中,动态供应计算服务的客户端可能不必关心识别要用于其程序的平台的数量或计算能力,并且可能仅针对其程序执行时实际执行的计算量收费(例如,以相对细粒度的秒增量或甚至计算的几分之一秒来测量)。由这种服务720提供的计算资源可以是用于实施某些类型的作业的理想配合。在所描绘的实施例中,动态供应服务720还可以使注册的程序可访问多个适配器728,使得注册的程序能够利用服务720外部的资源。结果,注册用于在服务720处执行的程序可能能够访问资源,例如,在提供商网络的其它服务处和/或在提供商网络外部。
与动态供应服务720相反,虚拟化计算服务730可以按稍微更静态的方式(例如,针对指定的时间间隔)将计算资源(例如,虚拟机)预分配给其客户端,并使客户端能够运行程序在分配的虚拟机上。在至少一些实施例中,在这样的虚拟机上运行的程序可以用于批作业。一些这样的程序可以实施web服务接口,通过将命令发射到与程序相关联的基于HTTP(超文本发射协议)的地址来使得能够利用给定程序。批作业管理服务可以利用虚拟化计算服务支持的各种基础设施管理功能,例如自动缩放和负载平衡。在一些实施例中,程序运行以在虚拟化计算服务720处实施批作业和/或动态供应计算服务710可以彼此调用(或在其它服务处调用其它程序)-即,给定作业可以不限于利用提供商网络的给定服务的资源。
在各种实施例中,还可以利用一个或多个存储和/或数据库服务740来执行批作业。例如,用于分析作业的数据集可以存储在这样的服务中,作业执行的中间或最终结果可以存储在这样的服务中,等等。如上所述,用于作业管理的各种数据对象,例如表示队列的对象、提交的作业实例、计算环境等也可以存储在这样的服务中。
一些提供商网络可以包含机器学习服务750,其可以由各种其它服务和/或由外部客户端直接使用。机器学习服务750可以提供各种算法和模型758,例如用于监督或无监督学习的各种模型,其可以由提交给批作业管理服务710的一些作业调用。在一些实施例中,可以由批作业管理服务的作业调度器调用机器学习服务的聚类算法,以生成作业要求的多维统计表示。
对于提交给批作业管理服务710的一些作业,可以使用提供商网络702外部的资源,例如,在位于应用所有者网络770内的执行或存储资源772处或者位于第三方网络760中的执行或存储资源762处(例如,由提交作业的客户以及提供商网络运营商以外的第三方应用程序供应商或服务供应商拥有或管理的网络)。在各种实施例中,提供商网络内部或外部的其它资源或服务可以用于批作业。在一些实施例中,批作业管理服务710可以简化利用各种类型资源所需的集成,例如,通过在执行作业时自动调用适当的通信模块、格式化模块、数据结构转换代码、插件模块等。注意,至少在一个实施例中,可以在不利用提供商网络的情况下实施与这里讨论的资源分配决策相关联的技术。
批作业的资源分配方法
图8是示出根据至少一些实施例的可以由批作业管理服务的调度器和资源控制器执行的操作的各方面的流程图。如元素801所示,在批作业管理服务中,可以建立或建立计算环境、作业队列、作业定义和资源定义,例如,响应于经由服务的客户端提交的程序性请求。在所描绘的实施例中,客户端还可以编程地指示队列和计算环境之间的映射,例如,指示在尝试为给定队列的给定作业找到资源时应当考虑不同计算环境的顺序。可以在各种实施例中使用各种编程接口类型的任何组合,例如一组API、基于web的控制台、命令行工具或图形用户界面。
可以实例化一个或多个调度器实例(例如,相应的进程或执行的线程)以处理与代表客户端创建的一个或多个队列相关联的作业(元素814)。调度器可以在至少一些实施例中是事件驱动的-例如,它们可以从各种源接收事件通知,并且响应于事件采取动作,在没有接收到通知的间隔期间保持很大程度上空闲。事件源可以例如包含批作业管理服务的部件,例如前端请求处置器(其可以在接收到作业提交、终止、完成或取消的请求时生成事件)、资源控制器等,与各种资源提供商相关联的资源监视代理(例如图7中所示的一些其它提供商网络服务),等等。在一些实施例中,定时器事件还可以使调度器采取动作-例如,调度器可以被配置成周期性地准备和发射心跳消息到资源控制器。
可以在给定调度器(元素807)处接收下一事件通知,例如,从指示一个或多个作业的提交、完成、取消或终止的前端请求处理器,从指示一个或多个作业的完成/终止的资源提供商接收,或者从指示消息将被发射到资源控制器的计时器。作为响应,调度器可以检查一个或多个作业队列的状态,并确定是否要生成新的资源报告。在某些情况下,调度器可能不需要发射资源报告-例如,如果在其队列中没有可执行的未完成或未决的作业,或者如果调度器已经可用的资源足以执行一组待处理的可运行作业。
如果调度器确定已经满足用于生成资源报告的触发条件(元素810),例如,是否存在至少一个待处理作业,其已经满足其依赖性(如果有的话)并且调度器可用的资源不足在所描绘的实施例中,可以检查至少一部分未决的可运行作业的资源要求。可以创建这种作业的要求的多维统计表示(MSR)(单元813),例如,使用前面讨论的各种聚类/分组技术。在一个实施例中,代替生成桶或簇,可以为MSR中的各种属性或维度提供例如平均要求,中值要求,要求的标准偏差等的度量。在一些实施例中,如果调度器负责多个队列,则可以为每个队列创建一个这样的MSR;在其它实施例中,单个MSR可用于表示来自多个队列的要求。关于MSR的产生的其它细节在下面的图9的上下文中提供了一些实施例。
调度器可以在所描绘的实施例中向资源控制器发射资源报告,其包含(a)MSR和(b)在调度器处可用的最新资源使用状态信息(元素816)。资源使用状态可以包含在不同实施例中的各种粒度的数据-例如,在一个实施例中,可以包含针对各种主机/服务器的CPU使用,存储器使用等的测量,而在另一实施例中,可以包含运行作业和运行之间的映射。可以包括各种资源。
在资源控制器处,可以使用例如最大作业优先的二进制打包算法之类的所选优化算法来将待处理作业映射到资源,给定例如由客户端指示的计算环境定义施加的限制(元素819)。执行优化算法的结果可以指示是否应所述进行任何资源分配改变-例如,是否应所述分配或激活不违反限制的新资源,是否可以释放或取消激活某些资源等。在不同的实施例中可以分配/激活(或释放/去激活)各种各样的资源,例如在虚拟化计算服务处实例化的客户虚拟机、物理主机或服务器、存储装置、数据库实例、图形处理装置、优化的装置。用于机器学习,程序执行容器等。在下面的图10的上下文中提供了关于可以用于将未决的作业要求映射到一些实施例中的资源的特定技术的额外细节。
如果确定应当进行一个或多个分配改变,则在所描绘的实施例中,资源控制器可以将相应的请求发射到客户资源中介(元素822)。然后,中间装置可以发起所请求的动作,例如,使用适当的客户端凭证,以通过例如提供商网络的各种服务之类的一个或多个资源提供商的编程接口来发布与分配相关的请求。注意,在至少一个实施例中,可以不使用中间装置,并且资源控制器本身可以向适当的提供商发出资源请求。
如果在对应于元素810的操作中,调度器确定不需要新的资源报告,则调度器可以在当前分配的资源上调度待处理的作业(如果存在)(元素825)并等待下一事件通知。当接收到下一事件通知时,可以在所描绘的实施例中重复与元素807相对应的操作。
图9是示出根据至少一些实施例的可以执行以在一个实例场景中生成作业要求的统计表示的操作的各方面的流程图。在图9中,为了简化表示,仅通过实例的方式考虑将两个资源属性或维度(vCPU的数量和存储器的千兆字节数)包括在统计表示中,并且假设两个属性都采用数值。应注意,无论所考虑的资源属性/维度的数量如何,并且无论属性值是否是数值,都可以应用类似于图9中所示的方法(例如,可以在执行统计分析之前将分类属性映射到数值)。如元素901所示,不同维度/属性D的数量,要包含在统计表示中的不同聚合或元组T的数量(其可以取决于例如所选择的资源报告的最大大小),以及总数可以确定要表示的作业J的数量。在考虑的实例场景中,D是2,T是16,J是64。
可以准备关于在所描绘的实例场景中考虑的不同维度的数量的对称统计表示-即,可以针对每个维度针对相同数量的不同桶或簇B.当考虑2个属性生成16个元组时,每个属性的桶B的数量可以被计算为(16^(1/2))=4(元素904)。通常,对于D属性的对称处理,可以在至少一些实施例中为每个属性创建T1/D桶。在一些实施例中可以不施加这种对称性-也就是说,为给定维度或属性创建的桶的数量可以不必与为至少一些其它维度或属性创建的桶的数量相同。
可以选择要对属性进行分区的顺序(单元907),例如,可以首先对64个作业的vCPU要求进行分区,然后对每个vCPU分区中的作业进行存储器要求。可以确定订单中下一维度的J个待处理作业之间的值范围(例如,J个作业所需的vCPU数量的范围),并且可以开始范围的划分。
只要至少一个属性保持未被分块(如在元素910中所确定的),到目前为止创建的每个桶可以使用选择的范围分割策略(例如递归平衡二进制分裂(元素913))被分成B个子桶。在分割的第一次迭代中,可以检查整个J作业集并沿第一维分割,因为在所描绘的实施例中还没有创建这样的桶。在递归二进制平衡分裂中,所考虑的值的范围可以细分为两个近似相等或相等的子范围。例如,如果使用递归平衡二进制分割为四个桶来分割vCPU的八个值(1,4,4,4,4,8,8,12),则在第一分割中,范围1-12可能是分为两个,产生(1,4,4,4,4)和(8,8,12)。然后,两组中较大的一组(如果有一个较大的子组)的范围可以再次细分为2:(1,4,4,4,4)可以分为(1)和(4,4,4,4),从而得到子组(1)、(4,4,4,4)和(8,8,12)。此时,最大子组(4,4,4,4)的范围不能再拆分,需要再拆分一次以达到目标四个桶,因此第二大子组的范围小组(8,8,12)可能会分开。因此,在所述实例中,最后四个桶可以被识别为(1)、(4,4,4,4)、(8,8)和(12)。
对于使用拆分策略识别的每个桶,在所描绘的实施例中,可以可选地将范围设置为在桶的作业中实际指示的最大值和最小值(元素916),而不是通过二元分割获得的数值。因此,例如,如果针对某个属性值通过二进制拆分为给定存储桶确定的范围设置为(10-20),但是放在存储桶中的那些作业的值(例如,12、14、17)的实际要求是桶的范围可以可选地从(10-20)变为(12-17)。
可以针对每个剩余属性重复元素913和916的分割技术,直到已经分割了所有属性值范围并且已经识别出目标数量的桶T的成员作业。在填充了所有T桶之后(如在元素910中确定的),可以为每个桶中表示的每个属性确定单个聚合所需值(元素919)。根据属性的性质以及如果小于实际量,预期作业的行为方式,可以将汇总所需值设置为桶中表示的不同值的最大值,平均值,中值或其它统计度量值。作业中指出的是可用的。例如,考虑一个简单的例子,其中给定存储桶中的作业所需的vCPU范围是(2,2,4,4):也就是说,存储桶中有四个作业,分别需要2、2、4和4个vCPU。由于每个需要4个vCPU的作业(如果为它们提供的vCPU少于4个)可能会(或许)不能正常作业,而需要2个vCPU的作业即使提供了4个vCPU也可能运行良好,因此桶的总要求值可以将所述范围设置为最大vCPU计数(即,在所述实例中为4)。对于其它属性,例如存储器或期限,在一些实施中,均值/中值可以用作聚合所需值而不是范围的最大值。
在确定了聚合所需值之后,可以生成节省空间的统计表示的元组(元素922)。对于每个元组,可以为每个维度指示聚合所需值,并且可以指示元组的作业填充。注意,在一些实施例中可以使用上述方法的变体-例如,在一个实施例中,可以预先确定桶的边界值而不是基于实际作业定义来计算。
图10是示出根据至少一些实施例的可以响应于接收到资源报告而在资源控制器处执行的操作的各方面的流程图。在所描绘的实施例中,资源控制器可以尝试首先确定恰好未使用或空闲的已分配资源是否足以容纳至少一些作业,然后,如果某些作业保持未满足,则将作业指派给逻辑“就绪”在实际发布资源分配变更请求之前,如果可能,为相应计算环境排队。如元素1001所示,可以在资源控制器处获得包含一个或多个队列的作业资源要求的统计表示的资源报告。每个队列可以包括一个或多个作业,并且与一个或多个计算环境相关联。对应于每个计算环境,在所描绘的实施例中可能已经分配了零个或多个资源;在分配的资源中,有些可能正在使用(对于一个或多个当前正在运行的作业),而其它资源当前可能是空闲的。分别用作队列,作业和计算环境的索引变量的变量i,j和k可以初始化为零。
可以例如以从最大空闲资源到最小空闲资源的顺序对每个计算环境的空闲资源进行排序(单元1004)。如果存在至少一个尚未检查/分析其要求的队列(如在元素1007中检测到的),则可以递增索引变量I并且可以检查下一队列Qi(元素1013)。使用要求的多维表示,可以基于他们的要求对Qi中的作业进行排序。在各种实施例中可以使用几种方法中的任何一种来执行多维排序-例如,可以按选择的顺序对多个属性的值进行排序,或者可以使用聚合函数将多个值转换为单个值,所述值可以是然后用于排序,等等。
如果已经检查了队列Qi的所有可运行作业(如在元素1019中检测到的),则可以分析下一队列(如果有任何未经检查)。否则,可以递增作业索引变量j,并且可以按排序的作业顺序分析下一作业Jj(元素1022)。
如果已经检查了其资源可以应用于Jj的所有计算环境(如在元素1025中检测到的),则可以重复与元素1019相对应的操作。如果关于Jj仍然未经检查至少一个计算环境,则可以递增用于计算环境的索引变量k并且可以检查下一计算环境(CEk)(元素1028)。
在所描绘的实施例中,可以代表作业Jj在两个阶段中检查CEk的资源。首先,资源控制器可以检查CEk的空闲(当前分配但当前未使用的)资源是否足以用于Jj(元素1031)。如果是,则可以将这些资源逻辑地指派给Jj,并且可以相应地减少CEk的空闲资源的计数(单元1034),并且可以检查Qi的下一作业(如果剩余任何作业)。
如果不能使用CEk的当前空闲资源执行Jj(也在元素1031中确定),则资源控制器可以确定是否可以在CEk中为Jj分配足够的额外资源,而不违反由创建CEk所代表的客户端为CEk设置的资源限制(元素1037)。如果是,则可以将Jj添加到由资源控制器为CEk模拟的逻辑就绪队列(元素1040)。如果在不违反限制的情况下分配额外资源以允许使用CEk执行Jj是不可能的(也在元素1037中检测到),则可以检查为Qi配置的下一计算环境(如果有的话),以及对应于元素1025的操作。可以重复开始直到所有计算环境都耗尽。在某些情况下,根据客户端设置的限制和Jj的要求,可能无法在不违反限制的情况下为Jj找到足够的资源,并且Jj的调度可能必须等待(例如,直到一个或多个其它作业完成或终止)。
在分析了Qi中的所有作业之后,可以使用与元素1007相对应的操作来检查下一队列。在已经针对关联的计算环境分析了资源报告中表示的所有队列之后,可以认为分析的估计阶段(其中作业被指派空闲资源或者被放置在逻辑就绪队列中)可以被认为是完成的(元素1010)。此时,可以检查那些非空的就绪队列,并且可以确定要从资源提供商请求的相应资源分配改变(单元1043)。在一些情况下,资源控制器可能能够识别资源合并的机会(例如,用单个较大实例替换资源的两个较小实例)或拆分(例如,用多个较小实例替换一个较大实例),这取决于资源合并/拆分选项可用于计算环境。可以将对分配改变的请求提交给与对应于各种计算环境的资源提供商相关联的中介。另外,在一些实施例中,基于各种因素,例如在图6的上下文中讨论的计费元数据,资源控制器能够识别可以被解除分配的资源(例如,在超过某个阈值间隔时仍未使用的资源),并且经由中间装置将相应的请求发射到资源提供商(元素1046)。
应注意的是,在各种实施例中,除了图8、图9和图10的流程图中所示的操作之外的至少一些操作可以用于实施上文所描述的批作业资源分配技术。所示的一些操作可能在一些实施例中不实施,或者可以按不同的顺序实施,或者并行实施而不是顺序实施。
可以根据以下条款描述本公开的实施例:
1.一种系统,其包括:
在批作业服务的一个或多个计算装置上执行的作业调度器;以及
在一个或多个计算装置上执行的批作业服务的资源控制器;
其中作业调度器包含在由处理器执行时使得一个或多个计算装置:
响应于事件通知,确定分配给客户端的第一组资源不足以执行一个或多个作业;
准备与一个或多个作业的至少一个子集相对应的资源要求的多维统计表示,其中统计表示的第一维度对应于一个或多个作业的处理要求的分布,并且其中第二维度统计表示的对应于一个或多个作业的存储器要求;以及
向资源控制器发射(a)多维统计表示和(b)与第一组资源有关的利用信息;以及
其中资源控制器包含在由处理器执行时使得一个或多个计算装置执行以下操作的指令:
至少部分地基于(a)客户指示的限制、(b)多维统计表示和(c)利用信息的表示来确定第一额外资源将被分配用于至少一个一个或多个作业的作业;以及
使得分配一个或多个额外资源,包含第一额外资源。
2.根据条款1所述的系统,其中所述事件通知指示的一个或多个:(a)一种接收一个新的作业的调度请求的,(b)中的作业的完成时,(c)中的一个终止作业,(d)取消作业,或(e)完成时间间隔。
3.根据条款1所述的系统,其中作业调度器进一步包含在执行时使一个或多个计算装置执行以下操作的指令:
至少部分地基于客户端通过编程接口提供的作业描述符来确定一个或多个作业的第一作业中的相应作业的处理要求。
4.根据条款1所述的系统,其中所述一个或多个作业中的第一作业与代表客户端的建立的一个或多个作业队列中的第一作业队列相关联,其中,所述资源控制器进一步包含在指令执行使得一个或多个计算装置:
接收客户端的一个或多个计算环境的表示,以及第一作业队列与一个或多个计算环境的第一计算环境之间的映射的指示,其中限制表示要在其中激活的最大资源数量。第一计算环境。
5.根据权利要求1所述的系统,,所述一个或多个资源包括以下之一:(a)在虚拟化计算服务处实例化的来宾虚拟机、(b)主机、(c)存储装置、(d)数据库的实例,或(e)图形处理装置。
6.一种方法,其包括:
在一个或多个计算装置处执行:
通过作业调度器准备对应于一个或多个作业的资源要求的多维统计表示,其中所述统计表示的相应维度对应于相应资源属性;
在资源控制器处,至少部分地基于客户端指示的限制并且至少部分地基于所述多维统计表示确定要为所述一个或多个作业激活一个或多个资源;以及
由所述资源控制器引起所述一个或多个资源的激活。
7.根据条款6所述的方法,其进一步包括在所述一个或多个计算装置处执行:
在所述作业调度器处接收事件通知,其中所述准备所述多维统计表示是响应于所述事件通知。
8.根据条款7所述的方法,所述事件通知指示以下一个或多个:(a)接收到新的作业调度请求、(b)先前调度的作业的完成、(c)作业终止、(d)作业取消,或(e)时间间隔完成。
9.根据条款6,其中所述准备所述多维统计表示包括所述的方法:
将资源的第一属性的一系列要求细分为第一多个桶;
将所述一个或多个作业中的个别作业的资源要求映射到所述第一多个桶中的个别桶;以及
计算与所述第一多个桶中的个别桶相对应的群体计数。
10.根据条款9所述的方法,其中所述准备所述多维统计表示包括:
设置对应于所述多个桶中的特定桶的所述第一属性的聚合所需值,其中所述聚合所需值被设置为以下之一:(a)映射到所述特定桶的所述资源要求的平均值,或(b)映射到所述特定存储桶的所述资源要求的最大值。
11.根据条款9所述的方法,其中所述准备所述多维统计表示包括:
将第二资源的第二属性的一系列要求细分为第二多个桶;
将映射到所述第一多个桶中的特定桶的特定作业组的资源要求映射到所述第二多个桶;以及
计算与所述第二多个桶中的个别桶相对应的群体计数。
12.根据条款6所述的方法,其进一步包括在所述一个或多个计算装置处执行:
由所述作业调度器至少部分地基于所述客户端经由编程接口提供的作业描述符来确定所述一个或多个作业中的个别作业的资源要求。
13.根据权利要求6所述的方法,其中所述准备所述多维表示包括执行聚类算法。
14.根据条款6所述的方法,其中所述一个或多个作业中的特定作业与代表所述客户端建立的一个或多个作业队列中的第一作业队列相关联,所述方法还包括由所述一个或多个计算装置执行:
通过所述资源控制器接收所述客户端请求的一个或多个计算环境的表示以及所述第一作业队列与所述一个或多个计算环境中的第一计算环境之间的映射的指示,其中所述限制表示待在所述第一计算环境中激活的资源的最大数量。
15.根据条款6所述的方法,所述一个或多个资源包括以下之一:(a)在虚拟化计算服务处实例化的来宾虚拟机、(b)主机、(c)存储装置、(d)数据库的实例,或(e)图形处理装置。
16.一种非暂时性计算机可访问存储媒体,其存储程序指令当在一个或多个处理器执行时实施批作业的管理服务,其中,所述调度器被配置成调度器:
确定代表客户端激活的一组资源不足以执行所述客户端的一个或多个作业;
准备与所述一个或多个作业的至少一子集相对应的资源要求的多维统计表示,其中所述统计表示的相应维度对应于相应资源属性;以及
将所述批作业管理服务的资源控制器发射到包括所述多维统计表示的资源报告。
17.根据权利要求16所述的非暂时性计算机可访问存储媒体,其中所述调度器被配置成确定代表所述客户端激活的所述组资源不足以响应于事件通知来执行所述一个或多个作业。
18.根据条款17所述的非暂时性计算机可访问存储媒体,其中所述事件通知指示以下一个或多个:(a)接收到新的作业调度请求、(b)先前调度的作业的完成、(c)作业终止、(d)作业取消,或(e)时间间隔完成。
19.一种非暂时性计算机可访问存储媒体,其存储程序指令当在一个或多个处理器执行时实施批作业的管理服务,其中,所述资源控制器被配置成的一个资源控制器:
确定客户端经由编程接口指示的计算环境的一个或多个资源限制;
接收与客户端的一个或多个作业的至少一个子集相对应的资源需求的多维统计表示,其中统计表示的各个维度对应于相应的资源属性;以及
至少部分地基于所述一个或多个资源限制并且至少部分地基于所述多维统计表示,确定要为所述一个或多个作业激活一个或多个资源;以及
使得激活所述一个或多个资源。
20.根据权利要求19所述的非暂时性计算机可访问存储媒体,所述一个或多个资源包括以下之一:(a)在虚拟化计算服务处实例化的来宾虚拟机、(b)主机、(c)存储装置、(d)数据库的实例,或(e)图形处理装置。
用例
上述将资源分配改变的职责与要使用资源的批作业的调度分开的技术在各种实施例中可能是有用的。各种问题域中的许多数据分析任务(包含例如财务、安全、医学等)可能非常适合于批处理。批作业管理服务,允许客户端定义对其作业使用的资源的限制,然后允许客户端根据需要提交作业,将管理这些资源的任务留给服务,可以简化应用程序设计人员的作业量在这样的问题领域。通过生成各种作业队列的作业要求的小统计表示,不管给定队列中待处理的作业的数量,上面讨论的技术可以实现关于批作业处理的各种客户要求的有效处理。
说明性计算机系统
在至少一些实施例中,实施本文描述的一种或多种技术的一部分或全部的服务器,包含实现批作业处理服务和相关联服务(包含调度器、资源)的各种数据平面和控制平面组件的技术等,可以包含通用计算机系统,其包含或被配置为访问一个或多个计算机可访问媒体。图11示出了这种通用计算装置9000。在所示实施例中,计算装置9000包含经由输入/输出(I/O)接口9030联接到系统存储器9020(其可以包括非易失性和易失性存储器模块)的一个或多个处理器9010。计算装置9000进一步包含联接到I/O接口9030的网络接口9040。
在相应实施例中,计算装置9000可以是包含一个处理器9010的单处理器系统,或者包含若干处理器9010(例如,两个、四个、八个或另一个合适数量)的多处理器系统。处理器9010可以是能够执行指令的任何合适的处理器。例如,在相应实施例中,处理器9010可以是实施各种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,如x86、PowerPC、SPARC或MIPS ISA、或任何其它合适的ISA。在多处理器系统中,处理器9010中的每一个可以共同但不是必须地实施相同的ISA。在一些实施方式中,可以使用图形处理单元(GPU)来代替常规的处理器或作为常规处理器的补充。
系统存储器9020可以被配置成存储可由一个或多个处理器9010访问的指令和数据。在至少一些实施例中,系统存储器9020可以包括易失性和非易失性部分;在其它实施例中,可以仅使用易失性存储器。在相应实施例中,系统存储器9020的易失性部分可以使用任何合适的存储器技术来实施,如静态随机存取存储器(SRAM)、同步动态RAM或任何其它类型的存储器。对于系统存储器的非易失性部分(例如,其可以包括一个或多个NVDIMM),在一些实施例中,可以使用基于闪存的存储器装置,包含NAND闪存装置。在至少一些实施例中,系统存储器的非易失性部分可以包含电源,如超级电容器或其它电力存储装置(例如,电池)。在相应实施例中,基于忆阻器的电阻随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或任何各种类型的相变存储器(PCM)可以至少用于系统存储器的非易失性部分。在所示实施例中,实施如上述那些方法、技术和数据等一个或多个所期望功能的程序指令和数据被示为存储在系统存储器9020中作为代码9025和数据9026。
在一个实施例中,I/O接口9030可以被配置成协调处理器9010、系统存储器9020与装置中的任何外围装置之间的I/O业务量,包含网络接口9040或如各种类型的持久和/或易失性存储装置的其它外围接口。在一些实施例中,I/O接口9030可以执行任何必要的协议、定时或其它数据变换,以将来自一个部件(例如,系统存储器9020)的数据信号转换成适合于由另一个部件(例如,处理器9010)使用的格式。在一些实施例中,I/O接口9030可以包含对通过各种类型的外围总线连接的装置的支持,例如,如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施例中,I/O接口9030的功能可以分成两个或更多个单独的部件,例如,如北桥和南桥。而且,在一些实施例中,I/O接口9030的一些或全部功能,如到系统存储器9020的接口可以直接并入到处理器9010中。
网络接口9040可以被配置成允许数据在计算装置9000和附接到网络或网络9050的其它装置9060之间交换,例如,如图1到图10所示的其它计算机系统或装置。在相应实施例中,网络接口9040可以支持经由任何合适的有线或无线通用数据网络的通信,例如,如以太网网络的类型。另外,网络接口9040可以支持经由如模拟语音网络或数字光纤通信网络等电信/电话网络,经由如光纤通道SAN的存储区域网络或经由任何其它合适类型的网络和/或协议的通信。
在一些实施例中,系统存储器9020可以是计算机可访问媒体的一个实施例,所述计算机可访问媒体被配置成存储如上文针对图1到图10所描述的程序指令和数据,用于实施对应方法和设备的实施例。然而,在其它实施例中,可以在不同类型的计算机可访问媒体上接收、发射或存储程序指令和/或数据。一般而言,计算机可访问媒体可以包含非暂时性存储媒体或如磁性或光学媒体等存储媒体,例如经由I/O接口9030联接到计算装置9000的磁盘或DVD/CD。非暂时性计算机可访问存储媒体还可以包含任何易失性或非易失性媒体,如RAM(例如SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等,其可以包含在计算装置9000的一些实施例中作为系统存储器9020或另一种类型的存储器。进一步地,计算机可访问媒体可以包含发射媒体或如电信号、电磁信号或数字信号等信号,经由如网络和/或无线链路等通信媒体传送,如可以经由网络接口9040实施。如图11中所示的多个计算装置的部分或全部可以用于在相应实施例中实施所描述的功能;例如,在各种不同装置和服务器上运行的软件部件可以协作以提供功能。在一些实施例中,除了使用通用计算机系统实施之外或代替使用通用计算机系统实施,可以使用存储装置、网络装置或专用计算机系统来实施所描述的功能的部分。本文所使用的术语“计算装置”是指至少所有这些类型的装置,并且不限于这些类型的装置。
结论
相应实施例可以进一步包含在计算机可访问媒体上接收、发射或存储根据前述描述实施的指令和/或数据。一般而言,计算机可访问媒体可以包含如磁性或光学媒体等存储媒体(storage media)或存储媒体(memory media),例如磁盘或DVD/CD-ROM、易失性或非易失性媒体,如RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等,以及通过如网络和/或无线链路等通信媒体传送的发射媒体或如电信号、电磁信号或数字信号的信号。
如附图中所示和本文描述的各种方法代表方法的实例性实施例。所述方法可以用软件、硬件或其组合来实施。可以改变方法的顺序,并且可以添加、重新排序、组合、省略、修改等各种元素。
可以进行各种修改和改变,这对于受益于本公开的本领域技术人员来说是显而易见的。旨在包含所有这些修改和改变,并且因此,以上描述被认为是说明性的而不是限制性的。
Claims (15)
1.一种方法,其包括:
在一个或多个计算装置处执行:
通过作业调度器确定代表客户端激活的一组资源不足以执行所述客户端的多个作业;
通过所述作业调度器,响应于确定代表所述客户端激活的该组资源不足以执行所述多个作业,准备对应于所述多个作业的至少一子集的资源要求的多维统计表示,其中所述统计表示的第一维度对应于所述多个作业的处理要求的统计分布,并且其中所述统计表示的第二维度对应于所述多个作业的存储器要求的统计分布;
在资源控制器处,至少部分地基于所述客户端指示的限制并且至少部分地基于所述多维统计表示确定要为所述多个作业激活一个或多个资源;以及
由所述资源控制器引起所述一个或多个资源的激活。
2.根据权利要求1所述的方法,其进一步包括在所述一个或多个计算装置处执行:
在所述作业调度器处接收事件通知,其中所述准备所述多维统计表示是响应于所述事件通知。
3.根据权利要求2所述的方法,其中所述事件通知指示以下一个或多个:(a)接收到新的作业调度请求、(b)先前调度的作业的完成、(c)作业终止、(d)作业取消,或(e)时间间隔完成。
4.根据权利要求1的方法,其中所述准备所述多维统计表示包括:
将资源的第一属性的一系列要求细分为第一多个桶;
将所述多个作业中的个别作业的资源要求映射到所述第一多个桶中的个别桶;以及
计算与所述第一多个桶中的个别桶相对应的群体计数。
5.根据权利要求4的方法,其中所述准备所述多维统计表示包括:
设置对应于所述多个桶中的特定桶的所述第一属性的聚合所需值,其中
所述聚合所需值被设置为以下之一:(a)映射到所述特定桶的所述资源要求的平均值,或(b)映射到所述特定桶的所述资源要求的最大值。
6.根据权利要求4的方法,其中所述准备所述多维统计表示包括:
将第二资源的第二属性的一系列要求细分为第二多个桶;
将映射到所述第一多个桶中的特定桶的特定作业组的资源要求映射到所述第二多个桶;以及
计算与所述第二多个桶中的个别桶相对应的群体计数。
7.根据权利要求4所述的方法,其进一步包括在所述一个或多个计算装置处执行:
由所述作业调度器至少部分地基于所述客户端经由编程接口提供的作业描述符来确定所述多个作业中的个别作业的资源要求。
8.根据权利要求4所述的方法,其中所述准备所述多维表示包括执行聚类算法。
9.根据权利要求4所述的方法,其中所述多个作业中的特定作业与代表所述客户端建立的一个或多个作业队列中的第一作业队列相关联,所述方法还包括由所述一个或多个计算装置执行:
通过所述资源控制器接收所述客户端请求的一个或多个计算环境的表示以及所述第一作业队列与所述一个或多个计算环境中的第一计算环境之间的映射的指示,其中所述限制表示待在所述第一计算环境中激活的资源的最大数量。
10.根据权利要求4所述的方法,其中所述一个或多个资源包括以下之一:(a)在虚拟化计算服务处实例化的来宾虚拟机、(b)主机、(c)存储装置、(d)数据库的实例,或(e)图形处理装置。
11.一种系统,其包括批作业管理服务的资源控制器和联接到存储程序指令的非暂时性计算机可访问存储介质的处理器,所述程序指令在执行时实施所述批作业管理服务的调度器,其中所述调度器被配置成:
确定代表客户端激活的一组资源不足以执行所述客户端的多个作业;
响应于确定代表所述客户端激活的该组资源不足以执行所述多个作业,准备与所述多个作业的至少一子集相对应的资源要求的多维统计表示,其中
所述统计表示的第一维度对应于所述多个作业的处理要求的统计分布,并且
其中所述统计表示的第二维度对应于所述多个作业的存储器要求的统计分布;以及
将包括所述多维统计表示的资源报告发送到所述批作业管理服务的资源控制器,
其中,所述批作业管理服务的所述资源控制器被配置成:
至少部分地基于客户端指示的计算环境的限制并且至少部分地基于所述多维统计表示,确定要为所述多个作业激活一个或多个资源;以及
引起所述一个或多个资源的激活。
12.根据权利要求11所述的系统,其中所述调度器被配置成确定代表所述客户端激活的所述组资源不足以响应于事件通知来执行所述多个作业。
13.根据权利要求12所述的系统,其中所述事件通知指示以下一个或多个:(a)接收到新的作业调度请求、(b)先前调度的作业的完成、(c)作业终止、(d)作业取消,或(e)时间间隔完成。
14.根据权利要求11所述的系统,其中所述批作业管理服务的所述资源控制器被配置成:
确定所述客户端经由编程接口指示的计算环境的所述限制。
15.根据权利要求14所述的系统,所述一个或多个资源包括以下之一:(a)在虚拟化计算服务处实例化的来宾虚拟机、(b)主机、(c)存储装置、(d)数据库的实例,或(e)图形处理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/360,948 | 2016-11-23 | ||
US15/360,948 US10592280B2 (en) | 2016-11-23 | 2016-11-23 | Resource allocation and scheduling for batch jobs |
PCT/US2017/062353 WO2018098043A1 (en) | 2016-11-23 | 2017-11-17 | Resource management for batch jobs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109983441A CN109983441A (zh) | 2019-07-05 |
CN109983441B true CN109983441B (zh) | 2023-08-29 |
Family
ID=60629822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072388.8A Active CN109983441B (zh) | 2016-11-23 | 2017-11-17 | 用于批作业的资源管理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10592280B2 (zh) |
EP (1) | EP3545416B1 (zh) |
CN (1) | CN109983441B (zh) |
WO (1) | WO2018098043A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11489731B2 (en) | 2016-09-30 | 2022-11-01 | Salesforce.Com, Inc. | Techniques and architectures for efficient allocation of under-utilized resources |
US10963311B2 (en) * | 2016-09-30 | 2021-03-30 | Salesforce.Com, Inc. | Techniques and architectures for protection of efficiently allocated under-utilized resources |
US10592280B2 (en) | 2016-11-23 | 2020-03-17 | Amazon Technologies, Inc. | Resource allocation and scheduling for batch jobs |
US11218419B1 (en) * | 2016-12-06 | 2022-01-04 | Amazon Technologies, Inc. | Execution request prioritization by context |
US10462034B2 (en) * | 2016-12-29 | 2019-10-29 | Juniper Networks, Inc. | Dynamic distribution of network entities among monitoring agents |
US10666714B2 (en) * | 2017-04-04 | 2020-05-26 | International Business Machines Corporation | Data integration application execution management |
US11334391B2 (en) * | 2017-04-17 | 2022-05-17 | Red Hat, Inc. | Self-programmable and self-tunable resource scheduler for jobs in cloud computing |
CN107239334B (zh) * | 2017-05-31 | 2019-03-12 | 清华大学无锡应用技术研究院 | 处理不规则应用的方法及装置 |
US10606639B2 (en) * | 2017-08-30 | 2020-03-31 | International Business Machines Corporation | Dynamic workload bucket reassignment |
US10474500B2 (en) * | 2017-11-20 | 2019-11-12 | Microsoft Technology Licensing, Llc | Running complex workflows in distributed systems while protecting consistency and ensuring progress despite failures |
US11461631B2 (en) * | 2018-03-22 | 2022-10-04 | Amazon Technologies, Inc. | Scheduling neural network computations based on memory capacity |
US11475306B2 (en) | 2018-03-22 | 2022-10-18 | Amazon Technologies, Inc. | Processing for multiple input data sets |
US10678677B1 (en) * | 2019-01-10 | 2020-06-09 | Red Hat Israel, Ltd. | Continuous debugging |
US10887246B2 (en) * | 2019-01-30 | 2021-01-05 | International Business Machines Corporation | Adaptive data packing |
US11055256B2 (en) * | 2019-04-02 | 2021-07-06 | Intel Corporation | Edge component computing system having integrated FaaS call handling capability |
US11165679B2 (en) * | 2019-05-09 | 2021-11-02 | International Business Machines Corporation | Establishing consumed resource to consumer relationships in computer servers using micro-trend technology |
CN111158901B (zh) * | 2019-12-09 | 2023-09-08 | 爱芯元智半导体(宁波)有限公司 | 计算图的优化方法、装置、计算机设备和存储介质 |
CN112181653A (zh) * | 2020-09-28 | 2021-01-05 | 中国建设银行股份有限公司 | 一种作业调度和执行方法、装置、设备、系统和存储介质 |
US11948002B2 (en) * | 2021-07-08 | 2024-04-02 | Oracle International Corporation | Management plane orchestration across service cells |
US11632423B1 (en) * | 2022-04-20 | 2023-04-18 | Dell Products L.P. | Scaling of services in a distributed system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012128770A (ja) * | 2010-12-17 | 2012-07-05 | Hitachi Ltd | バッチジョブ管理サーバ、バッチジョブ処理システム及びバッチジョブ実行方法 |
CN105579965A (zh) * | 2013-09-23 | 2016-05-11 | 亚马逊科技公司 | 经由提供商定义接口的客户端驻地资源控制 |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4800521A (en) * | 1982-09-21 | 1989-01-24 | Xerox Corporation | Task control manager |
US4633387A (en) * | 1983-02-25 | 1986-12-30 | International Business Machines Corporation | Load balancing in a multiunit system |
US4807111A (en) * | 1987-06-19 | 1989-02-21 | International Business Machines Corporation | Dynamic queueing method |
US5303369A (en) * | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
US5437032A (en) * | 1993-11-04 | 1995-07-25 | International Business Machines Corporation | Task scheduler for a miltiprocessor system |
AU735024B2 (en) * | 1997-07-25 | 2001-06-28 | British Telecommunications Public Limited Company | Scheduler for a software system |
US6345287B1 (en) * | 1997-11-26 | 2002-02-05 | International Business Machines Corporation | Gang scheduling for resource allocation in a cluster computing environment |
US6341303B1 (en) * | 1998-08-28 | 2002-01-22 | Oracle Corporation | System and method for scheduling a resource according to a preconfigured plan |
US6715145B1 (en) * | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
US6757897B1 (en) * | 2000-02-29 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and methods for scheduling and performing tasks |
US7137119B1 (en) * | 2000-05-02 | 2006-11-14 | Microsoft Corporation | Resource manager architecture with resource allocation utilizing priority-based preemption |
JP3959516B2 (ja) | 2001-08-06 | 2007-08-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワークシステム、cpu資源プロバイダ、クライアント装置、処理サービスの提供方法、およびプログラム |
US7093004B2 (en) | 2002-02-04 | 2006-08-15 | Datasynapse, Inc. | Using execution statistics to select tasks for redundant assignment in a distributed computing platform |
US7376693B2 (en) * | 2002-02-08 | 2008-05-20 | Jp Morgan Chase & Company | System architecture for distributed computing and method of using the system |
US7640547B2 (en) * | 2002-02-08 | 2009-12-29 | Jpmorgan Chase & Co. | System and method for allocating computing resources of a distributed computing system |
US7127716B2 (en) * | 2002-02-13 | 2006-10-24 | Hewlett-Packard Development Company, L.P. | Method of load balancing a distributed workflow management system |
US7167915B2 (en) * | 2002-10-18 | 2007-01-23 | International Business Machines Corporation | Monitoring storage resources used by computer applications distributed across a network |
US7251815B2 (en) * | 2003-04-29 | 2007-07-31 | International Business Machines Corporation | Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle |
US7996839B2 (en) * | 2003-07-16 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Heterogeneous processor core systems for improved throughput |
US7117184B1 (en) * | 2003-09-25 | 2006-10-03 | Unisys Corporation | System and method for maintaining target response times in business methods |
JP4603256B2 (ja) | 2003-12-01 | 2010-12-22 | 日本電気株式会社 | ユーザ認証システム |
US8612980B2 (en) * | 2003-12-04 | 2013-12-17 | The Mathworks, Inc. | Distribution of job in a portable format in distributed computing environments |
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
WO2005089245A2 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method of co-allocating a reservation spanning different compute resources types |
US8028285B2 (en) * | 2004-07-22 | 2011-09-27 | Computer Associates Think, Inc. | Heterogeneous job dashboard |
US8230426B2 (en) * | 2004-10-06 | 2012-07-24 | Digipede Technologies, Llc | Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics |
US7356770B1 (en) | 2004-11-08 | 2008-04-08 | Cluster Resources, Inc. | System and method of graphically managing and monitoring a compute environment |
US7433931B2 (en) * | 2004-11-17 | 2008-10-07 | Raytheon Company | Scheduling in a high-performance computing (HPC) system |
US7774471B2 (en) | 2006-06-15 | 2010-08-10 | Adaptive Computing Enterprises, Inc. | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs |
US7979859B2 (en) | 2005-05-03 | 2011-07-12 | International Business Machines Corporation | Managing automated resource provisioning with a workload scheduler |
US8584122B2 (en) * | 2006-03-31 | 2013-11-12 | Ebay Inc. | Batch scheduling |
US20090158276A1 (en) | 2007-12-12 | 2009-06-18 | Eric Lawrence Barsness | Dynamic distribution of nodes on a multi-node computer system |
US8417715B1 (en) * | 2007-12-19 | 2013-04-09 | Tilmann Bruckhaus | Platform independent plug-in methods and systems for data mining and analytics |
US8566830B2 (en) * | 2008-05-16 | 2013-10-22 | Microsoft Corporation | Local collections of tasks in a scheduler |
US8347302B1 (en) * | 2008-10-09 | 2013-01-01 | Amazon Technologies, Inc. | System-aware resource scheduling |
US8783336B2 (en) | 2008-12-04 | 2014-07-22 | Io Data Centers, Llc | Apparatus and method of environmental condition management for electronic equipment |
JP5799812B2 (ja) | 2009-12-07 | 2015-10-28 | 日本電気株式会社 | データ配置・計算システム、データ配置・計算方法、マスタ装置、及びデータ配置方法 |
US8886806B2 (en) | 2010-04-07 | 2014-11-11 | Accenture Global Services Limited | Generic control layer in a cloud environment |
US9116731B2 (en) | 2010-04-07 | 2015-08-25 | Accenture Global Services Limited | Cloud reference model framework |
US8417555B2 (en) * | 2010-05-18 | 2013-04-09 | International Business Machines Corporation | Collaboration based capacity planning in a modular business setting |
CA2811630C (en) | 2010-08-24 | 2020-06-16 | Solano Labs, Inc. | Method and apparatus for clearing cloud compute demand |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US8627322B2 (en) * | 2010-10-29 | 2014-01-07 | Google Inc. | System and method of active risk management to reduce job de-scheduling probability in computer clusters |
US8924964B2 (en) * | 2010-11-01 | 2014-12-30 | Microsoft Corporation | Dynamic allocation and assignment of virtual environment |
US8789065B2 (en) * | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US8555281B1 (en) * | 2011-02-16 | 2013-10-08 | Google Inc. | Scheduling of tasks based upon historical execution times |
KR20140023296A (ko) | 2011-03-02 | 2014-02-26 | 이너테크 아이피 엘엘씨 | 공간절약 고밀도 모듈식 데이터 포드 시스템들 및 에너지 효율 냉각 시스템들 |
BR112013033778A2 (pt) | 2011-06-28 | 2017-02-07 | Shell Int Research | tubo reator, reação de fischer tropsch, e, processo para realizar uma parada de alta velocidade em um processo de fischer-tropsch |
US8997107B2 (en) * | 2011-06-28 | 2015-03-31 | Microsoft Technology Licensing, Llc | Elastic scaling for cloud-hosted batch applications |
EP2791870A4 (en) | 2011-12-17 | 2015-09-09 | Hewlett Packard Development Co | DETERMINATION OF THE POSITION OF A DEVICE IN A SHELF |
US8732291B2 (en) * | 2012-01-13 | 2014-05-20 | Accenture Global Services Limited | Performance interference model for managing consolidated workloads in QOS-aware clouds |
US9110728B2 (en) * | 2012-01-31 | 2015-08-18 | Vmware, Inc. | Elastic allocation of computing resources to software applications |
JP2015525324A (ja) | 2012-05-30 | 2015-09-03 | ビクトリア リンク リミテッド | 支持システム |
US9262220B2 (en) | 2013-11-15 | 2016-02-16 | International Business Machines Corporation | Scheduling workloads and making provision decisions of computer resources in a computing environment |
JP6241300B2 (ja) | 2014-02-04 | 2017-12-06 | 富士通株式会社 | ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム |
US9413707B2 (en) * | 2014-04-11 | 2016-08-09 | ACR Development, Inc. | Automated user task management |
US9886670B2 (en) * | 2014-06-30 | 2018-02-06 | Amazon Technologies, Inc. | Feature processing recipes for machine learning |
US9442760B2 (en) * | 2014-10-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Job scheduling using expected server performance information |
US10592280B2 (en) | 2016-11-23 | 2020-03-17 | Amazon Technologies, Inc. | Resource allocation and scheduling for batch jobs |
US11055135B2 (en) * | 2017-06-02 | 2021-07-06 | Seven Bridges Genomics, Inc. | Systems and methods for scheduling jobs from computational workflows |
US10761796B1 (en) * | 2019-03-26 | 2020-09-01 | Konica Minolta Laboratory U.S.A., Inc. | Method and system for efficient job scheduling by collecting data from multiple sources |
-
2016
- 2016-11-23 US US15/360,948 patent/US10592280B2/en active Active
-
2017
- 2017-11-17 WO PCT/US2017/062353 patent/WO2018098043A1/en unknown
- 2017-11-17 EP EP17811782.6A patent/EP3545416B1/en active Active
- 2017-11-17 CN CN201780072388.8A patent/CN109983441B/zh active Active
-
2020
- 2020-03-13 US US16/818,297 patent/US11314551B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012128770A (ja) * | 2010-12-17 | 2012-07-05 | Hitachi Ltd | バッチジョブ管理サーバ、バッチジョブ処理システム及びバッチジョブ実行方法 |
CN105579965A (zh) * | 2013-09-23 | 2016-05-11 | 亚马逊科技公司 | 经由提供商定义接口的客户端驻地资源控制 |
Non-Patent Citations (1)
Title |
---|
"HySARC2:Hybrid Scheduling Algorithm Based on Resource Clustering in Cloud Environments";VASILE MIHAELA-ANDREEA 等;《ADVANCES IN BIOMETRICS INTERNATIONAL CONFERENCE》;20131218;参见第416-424页 * |
Also Published As
Publication number | Publication date |
---|---|
US11314551B2 (en) | 2022-04-26 |
US10592280B2 (en) | 2020-03-17 |
CN109983441A (zh) | 2019-07-05 |
EP3545416B1 (en) | 2023-08-02 |
WO2018098043A1 (en) | 2018-05-31 |
US20200218569A1 (en) | 2020-07-09 |
EP3545416A1 (en) | 2019-10-02 |
US20180143852A1 (en) | 2018-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983441B (zh) | 用于批作业的资源管理 | |
US20200167197A1 (en) | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items | |
US10514951B2 (en) | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery | |
US11294726B2 (en) | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS | |
US9262210B2 (en) | Light weight workload management server integration | |
US8601483B2 (en) | Forecasting based service for virtual machine reassignment in computing environment | |
US8706869B2 (en) | Distributed cloud placement software | |
US9218196B2 (en) | Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage | |
US11150951B2 (en) | Releasable resource based preemptive scheduling | |
US11467874B2 (en) | System and method for resource management | |
US10860385B2 (en) | Method and system for allocating and migrating workloads across an information technology environment based on persistent memory availability | |
US9501313B2 (en) | Resource management and allocation using history information stored in application's commit signature log | |
CN109478973A (zh) | 用于任务调度、资源发放和服务提供的sdn控制器、系统和方法 | |
US11418583B2 (en) | Transaction process management by dynamic transaction aggregation | |
US9934268B2 (en) | Providing consistent tenant experiences for multi-tenant databases | |
Saravanakumar et al. | An Efficient Technique for Virtual Machine Clustering and Communications Using Task‐Based Scheduling in Cloud Computing | |
US20130145004A1 (en) | Provisioning using presence detection | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
US12026540B2 (en) | Working memory management | |
Shan et al. | Heterogeneous MacroTasking (HeMT) for Parallel Processing in the Public Cloud | |
CN113934525A (zh) | 一种基于正负反馈负载调度算法的Hadoop集群任务调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |