CN101266557B - 在客户机-服务器或主机环境中计算作业的多目标分配 - Google Patents
在客户机-服务器或主机环境中计算作业的多目标分配 Download PDFInfo
- Publication number
- CN101266557B CN101266557B CN200810083000.7A CN200810083000A CN101266557B CN 101266557 B CN101266557 B CN 101266557B CN 200810083000 A CN200810083000 A CN 200810083000A CN 101266557 B CN101266557 B CN 101266557B
- Authority
- CN
- China
- Prior art keywords
- processor
- group
- utilization factor
- priority
- described operation
- 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/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
- 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/505—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 load
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了在客户机-服务器或主机环境中计算作业的多目标分配。根据本发明,一种利用多个处理器处理计算作业的方法包括:处理作业的请求被接收,其中,所述作业具有与该作业相关联的优先级;第一组处理器被指定为可用于处理所述作业,其中,第一组中的处理器数量基于与该作业相关联的优先级;第二组处理器被指定为可用于处理所述作业,其中,对于第二组中的每一个处理器,处理器的当前利用率小于第二预定利用率;然后,利用从第一组处理器和第二组处理器中选择的一个或多个处理器来处理作业。
Description
技术领域
本发明涉及将计算作业分派到物理资源(节点)用于在客户机-服务器或主机环境中处理,更具体地讲,涉及在客户机-服务器或主机环境中计算作业的多目标分配。
背景技术
服务器或主机环境可以由用于处理不同客户的计算请求的大量节点组成。这样,各个客户请求的处理能够尽可能独立于所述请求分派的实际硬件资源,***开始使用“虚拟机”处理用户的请求,该虚拟机是各个物理资源的集合。利用物理资源的虚拟化,执行不同客户请求的虚拟机能够被移植到***中的其它硬件,而不影响相应用户请求的结果。此外,不需要重新配置用于处理用户请求的应用以适合新的硬件。
当前,计算作业可以由调度程序分配以便预定义在主机环境中的特定硬件上运行的虚拟机。可替换地,在主机环境中运行的负载平衡器能够以***中的全部资源具有相似利用率的方式分发当前运行的任务。技术上,负载平衡器移动不同的虚拟机,并且这可以通过已有的虚拟化技术容易地完成。负载平衡的意图是尽可能有效地利用***资源来最大化***中计算作业的总体吞吐量。为此,可以使用管理软件,例如IBM的Virtual Machine Manager或者HP的ProLiant Essential Workload Management Pack。
从客户的角度来看,期望硬件资源的高度可用性和对他们请求的较短的响应时间。从提供商的角度来看,期望较高的客户满意度,因为这保证了与客户的未来业务。但是,提供商与不同的客户具有不同的商业关系。例如,一些客户会比其他客户愿意为更高的可用性和更短的响应时间支付更多。因此,提供商愿意向客户提供不同的服务等级(例如,资源可用性和响应时间),以便他们能够更迎合高优先级的客户,同时还维持对较低优先级客户的适当服务。
到此为止,这种将重心放在特定客户上已经通过下述方式得以实现:将用于处理客户请求的主机环境划分为若干分区,其中不同分区具有不同的处理带宽,并将来自不同客户的作业分派给不同分区。不幸的是,这导致这样的结果:因为在一个分区中的空闲资源不能被用于为客户处理分派给其它分区的作业,所以主机环境的总体利用率降低。而且,即使在其它分区中有足够的空闲资源可用,被分派给已经被完全利用(例如,为了处理分派给该分区的其它请求)的分区的客户请求也完全不能被处理。在另一种实施方式中,使用了客户份额来实现不同客户之间的一种分级,这样,每个客户每个时间段对***具有受限量的处理时间。这样,如果已经使用了时间段中分配给客户的时间,那么在那个时间段中,来自该客户的其它请求不能被处理。这又导致了低的总体利用率,因为即使资源空闲,一些请求也不能被处理。
发明内容
在第一一般方面,公开了一种利用多个处理器处理计算作业的方法。接收处理作业的请求,其中该作业具有与该作业相关联的优先级。第一组处理器被指定为可用于处理作业,其中第一组中的处理器数量基于与该作业相关联的优先级。第二组处理器被指定为可用于处理作业,其中对于第二组中的每个处理器,处理器的当前利用率小于第二预定利用率。然后,作业利用从第一组处理器和第二组处理器中选择的一个或多个处理器进行处理。
实施方式可以包括一个或多个以下特征。例如,第二预定利用率可以基于作业的优先级以及基于该处理器所属的处理器子集。可以确定处理作业的处理器数量(N),并且可以利用从第一和第二组中选择具有最低当前利用率的N个处理器来处理作业。确定处理作业的处理器数量可以包括接收对利用至少N个处理器来处理作业的请求。可以通过广域网来接收该请求。
第三组处理器可以被指定为可用于处理作业,其中对于第三组中的每个处理器,处理器的当前利用率小于第三预定利用率,并且其中第三预定利用率低于第二预定利用率;并且可以利用从第一、第二和第三组处理器中选择的一个或多个处理器来处理作业。可以确定处理作业的处理器数量(N);当第一和第二组中的处理器数量的总和小于N时,请求可以被排队;并且,当第一和第二组中的处理器数量的总和大于或等于N时,可以利用从第一和第二组中选择的具有最低当前利用率的N个处理器来处理作业。
可以确定处理作业的处理器数量;可以确定第一组中的处理器的当前利用率;可以重新指定第一组处理器,以便将当前利用率大于预定第一利用率的那些处理器排除在外;当重新指定的第一组中和第二组中的处理器数量的总和小于N时,请求可以被排队;并且,当重新指定的第一组中和第二组中的处理器数量的总和大于或等于N时,可以利用从重新指定的第一组中以及从第二组中选择的具有最低当前利用率的N个处理器来处理作业。
可以确定第二组中的处理器的新的当前利用率,然后可以重新指定第二组处理器,以便将具有大于第二预定利用率的、新的当前利用率的那些处理器排除在外,然后可以利用从第一组处理器以及重新指定的第二组处理器中选择的一个或多个处理器来处理作业。
在另一个一般方面,公开了一种利用多个处理器处理计算作业的方法。利用多个处理器来处理多个计算作业。第一组处理器被指定为可用于处理第一作业,其中第一组中的处理器数量基于与第一作业相关联的优先级。第二组处理器被指定为可用于处理作业,其中对于第二组中的每个处理器,处理器的初始利用率小于或等于基于优先级以及基于处理器所属的处理器子集的预定利用率。利用从第一组处理器中以及从第二组处理器中选择的多个处理器处理第一作业。确定处理第一作业的第二组中的处理器具有大于预定利用率的更新的利用率。然后,响应于所述确定,利用从第一组处理器和不包括具有大于第一预定利用率的利用率的处理器的第二组中选择的多个处理器来处理第一作业。
实施方式可以包括一个或多个以下特征。例如,对于利用多个处理器处理的每个计算作业,基本组多个处理器被指定为可用于处理作业,其中用于每个作业的基本组中的处理器数量基于与作业相关联的优先级,可以利用从用于作业的基本组处理器以及不属于基本组的补充集的多个处理器中选择的处理器组来处理作业。确定用于处理作业的补充集中的处理器具有大于由作业优先级确定的利用率的利用率。响应于所述确定,可以利用从第一组处理器和不包括具有大于第一预定利用率的利用率的处理器的第二组中选择的多个处理器来处理作业。
在另一个一般方面,用于处理计算作业的***,包括输入队列、多个处理器、利用率服务引擎、以及调度引擎。输入队列适用于接收待处理的计算作业,其中优先级与该作业相关联。利用率服务引擎适用于确定处理器的利用率,其中第一组的多个处理器被指定为可用于处理作业,其中第一组中的处理器数量基于与作业相关联的优先级,并且其中当前利用率小于第二预定利用率的第二组的多个处理器被指定为可用于处理作业。调度引擎适用于接收关于作业的优先级以及关于处理器的利用率的信息,并适用于调度要由从第一组处理器和第二组处理器中选择的一个或多个处理器处理的作业。
实施方式可以包括一个或多个以下特征。例如,第一组可以由一个处理器组成。多个处理器适用于并行处理作业。调度引擎能够适用于确定处理作业的处理器数量(N),以及适用于调度利用从第一和第二组中选择的具有最低当前利用率的N个处理器来处理作业。调度引擎能够适用于接收对利用至少N个处理器来处理作业的请求,并且可以基于该请求来确定处理作业的处理器数量(N)。处理器的当前利用率小于第三预定利用率的第三组的多个处理器可以被指定为可用于处理作业,其中第三预定利用率低于第二预定利用率,并且调度引擎还能够适用于调度由通过从第一、第二和第三组处理器中选择的一个或多个处理器进行处理的作业。
调度引擎还能够适用于确定处理作业的处理器数量(N),当第一和第二组中的处理器数量的总和小于N时将作业保持在队列中,以及当第一和第二组中的处理器数量的总和大于或等于N时释放作业以便由从具有作业的最低当前利用率的第一和第二组中选择的N个处理器来处理。
利用率服务引擎还能够适用于确定第一组中的处理器的当前利用率,并且***还包括处理器分组引擎,该处理器分组引擎适用于重新指定第一组处理器以便将具有大于预定第一利用率的当前利用率的那些处理器排除在外。在这种实施方式中,调度引擎还能够适用于确定处理作业的处理器数量(N),当重新指定的第一组中和第二组中的处理器数量的总和小于N时将作业保持在队列中,以及当重新指定的第一组中和第二组中的处理器数量的总和大于或等于N时释放作业以便由从重新指定的第一组中以及从第二组中选择的具有最低当前利用率的N个处理器来处理。
利用率服务引擎还能够适用于确定第二组中处理器的新的当前利用率,并且***还包括处理器分组引擎,该处理器分组引擎适用于重新指定第二组处理器,以便将具有大于第二预定利用率的新的当前利用率的那些处理器排除在外。在这种实施方式中,调度引擎还能够适用于调度将由从第一组处理器和重新指定的第二组处理器中选择的一个或多个处理器进行处理的作业。
在附图和以下描述中对一个或多个实施方式的细节进行论述。其它特征将从说明书和附图以及从权利要求书中变得清楚。
附图说明
图1是具有用于并行处理多个计算作业的多个处理器的***的框图。
图2是能够用在图1的***中以处理计算作业的示例处理器的框图。
图3是能够用在图1的***中以处理计算作业的其它示例处理器的框图。
图4是例示能够被分派给提交用于处理的不同计算作业的不同优先级的表格。
图5是用于将计算作业调度到一个或多个处理器进行处理的调度处理器的框图。
图6是示出依据作业的优先级和作业运行的处理器子集的不同利用率阈值的矩阵。
图7是例示利用多个处理器处理计算作业的示例操作的流程图。
图8是例示利用多个处理器处理计算作业的附加示例操作的流程图。
具体实施方式
图1是具有用于并行处理多个计算作业的多个处理器的***100的框图。计算作业可以从许多不同的客户机102、104、106、108、110提交,这些客户机可以是例如膝上型计算机102和104、个人计算机108和110、工作站106、或任何其它计算设备。客户机102-110可以通过网络115与数据中心(例如,服务器)120进行通信,网络115包括客户机102-110和服务器120之间的、用以方便客户机和服务器之间数据交换的有线和/或无线链接。网络可以是诸如内联网之类的局域网(“LAN”)或诸如因特网之类的广域网(“WAN”),或者可以包括一个或多个LAN和WAN。
数据中心120通常具有比客户机更多的计算资源(例如,更多的存储空间、更多的存储容量、和/或每秒执行更多flops的能力)。因此,数据中心从多个客户机102-110接收请求,以便使用数据中心的计算资源为客户机处理计算作业。例如,在一种实施方式中,客户机可以是自主计算设备,所述自主计算设备运行它们自己的操作***并且通常运行它们自己的应用程序,但依靠数据中心应它们的请求为它们执行计算密集型作业(computationallyintense job)。例如,涉及物理事件的高精度、三维、依赖于时间的仿真可能会超出客户机资源的能力,因此客户机将该作业提交到数据中心120进行处理。在另一个示例中,数据中心可以为客户机存储大量数据,并且可以应客户机的请求提供(host)用以处理作业的应用。例如,数据中心120可以存储关于银行客户的财务信息,并且银行可以调用数据中心的资源来处理信息,例如,来执行客户财务交易的每日核对。类似地,在另一种实施方式中,数据中心120可以执行为客户机102-110的利益运行的应用,因此客户机不必维持用于本地运行该应用的必要资源,而只需要将需要的信息提交到数据中心120,以便数据中心能够运行该应用并将运行该应用的结果返回给客户机。
数据中心120包括:多个处理器(或处理节点)122-130,用于执行计算任务以满足客户机102-110的请求;以及调度服务器(或调度节点140),其将不同的客户机作业分发到不同的处理器。在另一种实施方式中,数据中心120可以包括多个调度服务器来执行与将输入的客户机作业分发到不同处理器来进行处理相关联的任务。如这里更详细解释的,当将输入的作业分配到不同处理器来进行处理时,调度服务器140可以考虑与该作业相关联的优先级来确定分配哪个处理器122-130来处理客户机作业。通过在调度处理期间考虑不同作业的优先级,调度服务器140可以保证具有最高优先级的作业将从处理器接收到最大可用性的计算资源,可能在资源被严重消耗时以牺牲具有较低优先级的作业为代价,同时还保证较高优先级作业不需要资源时有足够的资源可用于较低优先级作业。而且,当多个作业运行在多个处理器122-130上时,调度服务器140可以监控由不同作业使用的计算资源的利用率,并且如果需要的话,还能够动态地将作业重新分配到不同处理器122-130。动态重新分配会导致较低优先级作业被重新分配到不同的处理器,以保证最高优先级将继续接收最大可用性的计算资源。
数据中心120中的处理器122-130可以是例如服务器计算机、刀片服务器(blade server)、个人计算机、单个处理器、或适用于执行计算作业的任何其它类型的处理设备。一般说来,处理器122-130包括处理核心和对存储空间的访问。
图2是可以用在图1的***中以处理计算作业的示例处理器200的框图。处理器200可以是例如个人计算机、服务器计算机、刀片服务器、工作站、个人数字助理(PDA)、或能够通过网络220可操作地链接到调度服务器140的任何其它种类的计算设备。因此,处理器200可以接收已经由调度服务器140调度到处理器的待处理的作业。当处理器200完成了作业或部分作业时,处理器200可以通知调度服务器140有关它已经结束作业或部分作业,并将处理结果返回给请求处理的客户机102-110。所述结果可以通过包括或不包括调度服务器140的路径返回。
处理器200可以包括可操作地耦接在一起的中央处理器(CPU)202、固定存储设备(例如,硬盘、非易失性存储器(例如,闪存))、或可移动可记录的介质(例如,CD))203、随机存取存储器(RAM)204,并且能够通过总线206(例如,外设部件互连(Peripheral Component Interconnect,PCI)总线或其它这样的计算机扩展总线)交换信息。存储设备203可以是能够存储计算机可读指令(例如,软件)的非易失性存储器设备,所述计算机可读指令能够被传送到RAM 204用于由CPU 202执行。例如,存储设备203能够存储可由处理器200的CPU 202执行的操作***和/或一个或多个应用程序。网络220可以是例如LAN、WAN、因特网、或内联网。网络220可以耦接到处理器,例如通过其传播电信号的物理介质(例如,铜线)、通过其传播广信号的光缆(例如,玻璃纤维)、通过其传播电磁信号的无线通信信道、或通过各种通信信道的一些组合。
处理器200还包括网络接口设备(NID)216,该网络接口设备216被配置为将处理器200耦接到网络220。NID 216可以包括使处理器200能够与计算机网络220交换数据的各种协议处理模块。为了适应传送支持这些应用所需要的数据分组,可以使用传输控制协议(TCP)和其它相关技术以正确地格式化数据分组。这种格式化方便了通过网络220连接到处理器200的远端装备接收这些分组。NID 216可以通过主机总线212和桥214耦接到CPU 102和存储器204。
为使连接到网络220的处理器200与调度服务器140和/或其它处理器和/或客户机102-110进行通信,各种设备必须能够相互识别。因此,连接到网络220的每个NID 216具有唯一的序列号(例如,48位的号),有时称为MAC地址,其可以被用来为网络220和连接到网络的其它处理器和客户机唯一地识别NID 216(并且从而识别处理器200)。
图3是可用在图1的***中来处理计算作业的其它示例处理器302、304、306和308的框图。处理器302、304、306和308可以是多核单片***(amulti-core System on a Chip,“SOC”)的一部分,该多核单片***可以被指代为处理器,如这里所使用的那样。处理器302、304、306和308中的每一个可以是中央处理器核心、数字信号处理器(“DSP”)、或其它数据处理模块。
处理器302、304、306和308连接到控制对主存储器312(例如,高速随机存取存储器)的存取的存储器控制器310。处理器302、304、306和308还连接到管理处理器和外部设备之间的输入和输出操作的输入/输出(I/O)处理器314。例如,I/O处理器314可以处理处理器302、304、306和308与外部磁盘驱动器之间的通信。
处理器302、304、306和308中的每一个可以分别与缓冲与主存储器312交换的数据的高速缓存元件316、318、320和322相关联。高速缓存元件316、318、320和322与处理器302、304、306和308共同使用,因为处理器302、304、306和308的处理速度一般远远高于访问主存储器312的速度。利用高速缓存元件316、318、320和322,可以从存储器312整批地检索数据,并且以能够被迅速存取的格式将数据临时地存储在位于靠近关联处理器302、304、306和308的高速缓存元件316、318、320、322中。然后,处理器302、304、306和308从它们的关联高速缓存元件316、318、320和322中存取数据,这比如果必需从主存储器312中检索数据的情况更加迅速。
处理器302、304、306和308与高速缓存元件316、318、320和322以及主存储器312之间的通信一般发生在共享总线上,所述共享总线可以包括地址和命令总线324和数据总线326。虽然分开示出了地址和命令总线324和数据总线326,在一些实施方式中它们可以合并到一条物理总线中。无论共享总线被实现为双总线还是单总线,都可以使用一套协议来管理连接到总线的各个元件302-322(即,“总线代理”)是如何使用总线在它们自己当中进行通信的。
在许多情况下,在芯片300的操作期间,处理器302、304、306和308对同一数据进行操作,在这种情况下,从主存储器312中检索并存储在与处理器302相关联的本地高速缓存316中的数据副本必须与存储在与所有其它处理器304、306和308相关联的本地高速缓存318、320和322中的副本相同。因此,如果一个处理器修改了存储在其本地高速缓存中的数据,这个改变必须被传输到与其它处理元件相关联的高速缓存,以使得所有的处理器将对同一共同的数据继续进行操作。因为对总线代理间的高速缓存一致性的这种需要,建立了协议来保证对由各个总线代理对其相关联的高速缓存所做的对本地存储的数据的改变被通信发送到与连接到该总线的其它总线代理相关联的所有其它高速缓存。
参考图2和图3描述的示例处理器仅仅提供了可用在一定实施方式中的处理器的一些部分的示例,而不是为了对可使用的处理器的体系结构施加任何限制。可以使用任何适于处理计算作业的处理器。
图4是例示能够被分派给提交进行处理的不同计算作业的不同优先级的表格。计算作业可以被提交处理作业的请求的用户402识别。用户402可以由与处理作业的请求相关联的公司、组织、或客户机来识别,或者用与请求相关联的各个人员来识别。计算作业还可以由发送处理作业的请求的域名404、发送请求的IP地址406、或发送请求的硬件的MAC地址408来识别。优先级412可以与作业相关联,所述优先级可以基于例如关于处理作业的请求的信息来确定,这些信息包括用户402、域名404、IP地址、以及MAC地址408。在一种实施方式中,当调度服务器140接收到处理作业的请求时,调度服务器可以提取关于作业的信息,诸如在表格400中列出的信息,并且可以通过查找所提取的信息与优先级之间的关系来使用该信息以便确定优先级,其中所述关系被存储在服务器140的数据库中。
在一个示例中,当调度服务器140接收到处理作业的请求时,调度服务器可以从请求中提取列在行420中的信息,并且使用这个信息确定作业的优先级。当在客户机和调度服务器之间建立会话时,可以从登录信息中确定用户信息402(即,“ SAP/Polk”)。可以由调度服务器从自客户机发送到服务器的分组中的标题(header)信息中提取域名404、IP地址406、以及MAC地址408信息。基于接收行420中的信息,调度服务器可以确定所请求的作业的优先级应当尽量高,因此可以给作业分派优先级“1”。(这里的习惯用法是将较高优先级的作业指定较低数值的优先级412。作为示例,在这里使用优先级1-10,其中用“1”表示最高优先级,而用“10”表示最低优先级的作业。)该确定可以基于一条或多条接收到的信息402、404、406和408或其它在表格400中没有列出的信息。
在接收到的和所提取的信息中的差别可以指示请求作业的不同的优先级。例如,除了IP地址的值之外,在行422中列出的请求的信息与在行420中列出的请求的信息相同,而分派给行422中作业请求的优先级的值为“3”,而不是像分派给作业420的值“1”,这表示基于IP地址信息,已经分派给行422中的作业的较低优先级。这可能是这种情况:用户(即,“Polk”)使用同一台笔记本计算机提交请求420和422,但是却是从与不同IP地址相关联的不同地点提交的请求。例如,IP地址“192.168.99.23”可能与“SAP”公司的重要研究实验室相关联,而IP地址“192.168.99.4”可能与“SAP”公司的自助餐厅区域相关联,因此作业请求420与比作业请求422更高的优先级相关联。
在另一个示例中,除了对于在行424中列出的请求是用户“Polk”发出请求而在行426中是用户“Adams”发出请求之外,在行424中列出的请求的信息与在行426中列出的请求的信息相同,,而分派给由Polk请求的作业的优先级高于分派给由Adams其功能求的作业的优先级。这可能是这种情况:由Polk提交的作业被认为比Adams提交的作业更有价值。可以基于不同用户的工作对公司的相对价值或者因为一个用户比另一个用户支付更多来使其作业更快被处理来确定附加到作业的值以及随后作业的优先级。在这个示例中,与Adams付款使其作业以较低优先级处理相比,Polk可能支付更多以使其作业以较高优先级处理。
在另一个示例中,除了在行430和432中设定了标记410之外(即,对于行430的请求,标记=1,而对于行432的请求,标记=10),在行428、430和432中列出的请求的信息相同。标记值可以由用户设定并与作业请求相关联,用以优先于否则要基于诸如用户402、域名404、IP地址406、以及MAC地址408等关于请求的信息来确定的优先级。因此,当没有设定标记410的值时,在行428中所请求的作业的优先级被确定为默认级别“3”。但是,如果用户有特别重要的作业,那么用户可能愿意额外支付以使该作业以较高优先级来处理,因此用户可以如行430所示通过标记410给作业分派高于默认级别的值。类似地,如果用户有相对不重要或不急迫的作业,那么用户可能想要支付更少以使该作业以较低优先级来处理,因此用户可以如行432中所示通过标记410给作业分派低于默认级别的值。
从其接收作业请求的域名404还可以用来确定处理所请求的作业的优先级。因此,行428和434中的信息的比较显示,当作业请求中的差别仅在于该请求来自域名“abc.com”而不是“sap.com”时,作业的优先级可能较低。这可能是这种情况:例如现场服务技师或顾问从不同客户的域中提交作业,并且不同的优先级与不同的客户相关联。
在另一个示例中,不同的优先级可以被分派给由组织中的不同用户和/或MAC地址或客户机请求的作业。因此,在行436、438和440中的请求的信息的比较示出:在ABC组织中,由用户“Harding”和/或从MAC地址“08:00:69:02:01:FC”提交的作业可以收到比由用户“Bush”和“Johnson”和/或从MAC地址“08:00:69:02:88:CT”和“08:00:69:02:BM:77”提交的作业更高的优先级。
图5是用于从一个或多个客户机102、104、106、108和110向一个或多个处理器502调度计算作业以便由处理器进行处理的调度处理器140的框图。可用于处理作业的处理器库520中的处理器502的总数可以用m表示。调度服务器140可以直接或通过另一个网络504将作业路由到处理器502。通过网络115从客户机接收执行计算作业的请求,并且该作业保持在队列506中,直到调度服务器140中的调度引擎508确定哪个处理器502应当处理该作业。如这里更详细解释的那样,调度引擎可以基于处理器502的利用率和所请求的作业的优先级对处理所请求的作业的特定处理器进行选择。第i个处理器的当前利用率可以用Ui表示,并且可以与作业相关联的不同优先级的数量可以用l表示,其中l<m。
利用率服务引擎510可以轮询(poll)处理器502以确定处理器的利用率,并可以将这个信息报告给调度引擎508。利用率可以是对处理器可用的计算资源的利用率的测量。例如,利用率可以是对处理器的CPU负载的测量,例如,在一段时间期间CPU处于激活状态的时间部分。大多数现有操作***包含用于执行这样的测量的例程,因而利用率服务引擎510能够轮询处理器以执行这样的例程并将结果报告给调度引擎508。在另一个示例中,利用率可以是对由处理器使用的存储空间除以处理器可用的存储空间的总量的测量。
调度服务器140还可以包括处理器分组引擎512,该处理器分组引擎512可用来指定在可用于处理计算作业的处理器库520中的全部处理器502的子集。如以下更详细解释的,不同子集的处理器可以被一般指定用于基于作业的优先级来处理作业。具体来讲,一些子集可以被指定用于处理高优先级作业(即,具有较低数值的优先级412的作业),而其它子集可以被指定用于处理高或低优先级作业。但是,如果属于用于处理高优先级作业的子集的处理器的利用率足够低,则调度服务器140可以在处于那个子集的处理器上起动低优先级作业。以这种方式,总的处理资源不处于闲置状态,以使它们在高优先级作业被请求时可用。此外,每当低优先级作业运行在指定给高优先级作业的处理器子集中、并且那些处理节点的利用率变得太高以至于无法容纳新的高优先级作业时,调度服务器140能够启动重新分配程序以便将低优先级作业转移到其它处理器,从而释放处理器来处理高优先级作业。
在一种实施方式中,利用与特定优先级相关联的作业将被属于为该优先级的作业定义的特定子集的处理器所处理的预期,处理器分组引擎512能够为可分派给作业的每个优先级定义处理器子集(即,处理器分组引擎512能够定义l个不同的处理器子集)。每个子集中的处理器数量可以依赖于客户对处理每个优先级的作业的要求,其中所述要求应当从过去的经验中估计。因此,Pc可以表示子集c(在处理器数量上)的大小(其中1≤c≤l),并且
但是,具有特定优先级的作业并不限于只由为那个优先级的作业而定义的特定子集中的处理器来处理。反而是,低优先级请求可以在属于已经被分派为处理更高优先级作业的子集的处理器上执行,只要在分派为处理更高优先级作业的子集中的处理器的利用率不超过预定的阈值利用率。下面说明这样做的算法。
可以为子集c中的处理器预先定义阈值利用率Ucu。当子集c中的处理器的当前、或瞬时利用率大于Ucu时,则调度引擎508能够禁止具有优先级高于u(其中1≤u≤l)的作业在该处理器上起动。因此,一旦处理器达到活动的阈值等级,那么低优先级作业就不能使用该处理器,但是更高优先级作业(即,具有小于或等于u的数的优先级)可以在该处理器上起动。
对于其中定义了l个不同子集的处理器并且l个不同优先级可以被分派给不同的作业的***中,还必须有个非平凡利用率值Ucu以强制这个规则。例如,图6是示出取决于作业的优先级和作业在其上运行的处理器子集的不同利用率阈值的矩阵。矩阵顶行表示作业的优先级,矩阵的最左列表示作业在其上运行的处理器子集。在矩阵中示出了取决于作业的优先级以及作业在其上运行的处理器子集的利用率阈值。例如,具有优先级为“3”的作业被允许在最高优先级子集的处理器上运行(如果该处理器具有小于30%的利用率)或者能够在第二高的优先级子集的处理器上运行(如果那个处理器具有小于50%的利用率)。具有优先级=3的作业总能够在来自子集3或子集4的处理器上运行。
因此,对于具有优先级u的作业,其中1≤u≤l,可用于处理作业的第一组处理器由具有c≥u的子集中的全部处理器组成。第二组处理器也可用于处理该作业,但是只是在那些处理器的利用率低于阈值的情况下,该阈值取决于作业的优先级以及那些处理器中的每一个所分配的子集的阈值。例如,如果存在10个不同的作业优先级以及10个不同的处理器子集,则当接收到处理具有优先级“3”的作业的请求时,子集c=3、4、......10中的所有处理器均可用于处理该作业,并且子集c=1和c=2中的处理器只在它们的利用率低于预定利用率时才可用于处理该作业。
一旦调度引擎508已经基于从利用率服务引擎510接收到的信息和关于作业的优先级的信息确定了可用于处理该作业的处理器时,调度引擎就能够选择特定处理器来处理该作业。例如,如果处理作业的请求包括对利用N个处理器处理作业的请求,并且调度引擎508确定M>N个处理器当前可用,则调度引擎能够调度该作业由至少N个具有最低利用率的当前可用的处理器来处理。如果调度引擎508确定M<N个处理器当前可用,则调度引擎可以将该作业保持在队列506中,直到至少N个处理器可用于处理该作业。如果请求没有明确地请求用于作业的处理器的特定最小数量,但是请求了一定的性能标准(例如,处理速度或结束时间),则调度引擎508可以基于所提供的信息来确定处理该作业所需要的处理器的数量。
在一些情形下,第一组处理器中的处理器的利用率可以很高(例如,95%以上的最大CPU利用率),以致在实践中这些处理器处理新的作业的效率较低。在这样的情况下,处理器分组引擎512可以重新指定这些过度使用的处理器为暂时不可用于处理新的作业。然后,如果这样的重新指定使得在第一组和第二组中的可用处理器的数量总和小于N时,调度引擎508可以将作业保持在队列506中,直到至少N个处理器可用于处理该作业。
根据这些规则和指导方针,对于每个输入的作业请求r,可以根据以下算法来确定作业对处理器库520的处理器502的最终分配。首先,提取请求r的优先级w,以及请求执行该请求的处理器的数量N。然后,可用于处理作业的处理器的集合被设定为零。然后,属于与大于或等于w的优先级相关联的子集Pc的所有处理器i被添加到可用处理器(“AP”)的集合。然后,对于属于子集Pc的所有剩余的处理器i,其中1≤c<w,确定处理器的实际利用率UciM。如果对于第i处理器,UciM<Ucw,则第i处理器被添加到可用处理器的集合。然后,在确定可用处理器的集合之后,所有处理器i按照UciM增大的次序排序。最后,如果N个处理器可用,在具有最低UciM的可用处理器的集合中的N个处理器上起动在请求中所指定的作业r。如果N个处理器不可用,则该作业被保持在队列中,等待另外的资源可用。
当在多个处理器502上运行一个或多个作业时,可以由利用率服务引擎510周期性地监控处理器的利用率,如果处理器没有被有效地使用,则作业可以被重新分配到不同的处理器。可以用按时间发生顺序分派的作业编号来跟踪各个作业,以便将各个作业相互区分。在一种实施方式中,如果需要的话,可以根据以下算法来监控和重新分配作业。
首先,选择运行作业r之一用于监控。该作业具有作业编号和优先级w,并且在N个处理器上运行。利用率服务引擎510测量运行作业的N个处理器中的每一个的利用率。如果作业运行在子集Pc中具有利用率UciM的处理器i上,那么,如果w≤c(即,如果处理器是低于或等于优先级子集的一部分),则不需要重新分配运行在第i处理器上的处理。如果w>c并且UciM<Ucw(即,如果处理器是高优先级子集的一部分,并且处理器的利用率处于或高于阈值比率),则该作业必须被重新分配到不同的处理器。
为了将作业重新分配到不同的处理器,首先,调度引擎508内的计数器中可用于处理该作业的处理器的集合被设定为零。然后,属于与大于或等于w的优先级相关联的子集Pc的所有处理器i被添加到可用处理器的集合。然后,对于属于子集Pc的剩余处理器i中的每一个,其中1≤c<w,确定处理器的实际利用率UciM。如果对于第i个处理器,UciM<Ucw,则第i处理器被添加到可能的可用处理器的集合。然后,在确定了可能的可用处理器的集合之后,所有处理器i按照UciM增大的次序排序。最后,如果N个处理器可用,在请求中所指定的作业r被移动到具有最低UciM的可用处理器的集合中的N个处理器。如果N个处理器不可用,则该作业被保持在队列中,等待另外的资源可用。对于所有的运行作业执行该处理:监控处理器的利用率,并且如果超过了阈值利用率则移动作业。
图7是例示用于利用多个处理器处理计算作业的图1-6的***的示例操作的流程图700。如图7中所示,接收对利用多个处理器处理作业的请求,其中优先级与该作业相关联(步骤702)。例如,调度服务器140可以从客户机102接收请求以便利用处理器库520中的处理器502处理作业。该请求可以包括对利用特定数量的处理器来处理作业的请求。
第一组处理器被指定为可用于处理作业,其中第一组中的处理器数量基于与该作业相关联的优先级(步骤704)。例如,处理器分组引擎512能够将处理器库520中的全部处理器502划分为多个处理器子集。子集数量可以等于可能的用于作业的不同优先级的数量。当接收到请求并且确定了与该请求相关联的优先级时,分组引擎512和/或调度引擎508可以指定第一组处理器以便包括与等于或大于所请求的作业的优先级(即,较低优先级)的优先级值412相关联的所有子集中的处理器。
第二组处理器被指定为可用于处理作业,其中对于第二组中的每个处理器,处理器的当前利用率小于第二预定利用率(步骤706)。例如,利用率服务引擎510可以监控每个处理器502的利用率,并将该比率报告给调度器508。调度器可以在调度服务器140中比较所测量的比率与数据库中所存储的阈值比率,以确定当前利用率是否大于或等于处理器的阈值比率。可能必须考虑多个利用率阈值,因为如参考图6所说明的那样,对于作业的优先级值和与低于作业优先级值的优先级相关联的子集的每一个组合都需要阈值。因此,调度器可以确定来自第二组中可以包括来自多个不同子集的处理器。
利用这些确定,可以利用从第一子集处理器和第二子集处理器中选择的一个或多个处理器502来处理作业(步骤708)。
图8是例示用于利用多个处理器处理计算作业的图1-6的***的附加示例操作的流程图800。如图8所示,利用多个处理器处理多个计算作业(步骤802)。第一组处理器被指定为可用于处理第一作业,其中第一组中处理器的数量基于与第一作业相关联的优先级(步骤804)。第二组处理器被指定为可用于处理作业,其中对于第二组中的每一个处理器,处理器的初始利用率小于或等于预定利用率(步骤806)。预定利用率基于优先级和处理器所属的处理器子集。第一作业利用从第一组处理器和第二组处理器中选择的多个处理器来处理(步骤808)。然后,确定处理第一作业的第二组中的处理器具有大于预定利用率的更新的利用率(步骤810)。响应于所述确定,第一作业利用从第一组处理器和不包括具有大于第一预定利用率的利用率的处理器的第二组中选择的多个处理器来处理(812)。
这里描述的各种技术的实施方式可以被实施在数字电子电路中,或者实施在计算机硬件、固件、软件或它们的组合中。实施方式可以实施为计算机程序产品,即实实在在地具体实施在信息载体中,例如在机器可读存储设备中或者在传播的信号中,的计算机程序,以供数据处理装置执行,或者控制数据处理装置的操作,所述数据处理装置例如可编程处理器、计算机、多个计算机。计算机程序,例如上面描述的计算机程序,可以用任何形式的编程语言编写,包括汇编语言或解释语言,并且,它可以被以任何形式部署,包括作为独立的程序或者作为模块、组件、子程序或其他适于在计算环境中使用的单元。计算机程序可以被部署成在一个计算机上或在位于一个地点或跨过多个地点分布并被通信网络互连起来的多个计算机上执行。
方法步骤可以被一个或更多个可编程处理器执行,所述可编程处理器执行计算机程序,通过对输入数据操作和产生输出来执行功能。方法步骤还可以被专用逻辑电路执行,或者装置可以被实施为专用逻辑电路,所述专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为例子,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任意一个或更多个处理器。一般来说,处理器将从只读存储器或随机存取存储器接收指令和数据,或者从两者都接收指令和数据。计算机的要素可以包括至少一个用于执行指令的处理器,和用于储存指令和数据的一个或更多个存储器设备。一般来说,计算机还可以包括、或者被可操作地连接,以从一个或更多个用于存储数据的海量储存设备接收数据,或把数据传送到海量储存设备,或者二者皆有,所述海量储存设备例如:磁盘、磁光盘或光盘。适于具体实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,作为例子,包括半导体存储器器件,例如,EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动磁盘、磁光盘和CD-ROM以及DVD-ROM盘。处理器和存储器可以被专用逻辑电路补充,或被包含在专用逻辑电路中。
为了提供和用户的交互,实施方式可以在具有显示设备和键盘以及定点设备的计算机上实施,显示设备例如阴极射线管(CRT)或液晶显示器(LCD)监视器,用于向用户显示信息,键盘和指示设备例如鼠标或轨迹球,用户利用它们可以提供到计算机的输入。其他种类的设备也可以被用来提供和用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且,来自用户的输入可以被以任何形式接收,包括声音、语音或触觉输入。
实施方式可以被在包括后端组件或包括中间件组件或包括前端组件的计算***中实施,或者在这些后端、中间件、前端组件的任意组合中实施,后端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户界面或Web浏览器的客户机计算机,通过图形用户界面或Web浏览器,用户可以和实施方式进行交互。可以利用数字数据通信的任何形式或介质互连组件,数字数据通信介质例如通信网络。通信网络的例子包括局域网(LAN)和例如因特网这样的广域网(WAN)。
虽然如这里所描述的那样已经示出了所描述的实施方式的某些特征,但是本领域普通技术人员现在将想到很多修改、替换、变化或等同物。因此应当理解,所附权利要求旨在覆盖所有这些落入实施方式的基本精神中的修改和变化。
Claims (19)
1.一种利用多个处理器处理计算作业的方法,该方法包括:
接收处理作业的请求,其中,优先级与所述作业相关联;
指定第一组处理器为可用于处理所述作业,其中,该第一组中的处理器数量基于与所述作业相关联的所述优先级;
指定第二组处理器为可用于处理所述作业,其中,对于第二组中的每一个处理器,处理器的当前利用率小于第二预定利用率;以及
利用从所述第一组处理器和第二组处理器中选择的一个或多个处理器来处理所述作业,
其中,所述第二预定利用率基于所述作业的优先级以及所述第二组处理器所属的处理器子集,并且该第二预定利用率大于0。
2.如权利要求1所述的方法,还包括:
确定处理所述作业的处理器数量N;以及
利用从所述第一和第二组中选择的具有最低当前利用率的N个处理器来处理所述作业。
3.如权利要求2所述的方法,其中,确定处理所述作业的处理器数量包括接收对利用至少N个处理器来处理所述作业的请求。
4.如权利要求1所述的方法,还包括:
确定处理所述作业的处理器数量N;
当所述第一和第二组中的处理器数量的总和小于N时排队所述请求;以及
当所述第一和第二组中的处理器数量的总和大于或等于N时,利用从所述第一和第二组中选择的具有最低当前利用率的N个处理器来处理所述作业。
5.如权利要求1所述的方法,还包括:
确定处理所述作业的处理器数量N;
确定所述第一组中处理器的当前利用率;
重新指定第一组处理器,以便将具有大于第一预定利用率的当前利用率的那些处理器排除在外;
当重新指定的第一组中和第二组中的处理器数量的总和小于N时排队所述请求;以及
当重新指定的第一组中和第二组中的处理器数量的总和大于或等于N时,利用从重新指定的第一组以及从第二组中选择的具有最低当前利用率的N个处理器来处理所述作业。
6.如权利要求1所述的方法,还包括:
确定所述第二组中处理器的新的当前利用率;然后
重新指定第二组处理器,以便将具有大于所述第二预定利用率的新的当前利用率的那些处理器排除在外;然后
利用从第一组处理器以及重新指定的第二组处理器中选择的一个或多个处理器来处理所述作业。
7.如权利要求1所述的方法,其中,通过广域网来接收所述请求。
8.一种利用多个处理器处理计算作业的方法,该方法包括:
接收处理作业的请求,其中,优先级与所述作业相关联;
指定第一组处理器为可用于处理所述作业,其中,该第一组中的处理器数量基于与所述作业相关联的所述优先级;
指定第二组处理器为可用于处理所述作业,其中,对于第二组中的每一个处理器,处理器的当前利用率小于第二预定利用率,其中,所述第二预定利用率基于所述作业的优先级以及所述第二组处理器所属的处理器子集;
指定第三组处理器为可用于处理所述作业,其中,对于该第三组中的每一个处理器,处理器的当前利用率小于第三预定利用率,其中,该第三预定利用率小于所述第二预定利用率;以及
利用从所述第一、第二和第三组处理器中选择的一个或多个处理器来处理所述作业。
9.一种利用多个处理器处理计算作业的方法,该方法包括:
利用所述多个处理器处理多个计算作业;
指定第一组处理器为可用于处理第一作业,其中,该第一组中的处理器数量基于与该第一作业相关联的优先级;
指定第二组处理器为可用于处理所述第一作业,其中,对于该第二组中的每一个处理器,处理器的初始利用率小于或等于预定利用率,该预定利用率基于所述与第一作业相关联的优先级以及所述第二组处理器所属的处理器子集,并且该预定利用率大于0;
利用从所述第一组处理器和第二组处理器中选择的多个处理器来处理所述第一作业;
确定处理所述第一作业的所述第二组中的处理器具有大于所述预定利用率的更新的利用率;然后
响应于所述确定,利用从第一组处理器和不包括具有大于所述预定利用率的利用率的处理器的第二组中选择的多个处理器来处理所述第一作业。
10.如权利要求9所述的方法,还包括,对于利用所述多个处理器处理的每一个计算作业:
指定基本组多个处理器为可用于处理所述作业,其中,所述基本组中用于每一个作业的处理器数量基于与该作业相关联的优先级,
利用从用于所述作业的基本组处理器和不属于所述基本组的多个处理器的补充集中选择的一组处理器来处理所述作业;
确定用于处理所述作业的补充集中的处理器具有大于由所述作业的优先级确定的利用率的利用率;以及
响应于所述确定,利用从所述第一组处理器和不包括具有大于所述预定利用率的利用率的处理器的第二组中选择的多个处理器来处理所述作业。
11.一种处理计算作业的***,该***包括:
输入队列,适用于接收待处理的计算作业,其中优先级与所述作业相关联;
多个处理器;
利用率服务引擎,适用于确定所述处理器的利用率,
其中,第一组的多个处理器被指定为可用于处理所述作业,其中所述第一组中的处理器数量基于与该作业相关联的优先级,并且
其中,当前利用率小于第二预定利用率的第二组的多个处理器被指定为可用于处理所述作业;以及
调度引擎,适用于接收关于所述作业的优先级以及关于所述处理器的利用率的信息,并适用于调度要由从所述第一组处理器和第二组处理器中选择的一个或多个处理器来处理的所述作业,
其中,所述第二预定利用率基于所述作业的优先级以及所述第二组处理器所属的处理器子集,并且该第二预定利用率大于0。
12.如权利要求11所述的***,其中,所述第一组由一个处理器组成。
13.如权利要求11所述的***,其中,所述调度引擎适用于确定处理所述作业的处理器数量N,并适用于调度要由从所述第一和第二组中选择的具有最低当前利用率的N个处理器来处理的所述作业。
14.如权利要求13所述的***,其中,所述调度引擎适用于接收对利用N个处理器来处理所述作业的请求,并且其中,所述对处理所述作业的处理器数量N的确定基于所述请求。
15.如权利要求11所述的***,其中,所述调度引擎还适用于:
确定处理所述作业的处理器数量N;以及适用于
当所述第一和第二组中的处理器数量的总和小于N时将所述作业保持在队列中;以及适用于
当所述第一和第二组中的处理器数量的总和大于或等于N时释放所述作业,以便由从具有所述作业的最低当前利用率的第一和第二组中选择的N个处理器来进行处理。
16.如权利要求11所述的***,其中,所述利用率服务引擎还适用于确定所述第一组中处理器的当前利用率;
还包括处理器分组引擎,适用于重新指定所述第一组处理器,以便将具有大于第一预定利用率的当前利用率的那些处理器排除在外;
其中,所述调度引擎还适用于确定处理所述作业的处理器数量N;
其中,所述调度引擎还适用于在重新指定的第一组中和第二组中的处理器数量的总和小于N时将所述作业保持在队列中;以及
其中,所述调度引擎还适用于在重新指定的第一组中和第二组中的处理器数量的总和大于N时释放所述作业,以便由从重新指定的第一组和第二组中选择的具有最低当前利用率的N个处理器来进行处理。
17.如权利要求11所述的***,
其中,所述利用率服务引擎还适用于确定所述第二组中处理器的新的当前利用率;以及
还包括处理器分组引擎,适用于重新指定第二组处理器,以便将具有大于所述第二预定利用率的新的当前利用率的那些处理器排除在外;以及
其中,所述调度引擎还适用于调度要由从所述第一组处理器和重新指定的第二组处理器中选择的一个或多个处理器来处理的作业。
18.如权利要求11所述的***,其中,多个处理器适用于并行处理所述作业。
19.一种处理计算作业的***,该***包括:
输入队列,适用于接收待处理的计算作业,其中优先级与所述作业相关联;
多个处理器;
利用率服务引擎,适用于确定所述处理器的利用率,
其中,第一组的多个处理器被指定为可用于处理所述作业,其中所述第一组中的处理器数量基于与该作业相关联的优先级,
其中,当前利用率小于第二预定利用率的第二组的多个处理器被指定为可用于处理所述作业,其中,所述第二预定利用率基于所述作业的优先级以及所述第二组处理器所属的处理器子集,并且,
其中,当前利用率小于第三预定利用率的第三组的多个处理器被指定为可用于处理所述作业,并且其中,所述第三预定利用率小于所述第二预定利用率;以及
调度引擎,适用于接收关于所述作业的优先级以及关于所述处理器的利用率的信息,并适用于调度要由从所述第一、第二、以及第三组处理器中选择的一个或多个处理器来处理的所述作业。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/724,706 US8205205B2 (en) | 2007-03-16 | 2007-03-16 | Multi-objective allocation of computational jobs in client-server or hosting environments |
US11/724,706 | 2007-03-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101266557A CN101266557A (zh) | 2008-09-17 |
CN101266557B true CN101266557B (zh) | 2015-08-19 |
Family
ID=39415411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810083000.7A Active CN101266557B (zh) | 2007-03-16 | 2008-03-17 | 在客户机-服务器或主机环境中计算作业的多目标分配 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8205205B2 (zh) |
EP (1) | EP1970805B1 (zh) |
JP (1) | JP5336094B2 (zh) |
CN (1) | CN101266557B (zh) |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832706B2 (en) * | 2006-12-22 | 2014-09-09 | Commvault Systems, Inc. | Systems and methods of data storage management, such as dynamic data stream allocation |
US7877750B2 (en) * | 2005-07-27 | 2011-01-25 | Sap Ag | Scheduled job execution management |
US9568206B2 (en) | 2006-08-15 | 2017-02-14 | Schneider Electric It Corporation | Method and apparatus for cooling |
US8322155B2 (en) | 2006-08-15 | 2012-12-04 | American Power Conversion Corporation | Method and apparatus for cooling |
US8327656B2 (en) | 2006-08-15 | 2012-12-11 | American Power Conversion Corporation | Method and apparatus for cooling |
US7681404B2 (en) | 2006-12-18 | 2010-03-23 | American Power Conversion Corporation | Modular ice storage for uninterruptible chilled water |
US8425287B2 (en) | 2007-01-23 | 2013-04-23 | Schneider Electric It Corporation | In-row air containment and cooling system and method |
US7987467B2 (en) * | 2007-04-13 | 2011-07-26 | International Business Machines Corporation | Scale across in a grid computing environment |
CN101755495B (zh) | 2007-05-15 | 2013-10-16 | 美国能量变换公司 | 用来管理设施供电和冷却的方法和*** |
JP4523965B2 (ja) * | 2007-11-30 | 2010-08-11 | 株式会社日立製作所 | リソース割当方法、リソース割当プログラム、および、運用管理装置 |
US20090217282A1 (en) * | 2008-02-26 | 2009-08-27 | Vikram Rai | Predicting cpu availability for short to medium time frames on time shared systems |
JP5642338B2 (ja) * | 2008-03-10 | 2014-12-17 | 富士通株式会社 | ジョブ管理プログラムおよびジョブ管理方法 |
US9405348B2 (en) * | 2008-04-21 | 2016-08-02 | Adaptive Computing Enterprises, Inc | System and method for managing energy consumption in a compute environment |
US20140298349A1 (en) * | 2008-04-21 | 2014-10-02 | Adaptive Computing Enterprises, Inc. | System and Method for Managing Energy Consumption in a Compute Environment |
CA2719005A1 (en) | 2008-04-21 | 2009-10-29 | Adaptive Computing Enterprises, Inc. | System and method for managing energy consumption in a compute environment |
US8458712B2 (en) * | 2008-04-30 | 2013-06-04 | International Business Machines Corporation | System and method for multi-level preemption scheduling in high performance processing |
US8335582B2 (en) * | 2008-05-19 | 2012-12-18 | Applied Materials, Inc. | Software application to analyze event log and chart tool fail rate as function of chamber and recipe |
US8683471B2 (en) * | 2008-10-02 | 2014-03-25 | Mindspeed Technologies, Inc. | Highly distributed parallel processing on multi-core device |
US8527080B2 (en) * | 2008-10-02 | 2013-09-03 | Applied Materials, Inc. | Method and system for managing process jobs in a semiconductor fabrication facility |
US9703595B2 (en) * | 2008-10-02 | 2017-07-11 | Mindspeed Technologies, Llc | Multi-core system with central transaction control |
US8347302B1 (en) * | 2008-10-09 | 2013-01-01 | Amazon Technologies, Inc. | System-aware resource scheduling |
US8219994B2 (en) * | 2008-10-23 | 2012-07-10 | Globalfoundries Inc. | Work balancing scheduler for processor cores and methods thereof |
US8209056B2 (en) | 2008-11-25 | 2012-06-26 | American Power Conversion Corporation | System and method for assessing and managing data center airflow and energy usage |
US8989887B2 (en) | 2009-02-11 | 2015-03-24 | Applied Materials, Inc. | Use of prediction data in monitoring actual production targets |
US9519517B2 (en) * | 2009-02-13 | 2016-12-13 | Schneider Electtic It Corporation | Data center control |
US9778718B2 (en) | 2009-02-13 | 2017-10-03 | Schneider Electric It Corporation | Power supply and data center control |
US8560677B2 (en) * | 2009-02-13 | 2013-10-15 | Schneider Electric It Corporation | Data center control |
CN101814048A (zh) * | 2009-02-23 | 2010-08-25 | 鸿富锦精密工业(深圳)有限公司 | 主机板 |
EP2438518A1 (en) * | 2009-06-01 | 2012-04-11 | Telefonaktiebolaget LM Ericsson (publ) | System and method for determining processing elements allocation |
JP5590032B2 (ja) * | 2009-06-30 | 2014-09-17 | 富士通株式会社 | 計算装置および並列計算機システム |
KR101644800B1 (ko) * | 2010-01-07 | 2016-08-02 | 삼성전자주식회사 | 컴퓨팅 시스템 및 방법 |
US20120331477A1 (en) * | 2010-02-18 | 2012-12-27 | Roy Zeighami | System and method for dynamically allocating high-quality and low-quality facility assets at the datacenter level |
JP2011180894A (ja) * | 2010-03-02 | 2011-09-15 | Fujitsu Ltd | ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法 |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
US8898324B2 (en) * | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US9280391B2 (en) * | 2010-08-23 | 2016-03-08 | AVG Netherlands B.V. | Systems and methods for improving performance of computer systems |
US8745232B2 (en) * | 2010-08-18 | 2014-06-03 | Dell Products L.P. | System and method to dynamically allocate electronic mailboxes |
KR101696804B1 (ko) | 2010-10-05 | 2017-01-16 | 삼성전자주식회사 | 가상화 환경에서의 자원사용정책 조정장치 및 방법 |
US9111326B1 (en) | 2010-12-21 | 2015-08-18 | Rawles Llc | Designation of zones of interest within an augmented reality environment |
US8845110B1 (en) | 2010-12-23 | 2014-09-30 | Rawles Llc | Powered augmented reality projection accessory display device |
US8905551B1 (en) | 2010-12-23 | 2014-12-09 | Rawles Llc | Unpowered augmented reality projection accessory display device |
US9134593B1 (en) | 2010-12-23 | 2015-09-15 | Amazon Technologies, Inc. | Generation and modulation of non-visible structured light for augmented reality projection system |
US8845107B1 (en) | 2010-12-23 | 2014-09-30 | Rawles Llc | Characterization of a scene with structured light |
US9721386B1 (en) * | 2010-12-27 | 2017-08-01 | Amazon Technologies, Inc. | Integrated augmented reality environment |
US9508194B1 (en) | 2010-12-30 | 2016-11-29 | Amazon Technologies, Inc. | Utilizing content output devices in an augmented reality environment |
US8688413B2 (en) | 2010-12-30 | 2014-04-01 | Christopher M. Healey | System and method for sequential placement of cooling resources within data center layouts |
US9607315B1 (en) | 2010-12-30 | 2017-03-28 | Amazon Technologies, Inc. | Complementing operation of display devices in an augmented reality environment |
US8812825B2 (en) * | 2011-01-10 | 2014-08-19 | Dell Products L.P. | Methods and systems for managing performance and power utilization of a processor employing a fully multithreaded load threshold |
CN102779110B (zh) * | 2011-05-11 | 2014-08-06 | 扬智科技股份有限公司 | 基于远端代码调用和数据访问的多核心***及其控制方法 |
US8762998B2 (en) * | 2011-06-14 | 2014-06-24 | International Business Machines Corporation | Computing job management based on priority and quota |
US9118782B1 (en) | 2011-09-19 | 2015-08-25 | Amazon Technologies, Inc. | Optical interference mitigation |
AU2011384034A1 (en) | 2011-12-22 | 2014-07-10 | Schneider Electric It Corporation | Systems and methods for reducing energy storage requirements in a data center |
WO2013095494A1 (en) | 2011-12-22 | 2013-06-27 | Schneider Electric It Corporation | System and method for prediction of temperature values in an electronics system |
AU2011384046A1 (en) | 2011-12-22 | 2014-07-17 | Schneider Electric It Corporation | Analysis of effect of transient events on temperature in a data center |
US9639297B2 (en) | 2012-03-30 | 2017-05-02 | Commvault Systems, Inc | Shared network-available storage that permits concurrent data access |
US9063938B2 (en) | 2012-03-30 | 2015-06-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9641431B1 (en) * | 2012-04-18 | 2017-05-02 | Google Inc. | System and methods for utilization-based balancing of traffic to an information retrieval system |
CN102857433A (zh) * | 2012-09-28 | 2013-01-02 | 苏州阔地网络科技有限公司 | 一种处理网络会议漂移的方法及*** |
CN102857432A (zh) * | 2012-09-28 | 2013-01-02 | 苏州阔地网络科技有限公司 | 一种实现网络会议漂移的方法及*** |
US9313087B2 (en) * | 2013-01-29 | 2016-04-12 | Stg Interactive, S.A. | Distributed computing architecture |
RU2538920C2 (ru) * | 2013-05-06 | 2015-01-10 | Общество с ограниченной ответственностью "Аби ИнфоПоиск" | Способ распределения задач сервером вычислительной системы, машиночитаемый носитель информации и система для реализации способа |
CN103297511B (zh) * | 2013-05-15 | 2016-08-10 | 百度在线网络技术(北京)有限公司 | 高度动态环境下的客户端/服务器的调度方法和*** |
IN2013CH05013A (zh) | 2013-11-07 | 2015-05-08 | Schneider Electric It Corp | |
US9495238B2 (en) | 2013-12-13 | 2016-11-15 | International Business Machines Corporation | Fractional reserve high availability using cloud command interception |
US20150172204A1 (en) * | 2013-12-13 | 2015-06-18 | International Business Machines Corporation | Dynamically Change Cloud Environment Configurations Based on Moving Workloads |
CN104778080A (zh) * | 2014-01-14 | 2015-07-15 | 中兴通讯股份有限公司 | 基于协处理器的作业调度处理方法及装置 |
US9798596B2 (en) | 2014-02-27 | 2017-10-24 | Commvault Systems, Inc. | Automatic alert escalation for an information management system |
GB2523568B (en) * | 2014-02-27 | 2018-04-18 | Canon Kk | Method for processing requests and server device processing requests |
US10572412B1 (en) * | 2014-03-18 | 2020-02-25 | Amazon Technologies, Inc. | Interruptible computing instance prioritization |
CN105320660B (zh) * | 2014-06-05 | 2019-01-18 | 中国石油化工股份有限公司 | 数值模拟并行计算的作业自动提交方法及装置 |
US9684546B2 (en) * | 2014-12-16 | 2017-06-20 | Microsoft Technology Licensing, Llc | Job scheduling and monitoring in a distributed computing environment |
CN104536828A (zh) * | 2014-12-26 | 2015-04-22 | 湖南强智科技发展有限公司 | 基于量子粒子群算法的云计算的任务调度方法和*** |
US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
CN104809026B (zh) * | 2015-05-14 | 2018-03-30 | 苏州中晟宏芯信息科技有限公司 | 一种使用远程节点借用cpu计算资源的方法 |
US9904580B2 (en) * | 2015-05-29 | 2018-02-27 | International Business Machines Corporation | Efficient critical thread scheduling for non-privileged thread requests |
US10296383B2 (en) | 2015-07-10 | 2019-05-21 | Samsung Electronics Co., Ltd. | Computing system with resource management mechanism and method of operation thereof |
JP6415405B2 (ja) * | 2015-07-31 | 2018-10-31 | 本田技研工業株式会社 | タスク制御システム |
US10990926B2 (en) * | 2015-10-29 | 2021-04-27 | International Business Machines Corporation | Management of resources in view of business goals |
TWI584667B (zh) * | 2015-11-27 | 2017-05-21 | 財團法人工業技術研究院 | 多請求的排程方法及排程裝置 |
US10390114B2 (en) | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
CN108073454A (zh) * | 2016-11-15 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 资源划拨方法及***、前端设备和后端设备 |
US20180150256A1 (en) | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
CN109891908A (zh) | 2016-11-29 | 2019-06-14 | 英特尔公司 | 用于毫米波机架互连的技术 |
WO2019003911A1 (en) * | 2017-06-27 | 2019-01-03 | Sony Corporation | MEDICAL IMAGE PROCESSING APPARATUS, MEDICAL IMAGE PROCESSING METHOD, AND CALCULATION SYSTEM |
CN109426556B (zh) * | 2017-08-31 | 2021-06-04 | 大唐移动通信设备有限公司 | 一种进程调度方法和装置 |
EP3602298A1 (en) * | 2017-11-21 | 2020-02-05 | Google LLC | Managing processing system efficiency |
CN108572872B (zh) * | 2018-03-09 | 2021-09-17 | 北京航空航天大学 | 一种基于fpga可重构技术的资源管理方法 |
JP7226169B2 (ja) * | 2019-07-26 | 2023-02-21 | 株式会社デンソー | 電子制御装置 |
US11204802B2 (en) | 2020-04-27 | 2021-12-21 | International Business Machines Corporation | Adjusting a dispatch ratio for multiple queues |
CN111930414B (zh) * | 2020-09-17 | 2020-12-29 | 湖南三一中型起重机械有限公司 | 起重机程序管理方法、起重机程序远程管理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538317A (zh) * | 2003-10-24 | 2004-10-20 | 中兴通讯股份有限公司 | 多业务平台多种资源综合调度的方法 |
CN1655135A (zh) * | 2000-04-28 | 2005-08-17 | 大正制药株式会社 | 并行处理方法中的作业分配方法及并行处理方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE59310083D1 (de) | 1993-09-24 | 2000-09-07 | Siemens Ag | Verfahren zum Lastausgleich in einem Multiprozessorsystem |
JPH09269903A (ja) | 1996-04-02 | 1997-10-14 | Hitachi Ltd | プロセス管理方式 |
US5872972A (en) | 1996-07-05 | 1999-02-16 | Ncr Corporation | Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited |
US6249801B1 (en) | 1998-07-15 | 2001-06-19 | Radware Ltd. | Load balancing |
US6728748B1 (en) * | 1998-12-01 | 2004-04-27 | Network Appliance, Inc. | Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet |
US6658449B1 (en) | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
JP4292693B2 (ja) * | 2000-07-07 | 2009-07-08 | 株式会社日立製作所 | 計算機資源分割装置および資源分割方法 |
US7016412B1 (en) | 2000-08-29 | 2006-03-21 | Koninklijke Philips Electronics N.V. | System and method for dynamic adaptive decoding of scalable video to balance CPU load |
US20020069279A1 (en) * | 2000-12-29 | 2002-06-06 | Romero Francisco J. | Apparatus and method for routing a transaction based on a requested level of service |
US7984147B2 (en) * | 2000-12-29 | 2011-07-19 | Hewlett-Packard Development Company, L.P. | Apparatus and method for identifying a requested level of service for a transaction |
US7093250B1 (en) * | 2001-10-11 | 2006-08-15 | Ncr Corporation | Priority scheduler for database access |
US7552171B2 (en) * | 2003-08-14 | 2009-06-23 | Oracle International Corporation | Incremental run-time session balancing in a multi-node system |
US7075541B2 (en) | 2003-08-18 | 2006-07-11 | Nvidia Corporation | Adaptive load balancing in a multi-processor graphics processing system |
JP2005339335A (ja) * | 2004-05-28 | 2005-12-08 | Fujitsu Ltd | 資源利用管理プログラムおよび資源利用管理システム |
JP2006099162A (ja) * | 2004-09-28 | 2006-04-13 | Hitachi Software Eng Co Ltd | サービス指向アーキテクチャに基づく業務系Webシステムの運用・管理システム及びプログラム |
EP1862904A4 (en) | 2005-03-22 | 2009-06-03 | Fujitsu Ltd | DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM |
JP2009269903A (ja) | 2008-04-11 | 2009-11-19 | Kao Corp | 電位依存性カチオンチャネル阻害剤 |
-
2007
- 2007-03-16 US US11/724,706 patent/US8205205B2/en active Active
-
2008
- 2008-02-12 JP JP2008030988A patent/JP5336094B2/ja active Active
- 2008-03-12 EP EP08004547.9A patent/EP1970805B1/en active Active
- 2008-03-17 CN CN200810083000.7A patent/CN101266557B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655135A (zh) * | 2000-04-28 | 2005-08-17 | 大正制药株式会社 | 并行处理方法中的作业分配方法及并行处理方法 |
CN1538317A (zh) * | 2003-10-24 | 2004-10-20 | 中兴通讯股份有限公司 | 多业务平台多种资源综合调度的方法 |
Non-Patent Citations (1)
Title |
---|
NAIK V.K.et-al.《performance analysis of job scheduling policies in parallel supercomputing environments》.《supercomputing "93. proceedings》.1993,824-833. * |
Also Published As
Publication number | Publication date |
---|---|
CN101266557A (zh) | 2008-09-17 |
EP1970805B1 (en) | 2016-03-09 |
JP5336094B2 (ja) | 2013-11-06 |
US20080229318A1 (en) | 2008-09-18 |
JP2008234632A (ja) | 2008-10-02 |
US8205205B2 (en) | 2012-06-19 |
EP1970805A1 (en) | 2008-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101266557B (zh) | 在客户机-服务器或主机环境中计算作业的多目标分配 | |
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算***以及负载均衡方法 | |
US11252220B2 (en) | Distributed code execution involving a serverless computing infrastructure | |
US9274844B2 (en) | Priority-based management of system load level | |
CN100465900C (zh) | 信息***、负载控制方法、负载控制程序和记录媒体 | |
CN101473307B (zh) | 用于调度计算机微作业以在非干扰时间执行的方法、***和装置 | |
CN102144220B (zh) | 分布式数据处理*** | |
CN109710405B (zh) | 区块链智能合约管理方法、装置、电子设备及存储介质 | |
US20060069761A1 (en) | System and method for load balancing virtual machines in a computer network | |
JP4557178B2 (ja) | 仮想マシン管理システム、その方法及びそのプログラム | |
CN101346696A (zh) | 客户机服务器***中的负荷分散 | |
TW201140451A (en) | Goal oriented performance management of workload utilizing accelerators | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
CN1225472A (zh) | 服务器内调度和分派排队客户请求的装置和方法 | |
EP1696324A1 (en) | Server/client system, load distribution device, load distribution method, and load distribution program | |
US20220413933A1 (en) | Liaison System and Method for Cloud Computing Environment | |
US20230006891A1 (en) | Techniques and architectures for efficient allocation of under-utilized resources | |
US20210117240A1 (en) | Cpu utilization for service level i/o scheduling | |
US7925755B2 (en) | Peer to peer resource negotiation and coordination to satisfy a service level objective | |
US8443372B2 (en) | Methods and systems for partitioning data in parallel processing systems | |
KR100506686B1 (ko) | 분산컴퓨팅을 수행한 정보처리기에 대한 기여도 보상시스템 및 기여도 보상 방법 | |
US8589551B2 (en) | Multiprocessor computer and network computing system processing use and provision of hardware resource via a network | |
CN115689763A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111338782A (zh) | 面向共享式突发数据缓存的基于竞争感知的节点分配方法 | |
US20240202039A1 (en) | Smart web cluster routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: German Waldo Applicant after: SAP AG Address before: German Waldo Applicant before: SAP AG |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |