CN101727357B - 用于分配计算中心中资源的方法和装置 - Google Patents
用于分配计算中心中资源的方法和装置 Download PDFInfo
- Publication number
- CN101727357B CN101727357B CN2009102076305A CN200910207630A CN101727357B CN 101727357 B CN101727357 B CN 101727357B CN 2009102076305 A CN2009102076305 A CN 2009102076305A CN 200910207630 A CN200910207630 A CN 200910207630A CN 101727357 B CN101727357 B CN 101727357B
- Authority
- CN
- China
- Prior art keywords
- project
- slot
- resource
- carrying
- queuing system
- 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
Images
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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Abstract
本申请涉及用于分配计算中心中资源的方法和装置。具体地,公开了一种用于分配计算中心中资源的系统。操作过程中,该系统可以接收针对项目的资源需求信息。接下来,该系统可以接收在计算中心中执行新作业的请求。响应于确定没有作业槽可用于执行新作业、并且与该新作业相关联的项目还没有用尽为其分配的作业槽,该系统可以挂起或重排队当前正在执行的作业,并且将释放的作业槽分配给新作业,从而执行新作业。如果系统接收到资源密集型作业,系统可以创建哑元作业,并且在资源密集型作业的同一计算机系统上调度该哑元作业,以防止调度程序在同一计算机系统上调度多个资源密集型作业。
Description
技术领域
本发明总体上涉及分布式计算。更具体地,本发明涉及用于分配计算中心中资源的方法和装置。
背景技术
廉价硬件的可用性已造就了称作计算中心(computing farm)的分布式计算系统,其中大量计算机系统(例如,服务器)使用高速网络耦合在一起。许多企业使用计算中心来执行计算密集型任务。具体地,计算中心已经用于执行各种各样的任务,包括但不限于,计算机辅助设计、图形渲染、软件编辑和数据库查询处理。
传统技术通常使用排队系统来管理计算中心中的资源。在传统方法中,系统管理员通常根据公司的标准使用策略来配置排队系统。当项目需要有保证的资源以实现某个里程碑时,系统管理员通常将计算中心中的一组计算机系统专门用于该项目。遗憾的是,如果该项目没有使用所有的专用资源,此方法可导致利用率的降低。此外应注意,系统管理员通常必须手动重新配置排队系统以便对资源进行专门使用,因此,此方法沿袭了伴随任何需要手动干预的过程的所有缺点和风险。
因此,非常需要找到用于分配计算中心中的资源而没有上述缺点的系统和技术。
发明内容
本发明的一些实施方式提供了一种系统,其可以使项目所有者能够确保该项目按时完成。该系统可以接收关于项目所需的作业槽(jobslot)数量的信息,并且可以将作业槽需求动态映射至计算中心内的作业槽。该系统可以利用调度计算中心中作业的排队系统来加以使用。注意,排队系统通常不理解时间以及数天或数周内的资源规划的概念。一些实施方式可以包含多周滚动调度,以支持管理者调度以后的工作。
该系统可以操控排队系统中作业的优先级,以辅助排队系统放置作业。如果作业多于一个预定时期仍未解决,并且如果该待决作业与具有分配的项目相关联,则系统可以动态地操控计算中心中的作业,从而使排队系统调度该待决作业。注意,该系统可以使用从管理接口接收到的信息来确定与作业相关联的项目,并且确定该项目是否具有分配。
具体地,操作过程中,该系统可以接收针对项目的资源需求信息。该资源需求信息可以允许资源管理者指定,在特定的星期内应当分配给特定的项目、或分配给指派至该项目的特定用户,或分配给执行该项目的流程步骤的作业的用户的作业槽的特定数目。注意,可以指定针对未来数周(例如,最多到未来的十二个周)的资源需求。
接下来,该系统可以接收在计算中心中执行新作业的请求。系统可以使用资源需求信息来确定该新作业是否与已分配作业槽的项目相关联。接下来,系统可以确定计算中心是否具有可用的作业槽。而且,系统可以确定其是否已经将针对该项目而分配的所有作业槽分配给了与该项目相关联的作业。如果计算中心中具有可用的作业槽,系统可以将可用的作业槽分配给新作业。如果系统没有任何可用的作业槽,并且系统已经将所有已分配的作业槽指派给了与该项目相关联的作业,则系统可以将新作业放置到队列中。
另一方面,如果系统没有任何可用的作业槽,并且如果系统没有将所有已分配的作业槽指派给与该项目相关联的作业,该系统可以通过以下操作来执行该新作业:对当前正在执行的作业进行挂起或者重新排队,并且将释放的作业槽分配给新作业。具体地,用户可以选择作业应当被挂起还是重新排队。例如,用户可以通过使用环境变量来指定该选择。注意,系统可以基于各种属性来动态地、确定地对作业进行重新排队,这些属性包括但不限于:该作业开始的时,与该作业相关联的项目的超额水平、所有活动项目的待决作业的数量、该作业当前消耗的资源的数量以及该作业的运行时间限制。
在此方式中,该系统可以使得看起来该系统已经将确定数量的作业槽专门用于项某目,但事实上,该系统没有将作业槽专用于该项目。相反,当项目没有使用分配的作业槽时,系统将所分配的作业槽指派给其它作业,但是该系统确保当该项目需要作业槽时将所分配的作业槽指派给该项目。
通常,每个作业槽代表计算中心中标准资源量。因此,当排队系统将作业槽分配给作业时,其隐式假设该标准资源量足够用于执行该作业。然而,一些作业可能请求比标准资源量更多的资源。如果排队系统在同一计算机系统调度多个资源密集型作业,则可能导致严重的性能问题,如颠簸(thrashing)。
本发明的一些实施方式使用哑元(dummy)作业来防止排队系统在同一计算机系统上调度多个资源密集型作业。具体地,如果系统接收到资源密集型作业,该系统可以创建哑元作业,并且在资源密集型作业的同一计算机上调度该哑元作业,以防止排队系统在同一计算机系统上调度多个资源密集型作业。注意,哑元作业被认为仅使用最少的资源,因此,在资源密集型作业的同一计算机上调度哑元作业不会降低计算机系统的性能。
此外,如果系统接收到轻型作业,该系统可以在当前分配给哑元作业的作业槽中执行该轻型作业。轻型作业可以是使用的资源量小于标准资源量的作业。具体而言,如果排队系统在资源密集型作业的同一计算机系统上执行轻型作业,该计算机系统的性能不会大幅降低。以此方式,系统可以改进计算中心的利用率,同时确保排队系统没有因为调度同一计算机系统上多个资源密集型作业而引起性能问题。
附图说明
图1示出了根据本发明一个实施方式的计算中心;
图2示出了根据本发明一个实施方式的计算机系统;
图3示出了根据本发明一个实施方式的基于优先级的分配系统;
图4示出了根据本发明一个实施方式的、如何将哑元作业“外科上”插入计算机系统以防止不期望的资源分配;
图5给出了示出根据本发明一个实施方式的、用于在计算中心中管理资源的过程的流程图;以及
图6给出了示出根据本发明一个实施方式的、用于插入哑元作业以防止不期望的资源分配的过程流程图。
具体实施方式
给出下面的描述是为了使任何本领域的技术人员能够进行和使用所公开的实施方式,下面的描述是在特定应用及其需求的上下文中提供的。对于本领域技术人员而言,对所公开实施方式的各种修改是显而易见的,并且在不背离本描述的精神和范围的情况下,在此定义的一般性原理可以应用于其它实施方式和应用。因此,并非意在将本描述限于所示的实施方式,本描述将根据符合在此公开的原理和特征的最宽范围。
计算中心
廉价硬件的可用性已造就了称作计算中心的分布式计算系统,其中大量计算机系统(例如,服务器)使用高速网络耦合在一起。许多企业使用计算中心来执行计算密集型任务。具体地,计算中心已经用于执行多种任务,包括但不限于:计算机辅助设计、图形渲染、软件编辑和数据库查询过程等。
图1示出了根据本发明一个实施方式的计算中心。
计算中心102包括大量利用网络耦合在一起的计算机。组成该计算中心的计算机可以位于单个建筑物内(例如,数据中心),或者它们可以全球分布。
通常将计算中心与通用计算机网络区分开来的是计算中心通常包括如下软件,该软件使用户能够在作为整体的计算中心上执行作业。换句话说,该软件对用户隐藏了计算中心架构的细节。该软件提供计算中心中资源的抽象概念,这使得计算中心更加用户友好,并且还使得计算中心更易于管理和维护。例如,在计算中心上执行作业,用户不需要知道计算机的网络地址或不同计算机的负载。相反,用户只是简单地将作业提供给管理该计算中心的软件,而该软件随后会确定如何执行该作业以及何时执行该作业。
在一个实施方式中,该软件使用户能够把计算中心看作是作业槽的集合。作业槽是可以用于执行作业的一般化资源单元。例如,作业槽可以代表具有特定量存储器的专用处理器,或者其可以仅代表没有存储器保证的处理器时间的百分比。此外,作业槽可以是不同类型,例如,一些作业槽可以预留给高度交互式作业,而其它作业槽可以预留给计算密集型作业。
例如,计算中心102可以视为作业槽104的集合。作业槽104可以基于作业的不同类型而划分为不同的种类。例如,作业槽104可以包括轻型交互式作业槽106、重型交互式作业槽108、溢出作业槽110和批处理作业槽112。轻型交互式作业槽106可以用于执行要求用户交互但是并非计算密集型的作业。重型交互式作业槽108可以用于执行要求用户交互并且被认为是计算密集型的作业。溢出作业槽110可以用于执行“溢出”作业,即系统无法为其找到未使用作业槽的那些作业。批处理作业槽112可以用于执行不要求用户交互的计算密集型作业。批处理作业槽112还可以用于执行要求专用资源的高优先级作业。
不同类型的作业槽可以代表不同的资源量。例如,由于轻型交互式作业不被认为是计算密集型的,因此每个轻型交互式作业槽可以代表少量的处理器和存储器资源。换句话说,计算中心中的单个计算机可以提供大量的轻型交互式作业槽。相反,批处理槽可以代表大量处理器和存储器资源,例如,专用计算机系统。
图2示出了根据本发明一个实施方式的计算机系统。
计算机系统202包括处理器204、存储器206和存储设备208。计算机系统202可以与显示器214、键盘210和指点设备212耦合。存储设备208可以存储应用216、操作系统218和数据220。注意,计算中心中的计算机系统通常不与输入/输出设备耦合。然而,在维护期间,计算机系统可以与输入/输出设备耦合。
计算中心中的每个计算机系统通常是“单机”计算机系统,即每个计算机系统具有自己的操作系统,并且通过将作业加载至其存储器以及在其处理器上执行相关联的指令来执行作业。计算中心通常无法在不丢失状态的情况下将正在一个计算机系统执行的作业移至另一个计算机系统。换句话说,在计算中心中,将作业从第一计算机系统移至第二计算机系统通常包括:在第一计算机系统上停止该作业,以及在第二计算机系统上从头开始重启该作业。在这方面,计算中心可能与分布式系统不同,其中该分布式系统从最终用户看来就像是单个计算机系统,并且支持作业的无缝转移。
上文对计算机系统和计算中心的描述仅出于说明和描述的目的。其并非旨在穷尽或者将本发明限制在所公开的形式。一般而言,计算中心中的计算机系统可以是任何可以处理数据并且可以与其它计算机系统通信的系统。具体地,计算中心可以包括多处理器系统和/或具有多核处理器的计算机系统。
资源分配
用于分配计算中心中资源的传统技术通常使用排队系统。例如,来自Platform Computing公司的负载均衡系统(LSF)软件就是可以用于分配计算中心中资源的排队系统。
排队系统通常跟踪计算中心中可用的作业槽,并且根据规则集来指派这些作业槽。排队系统通常支持具有不同优先级级的多个队列。提交至该队列的作业可以利用不同排队规定来加以处理。例如,排队系统可以基于先来先服务原则来处理队列中的作业。此外,排队系统可以基于可动态配置的作业优先级来处理队列中的作业。
例如,排队系统可以有三个队列:低优先级队列、中优先级队列和高优先级队列。排队系统可以保证高优先级队列中的作业总会比中优先级队列中的作业或低优先级队列中的作业先执行。此外,系统可以将特定的计算机系统专用于高优先级队列,并且这些计算机系统即使空闲也不能由中优先级中的作业或低优先级中的作业来使用。
根据作业的重要性,用户可以将作业提交至适当的队列。此外,排队系统可以确保在适当的队列中,具有较高优先级的作业或较早接收到的作业将在具有较低优先级的作业或较晚接收到的作业之前执行。
遗憾的是,即使传统排队系统是复杂的,其仍然不足以处理大型机构每天面临的许多问题。例如,公司可能有数十个产品组,每个产品组有共享计算中心的数十个工程师或数百个工程师。正常操作过程中,工程师将其作业提交至计算中心和排队系统(例如,LSF),确定如何调度该作业。然而,当项目接近绝限时,项目管理者可能要求向与该项目相关联的作业给予更高的优先级。
处理此类情况的传统方式是使一定数量的计算机系统专用于该项目或为该项目创建独立的高优先级队列。遗憾的是,这些传统的方法有许多严重的缺点。
第一,如果专用计算机系统没有得到最大限度的使用,则这些方法可造成利用率较低。第二,这些方法不是自动化的,即它们要求人工干预,这耗时并且易错。通常,信息技术(IT)管理员必须人工重新配置排队系统,以创建新的高优先级队列或者将一定数量的计算机系统专用于高优先级项目。第三,这些方法可能对整个系统产生影响,可导致意想不到的后果。例如,当IT管理员创建新的高优先级队列或是将一些计算机专用于特定项目时,其可以从其他项目取走资源,这可能导致该其他项目错过其绝限。换句话说,当项目的优先级改变时,传统方法没有提供最小化对其它项目影响的方式。最后,传统方法是自组织的(ad hoc),即,其没有使用系统化方法来确保排队系统用于根据机构的优先级来调度作业。具体地,在传统方法中,分配给项目的资源量更多地取决于机构内项目管理者的影响力,而不是取决于项目本身的重要性。
因此,需要有助于管理计算中心中的作业的系统和技术,以改进资源的利用率,并且确保资源是根据机构的优先级分配的。
本发明的一些实施方式改进了使用LSF排队系统的计算中心中的资源利用率,从而支持较大的工程吞吐量、较高的生产力、较好的投资回报和较低的成本。具体地,本发明的一些实施方式在LSF之上使用虚拟化层和基于规则的管理,以支持机构以降低的管理开销来有效地使用较少但是较大的计算中心。此外,本发明的一些实施方式利用空闲资源的实时重分配来支持有效的规划和调度,从而实现从小规模到大规模计算中心的新的可扩展水平。
基于优先级的分配(PBA)
PBA是自动化层,其利用基于分配调度和优先级的按需动态资源重分配来组合已调度的资源分配,从而增强排队系统。PBA可以允许供特定项目专用的先前空闲的处理器由其它项目使用,从而改进批处理计算资源的利用率。PBA可以降低为满足改变的最终用户需求而人工重配置排队系统的人为干预的需要,这降低了管理费用和潜在的人为错误。PBA可以包括全套的自动化报告,其可以为用户、项目领导、资源管理者和排队系统专家提供前瞻性反馈,以优化利用率并且提供可预知的结果。
PBA可以包括在线分配系统,其允许经授权的资源管理者和非排队系统管理员对资源使用进行优先级化和调度,并且将多个项目的需求映射至可用的批处理计算资源。PBA可以基于项目的概念、与项目相关联的UNIX群组标识符(GID)(出于安全目的)、与项目相关联的人员和可能要求唯一资源分配的工作流中的步骤来理解和促进分配。当作业提交至排队系统时,PBA系统让排队系统尝试并调度该作业,就像其通常配置的那样。
超额项目可以定义为执行的作业比分配给它的作业槽数多的项目。例如,如果项目有10个作业槽的分配,但其有100个作业在计算中心上运行,该项目可以被认为超额90。不足额项目可以定义为执行的作业比分配给它的作业槽数少的项目。如果作业是待决的,并且如果该作业与具有分配的项目相关联,则PBA可以动态地确定中心中最不重要的作业并且启动适当的操作。注意,正在执行最不重要作业的作业槽被认为是低优先级的作业槽。不具有分配的项目被假设为具有零作业槽的分配,由此,即使该项目在计算中心中执行单个作业,其也会被认为是超额的。注意,PBA作业可以使其优先级在进入排队系统时被立即操控,并且可以标示为PBA作业。
如果针对资源的需求超过了供给,则PBA可以通过对作业进行重排队或挂起来自动找到并释放与超额作业相关联的作业槽。对于在超过可配置时间周期内还是待决的不足额作业,PBA可在一对一的基础上,为每个不足额作业释放一个超额的作业槽。实际效果是,管理员无需人工创建新的项目队列并且将资源专门用于项目,而是由PBA增加抽象层使得作业槽看似专用于该项目,这是因为当项目需要作业槽时,PBA把作业槽动态地重分配给该项目。
注意,PBA不会将多于已分配作业槽数量的作业槽分配给项目。通常,通过PBA而分配给项目的作业槽总数小于排队系统中作业槽的总数。例如,计算中心可能支持1000个批处理作业槽,并且通过PBA分配的作业槽总数可以是850。如果针对项目的资源需求信息指定项目需要100个作业槽,则PBA将仅分配最多100个作业槽给该项目。这与航线预订系统不同,航线预订系统通常超额预定航程,因为其认为一些乘客将会取消他们的预订。例如,航线预订系统可以为430个乘客预订座位,即使该飞机只有400个座位。
PBA增加资源的利用率和改进用户的生产力。其使项目管理者能够更有效地计划并且实现可预知的结果。PBA还降低了排队系统的复杂性。最后,其提供了有效的方法来确保作业槽预留而无需实现潜在会浪费的专用队列、无需重写作业提交脚本、且无需任何用户干预。可以在任何时间使用PBA的图形化用户界面来容易地进行作业槽分配,并且修改可以在短时期内生效而不会产生任何显著费用。
在一些实施方式中,系统在作业进入排队系统之前对每个作业执行一系列资格核准检查。此预先资格核准步骤与PBA是异步的,其根据作业槽分配来放置作业。在预先资格核准步骤中,系统可以验证是否已经为作业设置了预先定义的“项目”标签。如果是的话,系统继而可以验证(1)由“项目”标签标识的项目名称是否是有效项目名称;(2)提交作业的用户是否是该项目的有效成员;以及(3)是否已经为该项目分配了作业槽。如果作业通过所有这些测试,则可以利用内部标签来修改该作业,以使系统能够在计算中心中追踪该作业。一旦预先资格核准步骤完成,作业继而可以由排队系统来处理。如果作业在这些测试中的任何一个失败了,系统可以将该失败传达给用户并且将该作业放置在排队系统中的最低优先级队列中。在一些实施方式中,在最低优先级队列中的作业仅在存在最低优先级的空闲作业槽的情况下才会被调度,并且即使是在被调度之后,这些作业也可能被较高优先级的作业先占。一旦适当地修改了作业的优先级,排队系统可以按照正常方式来处理作业。
在UNIX环境中,系统可以调度“cron”(计划任务)作业对作业的优先级进行修改,并且调度活动。每个周期中,系统可以确定是否存在任何已经标记为分配的作业。如果找到已标记的作业,该系统可以递增作业的优先级。系统可以为每种作业类型使用不同的增量值。注意,“cron”周期的持续时间和增量值是可以配置的。
在一些实施方式中,用于PBA作业(即,与具有分配的项目相关联的作业)的增量可以大于用于重排队作业的增量。作为示范性示例,系统最初可以为作业指派默认优先级值20。系统可以使用基本增量值100用于增加PBA作业的优先级,并使用基本增量值10用于增加“重排队”作业的优先级。
例如,假设新作业进入排队系统。系统开始可以为其指派默认优先级值20。接下来,系统可以检测作业是否具有相关联的分配,如果是的话,则可以将作业的优先级修改为20加100成为新的值120。接下来,在每个“cron”周期中,系统可以对作业的优先级增加1。因此,假设“cron”周期是20秒,作业的优先级60秒后会是122:最初优先级是20,第一个“cron”后将是120,第二个“cron”后将是121,最后,第三个“cron”后将是122。
每次当作业重排队时,系统可以将优先级增加重排队增量。重排队作业可以存储进数据库,以便系统可以在每个“cron”周期增加其优先级值。例如,当新作业提交到系统,系统可以为新作业赋予默认优先级20。接下来,如果作业处于待决状态达两个“cron”周期,系统可以在每个“cron”周期中将作业的优先级增加1,从而在两个“cron”后作业的优先级将是22。系统继而可以调度该作业。如果作业随后被重排队,系统将在该作业被调度时将该作业的优先级增加重排队增量(10),从而使该作业的优先级等于32。系统继而可以在作业处于待决状态中时增加作业的优先级。例如,如果作业处于待决状态达一个“cron”周期,系统可以将作业的优先级增加到33。此后,如果作业在系统中被调度,并且继而再次重排队,则系统将为该作业赋予优先级43,其等于作业在被调度时的优先级(33)加上重排队增量(10)。系统可以跟踪作业重排队的次数,并且确保被重排队过特定次数的作业不再重排队。
通过使用适当的增量值,系统可以确保PBA作业比普通作业具有更高的优先级。此外,系统可以确保所有为了使分配作业能够运行而被重排队的作业以高于刚进入系统的普通作业的优先级被放回到排队系统。在此方式中,系统可以确保重排队的作业在普通作业之前被调度。另外,如果作业具有分配,并且待决超过了预定的时间周期,系统可以确定中心中最不重要的作业,并且将该最不重要的作业替换为与不足额项目相关联的待决作业。
图3示出了根据本发明一个实施方式的基于优先级的分配系统。
资源管理者302和信息技术(IT)管理员304可以使用管理界面306来提交项目简档308。项目简档可以指定需要分配给该项目的资源量。具体地,项目可以包括步骤序列,其中每个步骤与一组作业相关联。例如,芯片设计项目可能包括逻辑设计、合成、网表验证、物理验证、分辨率增强和掩模数据准备等步骤。进一步,项目中的每个步骤可以与一组特定的作业相关联。例如,合成步骤可以包括执行逻辑编译器,分辨率增强步骤可以包括执行光学邻近校正软件等。注意,当计算机系统执行作业时,其可以产生一个或多个进程。除使资源管理者302能够专门为项目中的步骤分配资源之外,该系统还可以允许资源管理者302为特定的用户分配资源。例如,可以仅当特定用户执行作业时提供分配,但当另一个用户执行相同的作业时便不提供分配。
项目简档还可以显示服务水平协议(SLA)。具体地,系统可以支持速度SLA和吞吐量SLA。速度SLA指示:系统应当试图在可能的最短时间中完成尽可能多的作业。为了满足速度SLA,系统通常为该项目执行尽可能多的并行作业。另一方面,吞吐量SLA规定需要在一定时间内完成的作业量。因此,在此类SLA类型中,该系统对于其需要并行执行多少作业更具灵活性。
再次重申,项目简档可以允许资源管理者为非常特定的任务分配资源。例如,资源管理者可以分配作业槽,使得特定用户可以针对特定项目来执行特定应用。一些实施方式使用UNIX群组标识符来标识已经分配有资源的用户。换句话说,资源管理者可以分配作业槽,使得与项目相关联的特定UNIX组中的用户可以针对该项目执行特定的应用。系统可以理解预配置的流程和流程内的步骤序列。此外,系统还可以以每个项目为基础,提供注册自定义流程和该流程的步骤序列的能力。
用户312可以利用排队系统316的用户接口来提交作业,并且提交的作业可以被排队。为了提交作业,用户可以提供项目名称和系统处理该作业所需的任何其它信息。例如,在LSF中,作业通常是使用bsub函数提交的,该函数具有称作“project(项目)”的输入参数。在一个实施方式中,用户可以为此输入参数指派值,该值对该项目名称、流程中的步骤和/或与该作业相关联的其它相关信息进行编码。
PBA引擎310可以接收排队系统316的状态信息,该状态信息可以包括处于待决状态314的作业的有关信息。接下来,PBA引擎310可以使用项目简档308和排队系统316的状态信息来确定特定作业是否需要特殊处理,即,是否需要按照不同于排队系统通常处理作业的方式来处理该作业。如果PBA引擎310确定作业需要特殊处理,则PBA引擎310可以使用排队系统316的接口来动态配置该作业的属性和/或配置排队系统的行为,从而使该作业被适当地处理。
排队系统316可以提供对计算中心中资源的提取。该提取可以表示为作业槽318的集合。作业槽318可以是不同的类型,例如,轻型交互式作业槽320、重型交互式作业槽322、溢出作业槽324和批处理作业槽326。在一些实施方式中,由排队系统316独自管理作业到作业槽318的分配,并且影响排队系统316的行为的唯一方法是利用排队系统316的接口,例如,命令行接口(CLI)或应用编程接口(API)。
注意,排队系统的接口可以允许用户在该排队系统执行其自身的处理之前,对所提交的作业执行用户特定的处理。例如,LSF的esub命令允许用户提供在作业提交时对作业进行验证、修改或拒绝的指令。具体地,本发明的一些实施方式可以使用LSF的esub命令来标识其属性可能需要修改的作业,并且在需要的情况下修改作业的属性。
在操作过程中,不同类型的作业可以提交到排队系统316。例如,作业328、作业330、作业332和作业334可以提交到排队系统316。具体地,作业328可以是重型交互式作业,作业330可以是批处理作业,作业332可以是轻型交互式作业,而作业334也可以是批处理作业。在提交这些作业时,排队系统316可以执行用户特定的指令来标识哪些作业可能需要特别处理。例如,作业330可以是已由用户特定的指令标记为PBA作业的批处理作业,其中所述用户特定的指令只要在新作业提交到该排队系统时就会执行(在图中,作业330已被标记为PBA作业这一事实由“P”示出)。另一方面,作业334可以是没有被标记为PBA作业的普通批处理作业(在图中,作业334是“普通”作业这一事实由“N”示出)。
作业328和作业332可以由排队系统以通常方式来处理。例如,如果重型交互式作业槽可用,则将作业328指派给重型交互式作业槽,而作业328将在待决状态314中等待直到槽变为可用。类似地,如果轻型交互式作业槽可用,则将作业332指派给轻型交互式作业槽,而作业332将会在待决状态314中等待直到槽变为可用。
然而,由于PBA,排队系统可能以不同方式来处理批处理作业。具体地,如果批处理作业槽可用,则系统将把该作业槽指派到提交到该排队系统的下一批处理作业。如果没有批处理作业槽可用,则该排队系统将对队列中的普通批处理作业进行排队。然而,如果没有批处理作业槽可用,并且如果作业已经被标记为PBA批处理作业,则PBA引擎310可以选择当前正在执行的普通批处理作业,并且将选择的批处理作业挂起或者重排队。接下来,PBA引擎310可以改变该PBA批处理作业的优先级,使得排队系统316在最近释放的作业槽中调度该PBA批处理作业。
本发明的一些实施方式中,在排队系统中仅使用一个队列。具体地,排队系统可以支持具有不同优先级的多个队列,但本发明的一些实施方式针对排队系统中的批处理作业使用单个队列,也即,其不具有用于PBA作业和普通作业的独立队列。这些实施方式利用队列中作业的优先级来达到其目标。
具体地,PBA具有两类作业:PBA作业和普通作业。PBA可以确保任何PBA作业的最低优先级总是高于任何普通作业的最高优先级,从而确保PBA作业总是在普通作业之前被调度。类似地,当PBA从排队系统移除作业时,其可以为该移除的作业指派优先级,使得该移除的作业具有在普通作业中的最高优先级。这确保了移除的作业将在队列中待决的任何其它普通作业之前被调度。
在此方式中,系统只要可能便使用空闲作业槽,并且确保只要PBA作业需要,作业槽就是可用的。换句话说,PBA使得系统看似已经将作业槽专门用于项目,但事实上该系统没有将作业槽专用于该项目。
注意,传统的排队系统不能够实现当项目接近里程碑绝限时通常需要的分配的类型。例如,对于将要到达绝限的项目,特定用户可能需要在在特定的时段内在专用计算机系统上执行特定的应用。传统的系统通常通过将计算机系统专用于该项目来实现这一要求。然而,如上文说明的,此方法通常导致资源浪费,需要人工重配置排队系统,并且可能影响其它项目的工作流。
相反,PBA确保了特定的用户将能够使用他或她需要的资源来达到项目的绝限。此外,PBA防止了浪费资源,避免了对排队系统的人工重配置,并且最小化了对其它项目的影响。具体地,本发明的一些实施方式仅将PBA用于需要确保资源来达到项目里程碑的项目。
注意,一些排队系统可以保证用户和/或项目不执行多于一定数量的作业。另一方面,PBA系统可以动态地操作排队系统中的作业以确保项目和/或用户可以执行至少最小数量的作业。
“外科”哑元作业插入
图4示出了根据本发明一个实施方式、如何将哑元作业“外科地”插入计算机系统以防止不期望的资源分配。
计算机系统402可以是计算中心的一部分。为说明哑元作业插入,假设计算机系统402可以容纳四个作业槽,也就是作业槽404、406、408和410。此外,假设计算机系统402具有16GB的存储器。计算机系统402的存储器在图4中以四个大小为4GB的存储块示出,也就是存储块412、414、416和418。还假设作业槽与4GB存储块相关联。
现在,假设该系统在作业槽404中调度作业,并且假设预期此作业使用12GB的存储器。如果该系统简单地调度该作业而不采取任何进一步的动作,将可能导致严重的执行问题。例如,如果该系统调度作业槽406中的另一作业,其也要使用12GB的存储器,则可能导致颠簸。因此,需要用于防止系统以将会导致执行问题的方式将作业分配到作业槽的技术和系统。
本发明的一些实施方式将哑元作业提交到排队系统,从而使排队系统不会以可能导致执行问题的方式来调度作业。具体地,在图4中显示的实例中,该系统可以将作业槽406和作业槽408分配给两个哑元作业,从而确保排队系统不会将这些作业槽分配给可能引起系统颠簸的真实作业。
注意,哑元作业通过使用排队系统的接口“外科地”被插入。本发明的一些实施方式修改排队系统的行为而不改变排队系统的软件。修改排队系统的行为,因为一旦排队系统将哑元作业分配给了作业槽406和作业槽408,排队系统在计算系系统402上将最多再调度一个要求标准资源量的作业,从而防止系统颠簸。
注意,系统知道计算中心中所有计算机系统的配置,并且系统可以在处理器之间等同地划分系统上的存储器。例如,在具有16GB存储器的四处理器系统中,系统可以使每个批处理作业槽与处理器和4GB存储器相关联。另一方面,在具有64GB存储器的四处理器系统中,每个批处理作业槽可以与处理器和16GB的存储器相关联。
基于上文讨论,下文部分描述用于分配计算中心中资源的系统和技术。
用于分配计算中心中资源的过程
图5给出了示出根据本发明一个实施方式的、用于管理计算中心中资源的过程的流程图。如上文所述,计算中心的资源可以使用作业槽的集合来表示,并且作业槽的集合可以由排队系统来管理。
该过程可以开始于接收针对项目的资源需求信息(步骤502)。具体地,该资源需求信息可以指示:第一数量的作业需要分配以便执行与项目相关联的作业。此外,该资源需求信息可以指定:将要使用第一数量的作业槽以支持第一用户执行项目的第一步骤。
接下来,系统可以接收与该项目相关联的新作业(步骤504)。具体地,如果该项目指定将使用作业槽来支持第一用户执行该项目的第一步骤,则系统可以确定该新作业是否与该项目的第一步骤相关联,并且该新作业是否已经由该第一用户提交。如果这两个条件都为真,系统可以将该作业标记为“PBA”作业,并且相应地调度该作业;否则,系统可以将该作业标记为“普通”作业,并且以普通的方式调度该作业。
系统继而可以确定该项目是否正在使用为其分派的所有作业槽(步骤506)。具体地,该系统可以确定已经分派给与该项目相关联的作业的作业槽的第二数量,并且将作业槽的第二数量与作业槽的第一数量进行比较,以确定该项目是否正在使用所有为其分派的作业槽。
接下来,系统可以确定是否有任何空闲的作业槽可用于执行新作业(步骤508)。
如果项目正在使用为其分配的所有作业槽,或者如果空闲的作业槽可用于执行新作业,该系统可以照常调度新作业(步骤516)。
另一方面,如果项目没有使用为其分配的所有作业槽,并且如果没有空闲的作业槽可用于执行该新作业,系统可以用新作业替代正在执行的作业。具体地,响应于确定了作业槽的第二数量小于作业槽的第一数量、并且没有作业槽可用于执行与项目相关联的第一作业,系统可以使用以下过程来执行该新作业。
首先,系统可以标识目前分派给执行中作业的低优先级作业槽(步骤510)。注意,低优先级作业槽中执行的作业也被认为是最不重要的作业。
低优先级作业槽不一定与最后开始的作业相关联。系统可以代之以根据多个因素来标识低优先级作业槽。系统可以决定不选择正在执行与具有分配的项目相关联的作业的作业槽。换句话说,当前正在系统上执行的作业可以被划分为两类作业:“普通”作业,“PBA”作业(即,已经由PBA调度的那些作业)。当系统标识低优先级作业槽时,其可以决定考虑正在执行普通作业的作业槽,而且系统可以决定不考虑正在执行PBA作业的作业槽。
在一些实施方式中,该系统使用以下因素来标识低优先级作业槽:作业是多久之前开始的,与该作业相关联的项目超额程度,以及该项目有多少作业处于待决状态。在以下情况下,作业槽的优先级可能降低:(1)该作业最近才开始;(2)与该作业相关联的项目严重超额;和/或(3)与该作业相关联的项目有大量的待决作业。
作为示范性示例,假设作业J1和J2是同时开始的,但与作业J1相关联的项目比与作业J2相关联的项目更加超额。在此情景下,系统可以决定用于J2的作业槽比用于J1的作业槽具有更低的优先级。如果作业J1和J2是同时开始的,并且如果与作业J1和J2相关联的项目同等超额,该系统可以根据待决作业的数量来确定作业槽的优先级。具体地,如果与作业J1相关联的项目比与作业J2相关联的项目具有更少的待决作业,系统可以决定用于J2的作业槽比用于J1的作业槽具有更低的优先级。
接下来,系统可以在低优先级作业槽中调度新作业(步骤512)。系统继而可以解分配正在执行的作业(步骤514)。解分配正在执行的作业可以包括(1)停止并且重排队正在执行的作业;或(2)挂起正在执行的作业。系统可以使用与作业相关联的环境变量来确定是停止并且重排队该作业,还是挂起该作业。因为环境变量的值是由用户设置的,因此用户可以完全控制在他或她的作业被解分配之后将会被如何处理。排队系统通常基于作业被提交到的队列来确定是重排队还是挂起作业。相反,本发明的一些实施方式允许用户针对每个作业而控制重排队/挂起决定。在解分配正在执行的作业之前调度新作业,可以使系统能够确保排队系统不会在已释放的作业槽中调度不同的作业。备选地,系统可以为新作业分配高优先级,使得一旦作业槽变为可用,排队系统便为新作业分配作业槽。系统继而可以解分配低优先级的作业槽,从而使排队系统将该低优先级作业槽给新作业。
图6给出了根据本发明一个实施方式的、用于插入哑元作业以防止不期望资源分配的过程的流程图。
该过程可以开始于接收作业(步骤602)。注意,每个作业槽代表计算中心中的标准资源量。因此,当排队系统为作业分配作业槽时,其默认该作业将会使用标准资源量。
接下来,系统可以确定作业是否是资源密集型作业(步骤604)。资源密集型作业可以被定义为预期使用的资源多于标准资源量的作业。注意,如果排队系统在同一个计算机系统上调度多个资源密集型作业,计算机系统的性能可能严重恶化。例如,资源密集型作业可能使用多于作业槽的关联存储量的存储量,因此,在同一个计算机系统上调度多个资源密集型作业可以引起颠簸,从而严重恶化该计算机系统的性能。
如果该作业不是资源密集型作业,系统可以照常调度该作业(步骤610)。
另一方面,如果该作业是资源密集型作业,系统可以创建一个或多个哑元作业(步骤606)。
接下来,系统可以在资源密集型作业的同一计算机系统上调度该哑元作业,从而防止排队系统调用该计算机系统上的其它资源密集型作业(步骤608)。
具体地,排队系统可以支持以下命令,该命令允许过程指定排队系统将要在其上调度作业的计算机系统。因此,该过程可以指示排队系统在同一个计算机系统上调度资源密集型作业和哑元作业。具体地,该过程可以改变与该哑元作业相关联的参数,以便指示排队系统在特定机器上应当调度哑元作业。接下来,该过程可以将哑元作业提交到排队系统,从而使排队系统在特定机器上调度哑元作业。
注意,如果系统接收到轻型作业(即,使用的资源少于标准资源量的作业),该系统可以在分配给哑元作业的作业槽上执行该轻型作业,从而改进利用率。
具体地,系统可以接收另一作业(步骤612)。接下来,系统可以确定该作业是否是轻型作业(步骤614)。轻型作业可以是这样的作业,预期在与资源密集型作业相同的计算机系统上调度该作业将不会严重恶化该计算机系统的性能。
如果该作业不是轻型作业,系统可以照常调度该作业(步骤610)。另一方面,如果该作业是轻型作业,系统可以在分配给哑元作业的作业槽上执行该轻型作业(步骤616)。另外,系统解分配当前分配给哑元作业的作业槽,并且将该作业槽分配给该轻型作业。以此方式,系统可以改进计算机系统的利用率而不恶化该计算机系统的性能。
结论
在该详细描述中的数据结构和代码通常存储在计算机可读的存储介质上,其可以是任何可存储用于计算机系统使用的代码和/或数据的设备或介质。这包括但不限于:易失性存储器、非易失性存储器、磁和光存储设备例如磁盘驱动器、磁带、CD(压缩光盘)、DVD(数字多功能光盘或数字视频光盘)或其它的可以存储已知或未来开发的计算机可读介质的介质。
在具体描述部分所描述的方法和过程可以实现为代码和/或数据,其可以存储在上述计算机可读存储介质中。当计算机系统读取和执行存储在计算机可读存储介质上的代码和/或数据时,该计算机系统执行实现为存储在计算机可读存储介质内的数据结构和代码的方法和过程。
此外,下文描述的方法和过程可以包括在硬件模块中。例如,硬件模块可以包括但不限于:专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及目前已知的或以后开发的其他可编程逻辑设备。当硬件模块被激活时,硬件模块执行包括在此硬件模块内的方法和过程。
前面已经提出的关于本发明的实施方式的描述仅出于说明和描述的目的。其并非意在于穷尽或者将本发明限制在所公开的形式。因此,许多修改和变化对本领域技术人员来说是显而易见的。此外,上述公开的内容并不试图限制本发明。本发明的范围由附加的权利要求来限定。
Claims (12)
1.一种用于分配计算中心中资源的方法,其中所述计算中心的资源使用作业槽的集合来表示,并且其中所述作业槽的集合由排队系统来管理,所述方法包括:
接收针对项目的资源需求信息,其中所述资源需求信息指示为了执行与所述项目相关联的作业而需要分配的作业槽的第一数量;
确定已经分配给与所述项目相关联的作业的作业槽的第二数量;
以及
响应于确定所述作业槽的第二数量小于所述作业槽的第一数量、并且没有作业槽可用于执行与所述项目相关联的第一作业,通过以下动作来执行所述第一作业:
标识当前分配给正在执行的作业的低优先级作业槽;
在所述低优先级作业槽中调度所述第一作业;以及
解分配所述正在执行的作业。
2.根据权利要求1所述的方法,其中基于所述正在执行的作业已经执行的时间来标识所述低优先级作业槽。
3.根据权利要求1所述的方法,其中所述资源需求信息指定所述第一数量的作业槽将被用来支持第一用户执行所述项目的第一步骤。
4.根据权利要求3所述的方法,进一步包括:
接收所述第一作业;以及
通过以下步骤来确定所述资源需求信息是否应用于所述第一作业:
确定所述第一作业是否与所述项目的所述第一步骤相关联;
以及
确定所述第一作业是否已经由所述第一用户提交。
5.根据权利要求1所述的方法,其中解分配所述正在执行的作业包括:指示所述排队系统停止并且重排队所述正在执行的作业。
6.根据权利要求1所述的方法,其中解分配所述正在执行的作业包括:指示所述排队系统挂起所述正在执行的作业。
7.一种用于分配计算中心中资源的设备,其中所述计算中心的资源由作业槽的集合来表示,并且其中所述作业槽的集合由排队系统来管理,所述设备包括:
第一接收装置,用于接收针对项目的资源需求信息,其中所述资源需求信息指示为了执行与所述项目相关联的作业而需要分配的作业槽的第一数量;
第一确定装置,用于确定已经分配给与所述项目相关联的作业的作业槽的第二数量;以及
执行装置,用于响应于确定所述作业槽的第二数量小于所述作业槽的第一数量、并且没有作业槽可用于执行与所述项目相关联的第一作业,来执行所述第一作业,所述执行装置包括:
标识装置,用于标识当前分配给正在执行的作业的低优先级作业槽;
调度装置,用于在所述低优先级作业槽中调度所述第一作业;以及
解分配装置,用于解分配所述正在执行的作业。
8.根据权利要求7所述的设备,其中所述标识装置进一步用于:基于所述正在执行的作业已经执行的时间来标识所述低优先级作业槽。
9.根据权利要求7所述的设备,其中所述资源需求信息指定所述第一数量的作业槽将被用来支持第一用户执行所述项目的第一步骤。
10.根据权利要求9所述的设备,进一步包括:
第二接收装置,用于接收所述第一作业;以及
第二确定装置,用于确定所述资源需求信息是否应用于所述第一作业,所述第二确定装置包括:
用于确定所述第一作业是否与所述项目的所述第一步骤相关联的装置;以及
用于确定所述第一作业是否已经由所述第一用户提交的装置。
11.根据权利要求7所述的设备,其中所述解分配装置包括:
用于指示所述排队系统停止并且重排队所述正在执行的作业的装置。
12.根据权利要求7所述的设备,其中所述解分配装置包括:
用于指示所述排队系统挂起所述正在执行的作业的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/263,126 | 2008-10-31 | ||
US12/263,126 US9465663B2 (en) | 2008-10-31 | 2008-10-31 | Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727357A CN101727357A (zh) | 2010-06-09 |
CN101727357B true CN101727357B (zh) | 2013-08-07 |
Family
ID=42133061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102076305A Active CN101727357B (zh) | 2008-10-31 | 2009-10-28 | 用于分配计算中心中资源的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9465663B2 (zh) |
CN (1) | CN101727357B (zh) |
TW (1) | TWI470553B (zh) |
WO (1) | WO2010062421A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381219B2 (en) * | 2007-02-02 | 2013-02-19 | International Business Machines Corporation | Monitoring performance on workload scheduling systems |
US20090025004A1 (en) * | 2007-07-16 | 2009-01-22 | Microsoft Corporation | Scheduling by Growing and Shrinking Resource Allocation |
WO2010127433A1 (en) * | 2009-05-03 | 2010-11-11 | Research In Motion Limited | Systems and methods for mobility server administration |
US8904394B2 (en) * | 2009-06-04 | 2014-12-02 | International Business Machines Corporation | System and method for controlling heat dissipation through service level agreement analysis by modifying scheduled processing jobs |
US20110112880A1 (en) * | 2009-09-22 | 2011-05-12 | Ebay Inc. | Allocation of common resources in an entity |
US9069610B2 (en) | 2010-10-13 | 2015-06-30 | Microsoft Technology Licensing, Llc | Compute cluster with balanced resources |
US9098331B2 (en) * | 2011-06-29 | 2015-08-04 | Telefonaktiebolaget L M Ericsson (Publ) | Joint scheduling of multiple processes on a shared processor |
US9135581B1 (en) * | 2011-08-31 | 2015-09-15 | Amazon Technologies, Inc. | Resource constrained task scheduling |
US9477529B2 (en) | 2012-06-20 | 2016-10-25 | International Business Machines Corporation | Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes |
US9110695B1 (en) * | 2012-12-28 | 2015-08-18 | Emc Corporation | Request queues for interactive clients in a shared file system of a parallel computing system |
JP6191361B2 (ja) * | 2013-09-25 | 2017-09-06 | 富士通株式会社 | 情報処理システム、情報処理システムの制御方法及び制御プログラム |
US10162683B2 (en) | 2014-06-05 | 2018-12-25 | International Business Machines Corporation | Weighted stealing of resources |
CN104657221B (zh) * | 2015-03-12 | 2019-03-22 | 广东石油化工学院 | 一种云计算中基于任务分类的多队列错峰调度模型及方法 |
US10956209B2 (en) * | 2016-05-06 | 2021-03-23 | Schlumberger Technology Corporation | Seismic processing task predictive scheduler |
US11099890B2 (en) * | 2016-12-13 | 2021-08-24 | Intel Corporation | Devices and methods for prioritized resource allocation based on communication channel conditions |
CN108241538A (zh) * | 2017-12-28 | 2018-07-03 | 深圳忆联信息系统有限公司 | 一种固态硬盘中raid资源的管理方法及固态硬盘 |
US10666575B2 (en) | 2018-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Asymmetric co-operative queue management for messages |
US10860007B2 (en) * | 2018-07-17 | 2020-12-08 | Accenture Global Solutions Limited | Smart resource manager in unified automation platforms for robotic process automation |
CN110968320A (zh) * | 2018-09-30 | 2020-04-07 | 上海登临科技有限公司 | 针对异构硬件架构的联合编译方法和编译系统 |
US10956215B2 (en) * | 2019-02-18 | 2021-03-23 | International Business Machines Corporation | Predictive job admission control with feedback |
WO2020230586A1 (ja) | 2019-05-10 | 2020-11-19 | 日立オートモティブシステムズ株式会社 | ハイパーバイザおよび制御装置 |
CN111625339A (zh) * | 2020-05-28 | 2020-09-04 | 网易有道信息技术(北京)有限公司 | 集群资源调度方法、装置、介质和计算设备 |
WO2022109351A1 (en) * | 2020-11-20 | 2022-05-27 | Okta, Inc. | Server-based workflow management using priorities |
CN113032143B (zh) * | 2021-03-09 | 2022-10-18 | 西北工业大学 | 一种高性能计算用户配额的智能调优方法 |
CN116483544B (zh) * | 2023-06-15 | 2023-09-19 | 阿里健康科技(杭州)有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825289A (zh) * | 2005-02-22 | 2006-08-30 | 微软公司 | 用于资源管理的方法和系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421011A (en) * | 1991-12-20 | 1995-05-30 | International Business Machines Corporation | Method and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users |
GB9928503D0 (en) * | 1999-12-03 | 2000-02-02 | Ibm | Resource allocation in data processing systems |
US7509671B1 (en) * | 2001-06-20 | 2009-03-24 | Microstrategy Incorporated | Systems and methods for assigning priority to jobs in a reporting system |
US7526765B2 (en) * | 2003-11-26 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for on-demand resource allocation and job management |
KR100625246B1 (ko) * | 2003-12-19 | 2006-09-20 | 한국전자통신연구원 | 패킷 스케줄러의 주기적인 자원 할당 방법 및 그 데이터구조를 기록한 기록매체 |
US7844969B2 (en) * | 2004-06-17 | 2010-11-30 | Platform Computing Corporation | Goal-oriented predictive scheduling in a grid environment |
US7861246B2 (en) * | 2004-06-17 | 2010-12-28 | Platform Computing Corporation | Job-centric scheduling in a grid environment |
US7496564B2 (en) * | 2004-11-19 | 2009-02-24 | International Business Machines Corporation | Resource optimizations in computing utilities |
KR20060096569A (ko) * | 2005-03-02 | 2006-09-13 | 삼성전자주식회사 | 다단계 할당 방식을 이용한 풀 자원 관리 방법 |
US8095141B2 (en) | 2005-03-09 | 2012-01-10 | Qualcomm Incorporated | Use of supplemental assignments |
US7937706B2 (en) * | 2005-08-22 | 2011-05-03 | Runtime Design Automation, Inc. | Method and system for performing fair-share preemption |
US20080052712A1 (en) * | 2006-08-23 | 2008-02-28 | International Business Machines Corporation | Method and system for selecting optimal clusters for batch job submissions |
US7865647B2 (en) * | 2006-12-27 | 2011-01-04 | Mips Technologies, Inc. | Efficient resource arbitration |
US8578381B2 (en) * | 2007-10-26 | 2013-11-05 | Oracle America, Inc. | Apparatus, system and method for rapid resource scheduling in a compute farm |
CN101911047A (zh) * | 2007-11-06 | 2010-12-08 | 瑞士信贷证券(美国)有限责任公司 | 根据服务水平协议预测并管理资源分配 |
US20090282414A1 (en) * | 2008-05-07 | 2009-11-12 | Branda Steven J | Prioritized Resource Access Management |
-
2008
- 2008-10-31 US US12/263,126 patent/US9465663B2/en active Active
-
2009
- 2009-08-04 TW TW98126256A patent/TWI470553B/zh active
- 2009-08-11 WO PCT/US2009/053473 patent/WO2010062421A1/en active Application Filing
- 2009-10-28 CN CN2009102076305A patent/CN101727357B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825289A (zh) * | 2005-02-22 | 2006-08-30 | 微软公司 | 用于资源管理的方法和系统 |
Non-Patent Citations (1)
Title |
---|
Platform计算股份有限公司.无.《Administering PlatformTM LSFTM》.2008,正文第14-15、22、25、114-115、129、277、279、298、347、389、447、472、481、483、488-492页. * |
Also Published As
Publication number | Publication date |
---|---|
US9465663B2 (en) | 2016-10-11 |
CN101727357A (zh) | 2010-06-09 |
TW201019225A (en) | 2010-05-16 |
TWI470553B (zh) | 2015-01-21 |
US20100115526A1 (en) | 2010-05-06 |
WO2010062421A1 (en) | 2010-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101727357B (zh) | 用于分配计算中心中资源的方法和装置 | |
US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
US9277003B2 (en) | Automated cloud workload management in a map-reduce environment | |
US10193977B2 (en) | System, device and process for dynamic tenant structure adjustment in a distributed resource management system | |
US8332862B2 (en) | Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution | |
US8424003B2 (en) | Unified job processing of interdependent heterogeneous tasks using finite state machine job control flow based on identified job type | |
US9141430B2 (en) | Scheduling mapreduce job sets | |
JP2018055707A (ja) | 仮想マシンプールにおけるリソースの割り当て | |
US8650570B2 (en) | Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources | |
US20060206894A1 (en) | Method of scheduling jobs using database management system for real-time processing | |
CN113454614A (zh) | 用于分布式计算中的资源划分的系统和方法 | |
JP2015511341A (ja) | 仮想マシンプールにおけるリソースの価格設定 | |
US7024669B1 (en) | Managing workload within workflow-management-systems | |
CN104040485A (zh) | Paas分层调度和自动缩放 | |
US11182217B2 (en) | Multilayered resource scheduling | |
US20100121904A1 (en) | Resource reservations in a multiprocessor computing environment | |
US7913206B1 (en) | Method and mechanism for performing partitioning of DRC operations | |
US9367350B2 (en) | Meta-scheduler with meta-contexts | |
US9141936B2 (en) | Systems and methods for simulating a resource constrained process | |
US20110191779A1 (en) | Recording medium storing therein job scheduling program, job scheduling apparatus, and job scheduling method | |
EP2840513A1 (en) | Dynamic task prioritization for in-memory databases | |
CN109450913A (zh) | 一种基于策略的多节点注册调度方法 | |
Bunt | Scheduling techniques for operating systems | |
KR102014246B1 (ko) | 리소스 통합관리를 위한 메소스 처리 장치 및 방법 | |
Agnihotri et al. | The Penn State computing condominium scheduling system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |