CN103069390A - 在混合计算环境中重新调度工作量 - Google Patents
在混合计算环境中重新调度工作量 Download PDFInfo
- Publication number
- CN103069390A CN103069390A CN2010800688261A CN201080068826A CN103069390A CN 103069390 A CN103069390 A CN 103069390A CN 2010800688261 A CN2010800688261 A CN 2010800688261A CN 201080068826 A CN201080068826 A CN 201080068826A CN 103069390 A CN103069390 A CN 103069390A
- Authority
- CN
- China
- Prior art keywords
- group
- data parallel
- accelerator
- server system
- workload
- 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.)
- Granted
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/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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/509—Offload
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)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例管理混合计算系统的高吞吐量计算环境中的工作量。检索一组高吞吐量计算服务级别协议(SLA)。该组SLA与包含服务器系统和一组加速器系统的混合处理系统有关,其中,每个系统具有不同的架构。识别在服务器系统上调度的第一组数据并行工作量任务以及与加速器系统组上调度的第二组数据并行工作量任务。在服务器系统和一组加速器系统中的第二个上动态地重新调度第一组数据并行的工作量任务的和第二组数据并行的工作量任务中的一个的至少一部分。该动态地重新调度基本上满足该组高吞吐量计算SLA。
Description
技术领域
本发明一般涉及混合计算环境,且更具体地,涉及在混合计算环境中执行高吞吐量计算。
背景技术
今天的计算机系统已如此先进,以至于现在的一些计算环境包括不同架构的核心组件,其共同操作以完成数据处理任务。这样的计算环境通常被称为“混合”环境,这表示这样的环境包括具有不同架构的主计算机和加速器。尽管混合计算环境比很多非混合计算环境在数据处理上更有计算能力且更高效,这样的混合计算环境通常不提供高吞吐量计算能力。
于2009年3月5日提交的美国专利申请公开号2009/0064168,“Systemand Method for Hardware Based Dynamic Load Balancing of MessagePassing Interface Tasks By Modifying Tasks”,教导了一种用于通过修改任务提供基于硬件的消息传递接口(MPI)任务的动态负载平衡的系统和方法。提供了用于调节执行MPI作业任务的处理器的处理工作量(workload)的平衡的机制,以便最小化用于等待所有处理器调用同步操作的等待时间段。每个处理器具有相关的硬件实施的MIP负载平衡控制器。MPI负载平衡控制器维护历史,该历史提供了关于任务对同步操作的调用的任务简档(profile)。从该信息可确定哪些处理器应当使其处理负载减轻且哪些处理器能处理额外的处理负载而不显著不利地影响并行执行系统的整体操作。因此,可执行操作来将工作量从最慢的处理器转移到一个或多个更快的处理器。
于2010年4月6日提交的美国专利号7,694,306,“Balancingcomputational load across a plurality of processors”,教导了跨多个处理器平衡计算负载。源代码子任务被编译为字节码子任务,由此字节码子任务在运行时被转换为特定于处理器的目标代码子任务。处理器类型的选择是基于以下三个方法中一个:1)蛮力方法;2)更高级别方法,或3)处理器可用性方法。每个目标代码子任务被加载到对应的处理器类型以便执行。在一个实施例中,编译器将指针存储在字节码文件中,该指针引用字节码子任务的位置。在该实施例中,字节码子任务被存储在共享库中且在运行时,运行时加载器使用指针来识别字节码子任务的位置,以便转换字节码子任务。
因此,本领域中存在解决前述问题的需求。
发明内容
从第一方面来看,本发明提供了一种管理用于混合处理系统的高吞吐量计算环境中的工作量的方法。该方法包括检索一组高吞吐量计算服务级别协议(SLA)。该组高吞吐量计算SLA与混合处理系统相关。混合处理系统包括至少一个服务器系统和一组加速器系统,服务器系统包括第一架构,每个加速器系统包括与第一架构不同的第二架构。识别在服务器系统上调度的第一组数据并行工作量任务和用该组加速器系统上调度的第二组数据并行工作量任务。确定该服务器系统和该组加速器系统中的第一个处的一组资源当前可获得。在该服务器系统和该加速器系统中的第二个上动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务的一个的至少一部分。该动态地重新调度基本满足该组高吞吐量计算SLA。
从又一方面来说,本发明提供了一种用于管理用于混合处理系统的高吞吐量计算环境中的工作量的系统。该系统包括存储器和通信地耦合到存储器的处理器。工作量管理器通信地耦合到存储器和处理器。工作量管理器适于执行方法。该方法包括检索一组高吞吐量计算服务级别协议(SLA)。该组高吞吐量计算SLA与混合处理系统相关。混合处理系统包括至少一个服务器系统和一组加速器系统,服务器系统包括第一架构,每个加速器系统包括与第一架构不同的第二架构。识别在服务器系统上调度的第一组数据并行工作量任务和用该组加速器系统调度的第二组数据并行工作量任务。确定该服务器系统和该组加速器系统中的第一个处的一组资源当前可获得。在该服务器系统和该组加速器系统的第二个上动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务中的一个的至少一部分。该动态地重新调度基本满足该组高吞吐量计算SLA。
从又一个方面来看,本发明提供了一种用于管理用于混合处理系统的高吞吐量计算环境中的工作量的计算机程序产品。计算机程序产品包括可由处理电路读取并存储由处理电路执行以执行方法的指令的存储介质。该方法包括检索一组高吞吐量计算服务级别协议(SLA)。该组高吞吐量计算SLA与混合处理系统有关。该混合处理系统包括至少一个服务器系统,以及一组加速器系统,服务器系统包括第一架构,每个加速器系统包括与第一架构不同的第二架构。识别在服务器系统上调度的第一组数据并行工作量任务和使用第二组加速器系统调度的第二组数据并行工作量任务。确定该服务器系统和该组加速器系统中的第一个处的一组资源当前可获得。在该服务器系统和该加速器系统中的第二个上动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务中的一个的至少一部分。该动态地重新调度基本满足该组高吞吐量计算SLA。
从第三方面来看,本发明提供了一种存储在计算机可读介质上并被加载到数字计算机的内部存储器的计算机程序,其包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的步骤。
附图说明
现在将仅通过举例的方式,参考以下附图中示出的优选实施例描述本发明:
图1是示出根据本发明的一个实施例的操作环境的一个例子的框图;
图2是示出根据本发明的一个实施例跨混合系统分配高吞吐量计算工作量的一个例子的框图;
图3是示出根据本发明的一个实施例的混合系统中的工作量迁移的功能时序图;
图4是示出根据本发明的一个实施例的用于混合系统的工作量队列的一个例子的框图;
图5是示出根据本发明的一个实施例的用于高吞吐量计算的混合系统中的服务器的一种配置的框图;
图6是示出根据本发明的一个实施例的在混合系统中提供高吞吐量计算的一个例子的操作流程图;
图7是示出根据本发明的一个实施例的数据访问配置在混合系统中提供高吞吐量计算的另一个例子的操作流程图;
图8是示出根据本发明的一个实施例的根据另一个数据访问配置、通过重新分配工作量在混合系统中提供高吞吐量计算的一个例子的操作流程图;
图9是示出根据本发明的一个实施例的根据另一个数据访问配置、通过基于SLA重新分配工作量在混合系统中提供高吞吐量计算的一个例子的操作流程图;
图10是示出根据本发明的一个实施例在混合系统中集群(cluster)工作量的一个例子的操作流程图;
图11是示出根据本发明的一个实施例的在混合系统中迁移工作量的一个例子的操作流程图;
图12是示出根据本发明的一个实施例在系统环境中配置服务器系统以便执行加速器工作量的一个例子的操作流程图;以及
图13是示出根据本发明的一个实施例的信息处理系统的详细视图的框图。
具体实施方式
根据要求在此公开本发明的具体实施例;但是应当理解,公开的实施例仅是本发明的示例,本发明可被实施为各种形式。因此,在此公开的特定结构和功能细节不应被解释为限制性的,而仅仅是权利要求的基础,且是用于教导本领域技术人员以各种方式以几乎任何合适的详细结构使用本发明的代表性基础。而且,在此使用的术语和短语不是限制性的,而是提供本发明的可理解描述。
在此使用的术语“一”或“一个”被限定为一个或多于一个。在此使用的术语多个被限定为两个或多于两个。复数和单数术语是一样的,除非另外清楚说明。在此使用的术语另一个被定义为至少第二个或更多。在此使用的术语包括和/或具有被定义为包含(即,开放式语言)。在此使用的术语耦合被定义为连接,尽管不必是直接的且不必是机械的。在此使用的术语程序、软件应用等被定义为一系列被设计为在计算机系统上执行的指令。程序、计算机程序或软件应用可包括子程序、函数、过程、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、目标代码、共享库/动态加载库和/或其他被设计为计算机系统上执行的指令序列。
操作环境
图1示出了适用于本发明的多个优选实施例的操作环境100的例子。在该例子中操作环境100是混合计算环境。在此使用的术语“混合计算环境”是一种计算环境,在于其包括可操作地耦合到计算机存储器的计算机处理器,以便以在存储器中存储并在处理器上执行的计算机程序指令的执行的形式来进行数据处理。
此外,图1的例子中的混合计算环境100包括主机/服务器架构,其与具有加速器架构的加速器合作进行操作,其中所述服务器架构和加速器架构是不同的架构。该例子中的主机/服务器和加速器架构的特征在于架构寄存器,其是由在每个架构上执行的计算机程序指令可访问的寄存器,例如指令寄存器、程序计数器、存储器索引寄存器、堆栈指针等寄存器。就是说,两个架构的架构寄存器的数量、类型、结构及其之间的关系是不同的,以至于为在混合计算环境的主计算机上执行而编译的计算机程序指令通常不能被混合计算环境的任何相关加速器本机执行。混合计算环境的例子包括数据处理系统,该数据处理系统转而包括一个或多个主计算机,每个主计算机具有System处理器,以及其架构寄存器实施 指令集的加速器。为在主计算机中的IBM System z上执行而编译的计算机程序指令不能被加速器中的IBM POWER处理器本机执行。
特别地,图1示出诸如服务器系统102的主机系统、多个加速器系统104以及通过一个或多个网络108通信地耦合的一个或多个用户客户机106。所述一个或多个网络108可以是任何类型的有线和/或无线通信网络。例如,网络108可以是内部网、外部网或诸如因特网的互连网络,或其组合。网络108可包括无线、有线和/或光纤链路。在一个实施例中,服务器系统102是任何类型的服务器系统,诸如但不限于IBM System z服务器。在一个实施例中加速器系统104是刀片服务器,诸如但不限于IBM System或System服务器。在一个实施例中,用户客户机106是允许用户与服务器系统102和/或加速器系统104交互的任何信息处理系统,诸如但不限于工作站、台式机、笔记本、无线通信设备、游戏控制台等。用户客户机106包括一个或多个界面110,其允许用户与服务器系统102和/或加速器系统104交互。应当注意到以上给出的服务器系统102、加速器系统104和用户客户机106的例子仅是为了说明的目的,且其他类型的系统也适用。IBM、System z、POWER、System p和System x是在世界上许多管辖地注册的国际商业机器公司的商标。
由于各种系统类型的服务器102和加速器104的异构组合,服务器系统102和加速器系统104的组合在此被称为混合环境100中的混合服务器/系统112。例如,服务器系统102包括通过高速存储总线(未示出)可操作地耦合到计算机存储器、随机存取存储器(未示出)的一个或多个处理器114(每个处理器具有一个或多个核心)。处理器114包括限定主计算机架构的一组架构寄存器(未示出)。每个加速器104也包括一个或多个处理器116,其包括限定加速器架构的一组架构寄存器(未示出)。应当注意每个加速器系统104可包括相同或不同类型的处理器。
每个加速器的处理器116(每个具有一个或多个核心)的架构寄存器与服务器系统102中的处理器114的架构寄存器不同。使用不同的架构,服务器系统102和加速器104支持同样的指令集将是不寻常的,尽管是可能的。这样,通常不会预期为加速器104的处理器116上的执行而编译的计算机程序指令将在服务器系统102的处理器114上本机执行,反正亦然。而且,由于服务器和加速器处理器之间的硬件架构的典型差异,通常不会预期为在服务器系统102的处理器114上执行而编译的计算机程序指令在加速器104的处理器116上本机执行,即使加速器支持服务器的指令集。针对服务器系统104,加速器架构为了特定类别的计算功能的执行速度而被优化。即,对于加速器被优化的一个或多个功能,这些功能在加速器104上的执行将通常比其在服务器系统102的处理器上的执行要快。
在一个实施例中,服务器系统102包括工作量管理器118、一个或多个处理器114和存储在数据库或存储器122中的多个服务级别协议(SLA)120等。应当注意SLA也可被存储在通信地耦合到服务器系统102的一个或多个信息处理系统(未示出)中。在一个实施例中SLA是用户对需要由工作量满足的服务级别的规定。工作量管理器协商级别并协调(orchestrate)工作量以满足这些服务级别。吞吐量计算SLA记录可具有用于性能吞吐量、性能响应时间批窗口(performance-response time-batch window)、能量、可靠性和可用性的多个子记录。在工作量运行期间,由于输入数据率和量或其他执行条件的变化,SLA记录值可动态变化。
工作量管理器118被配置为提供用于混合服务器112的高吞吐量计算(HTC)环境。高吞吐量计算环境可包括(i)数据并行和向量元件;(ii)批窗口;以及(iii)长时间的持续计算吞吐量(操作/秒)。在一个实施例中,混合服务器112利用单指令多数据(SIMD)结构来实现数据并行,该结构增加了单个指令执行的工作,这样它同时在多个数据项上操作。
包括SIMD的混合服务器112中的处理器能在其SIMD单元中本机执行某个长度的数据并行计算。对于要求具有长向量的数据并行计算的工作量,来自多个处理器核心的SIMD单元可在软件中“成组”(ganged)或“形成菊花链”(daisy-chained),从而允许比由处理器核心的本机SIMD单元允许的向量更长的向量上的操作。如果服务器处理器上的“净空间”(headroom)跨多个核心可用,做出使用这种成组配置的选择。或者,工作量可在单个核心上的循环中完成数据并行计算。
工作量管理器118包括SLA管理器124、工作量分配器126、集群调度器128、批窗口管理器130、动态工作量重新分配器132、工作量移动性管理器134和工作量队列136。以下将更详细地讨论工作量管理器118和这些组件中的每一个。加速器104包括如上讨论的一个或多个处理器116,以及用于在加速器104处排队各种将被执行的工作量的一个或多个工作量队列138等,以下将详细讨论加速器。
如以上讨论的,混合系统112是异构系统。因此,在一个实施例中,混合计算环境100实施跨平台并行编程环境,诸如但不限于OpenCL(开放计算语言)环境。这种类型的环境允许跨若干诸如中央处理单元(CPU)、图形处理单元(GPU)和加速器的异构设备的并行编程。换句话说,跨平台并行编程环境允许程序跨异构组件执行。在这种环境中,工作量包括多个进程/地址空间。每个进程可执行若干任务,且每个任务可卸载某些计算密集部分到计算内核(compute kernel),所述部分是可执行代码的基本单元。计算内核可在诸如处理器核心的一个计算元件或若干计算元件上执行。计算内核可以是相对于诸如服务器系统102中的处理器的CPU任务并行的,或者是相对于诸如加速器104中的处理器的CPU数据并行的。如果计算内核以诸如C或C++的语言编写且被编译到本地指令集,混合系统112为混合系统112中的每个不同架构维护单独的计算内核。如果计算内核用诸如或OpenCL的语言编写,仅需要维护一个内核,因为Java和OpenCL为计算内核提供支持以便跨不同的架构可移植地运行。工作量分别在服务器102和加速器104的工作量队列136、138中排队。Java是Oracle和/或其附属公司的注册商标。其他名称可能是其各自的所有者在美国和/或其他国家的商标。
工作量管理器118将这些计算内核发送给加速器104。或者,当启动调用这些内核功能的进程时,服务器上的OpenCL运行时进程可将这些内核发送给加速器。加速器也可选择将OpenCL内核存储在其本地三级存储器中。当服务器上的调用进程运行时,可调用这些内核。这些计算内核随后在加速器104上被启动。服务器将数据传递给这些计算内核并基于数据计算结果。这些结果随后从加速器104被传递到服务器系统102。应当注意,即使以下讨论可讨论针对该跨平台并行编程环境的各种实施例,本发明的一个或多个优选实施例也适用于非跨平台并行编程环境。
如上所述,传统的混合计算环境通常不提供跨整个混合计算系统的高吞吐量计算要求的统一规范和管理。例如,在混合计算环境中实施的许多服务器系统不是被配置为在很长的时间跨度中执行数据并行操作。而且,传统的混合计算环境通常在服务器系统上调度较不计算密集的工作量,诸如在线交易处理工作量,以及在加速器上调度较为计算密集的工作量。但是,如以下将更详细讨论的,本发明的各种优选实施例通过支持吞吐量计算SLA、服务器102和加速器104之间的代理(surrogate)执行、跨网络链路的交叉链接队列以及基于性能/能量权衡的合并的数据/工作量窃用(stealing)解决了这些问题。而且,各种实施例通过将计算密集工作量组件置于服务器系统以及加速器上,最大化吞吐量且最小化能量足迹(当服务器系统的没有互锁流水线阶段的微处理器(MIPS)/瓦特或每秒浮点运算(FLOP)/瓦特少于可比较加速器系统时)。
混合计算环境中的高吞吐量计算
在一个实施例中,通过支持SLA120和工作量管理,工作管理器118为混合系统112提供吞吐量计算环境。工作量管理器118为例如向量运算/秒的数据并行运算提供SLA;弹性批窗口;对服务器系统和加速器处理器的支持;工作量集群调度;以及关于输入/输出、存储器和处理器组件的资源保证。工作量管理器118通过工作量分配器126能跨服务器系统和加速器资源二者管理/分配工作量,以便满足SLA120的要求。
例如,SLA管理器124从存储区域122检索SLA120并确定SLA120要求在2天的时间段内每秒10,000次运算。在该例子中,加速器104的内核总计仅能够执行每秒5000次运算,而这不能满足SLA120。因此,工作量管理器118调度加速器工作量的一部分202、204(例如任务),作为加速器处理器116处的一个或多个计算内核206、208,以及工作量的剩余部分210、212,作为服务器系统处理器114处的一个或多个计算内核214、216,这样可达到每秒10,000次运算的SLA120。服务器系统102处的处理器114可被称为“代理处理器”,因为它们是执行加速器工作量的数据并行计算以补充加速器处理器116的处理器。使用服务器系统资源补充加速器资源可被称为“代理执行”。如可从图2中看到的,工作量管理器118能够利用服务器系统104上的资源来补充加速器资源,以便达到SLA要求。
工作量管理器118也提供资源保证。例如,如果SLA120要求每秒10,000次运算,工作量管理器118确保混合系统112提供该持续的速率。但是,(例如)由于额外的进来的数据,该SLA120可从每秒10,000次运算变为每秒15,000次运算。因此,在该例子中,工作量管理器118动态地把额外内核206、208、214、216分配到服务器系统102、加速器104、或二者,这样额外的加速器工作量可被执行以便维持每次每秒15,000次运算。换句话说,工作量管理器118提供资源保证,这样如果吞吐量计算率有变化,则工作量管理器118分配额外的资源以提供吞吐量计算率。此外,工作量管理器可在加速器上运行代理(agent),其使用硬件和软件计数器来测量有效的计算吞吐率、输入/输出数据率和存储器带宽。
如以上讨论的,混合系统112执行数据并行运算。换句话说,数据可跨混合系统112中的多个处理器或计算节点被分配。在一些例子中,这些数据并行运算可要求来自其他运算的数据。例如,第一工作量组可执行向量的乘法,且第二组可执行向量的减法并要求第一组的结果。因此,通过工作量集群调度器128,工作量管理器118识别依赖的工作量组并将这些依赖的组一起放置在集群中,这样它们可同时被调度在一组服务器系统处理器114和加速器处理器116上。换句话说,多个工作量组位于单个集群中,且是一组类似的数据并行工作量(例如,它们执行类似的数据并行运算),在工作量和工作量组之间具有依赖性。例如,图2示出的工作量202、204、210、212可都位于一工作量集群中。因此,来自第一循环的第一工作量组的结果可在第二循环开始前被传递给同一集群中的第二工作量组。应注意,集群中的工作量可被混合,且不要求是类似的,但它们仍然被一起调度或同时调度。通过集群调度器128,工作量管理器118随后可临时排列集群中的工作量(如果它们具有依赖性的话),以及临时排列工作量集群(如果它们彼此之间具有依赖性的话)。
此外,工作量管理器134通过批窗口管理器130支持弹性批窗口。批窗口是时间窗口,其指定何时批处理工作量可完成。这是SLA(服务级别协议)的一个属性。批窗口规范由工作量管理器使用以分配资源,这样工作量可在批窗口内完成。在工作量执行期间,可要求工作量以在初始批最终期限规范前或后完成。这样的批窗口规范被称为弹性批窗口。基于执行期间的业务处理要求或数据处理要求,批窗口可随时间缩小或扩大。工作量管理器134通过批窗口管理器130分配更多的资源给例如工作量集群以满足缩小的批窗口。该过程可包括在运行中(on the fly)添加或删除额外加速器和/或在运行中添加/删除服务器系统代理处理器。每个额外的加速器可运行允许缩小的批时间窗口被满足的计算内核。如果批窗口规范被放松,则工作量管理器134可移除加速器和相关的内核,这样这些可被其他工作量使用。使用优化的加速器资源组,工作量可在放松的批窗口中完成。
一旦工作量已跨混合系统112被调度,工作量管理器118通过工作量移动性管理器134允许服务器系统102和加速器134之间的异构移动性。换句话说,工作量可从加速器处理器116(用第一架构实施的)移动到服务器系统102上的代理处理器114(用与第一架构不同的第二架构实施的)。例如,图3示出在T1多个工作量302、304被分配在加速器处理器116中。工作量管理器118确定一个或多个工作量304需要被迁移到服务器系统102。例如,工作量304可需要来自服务器系统102的特定数据,但是SLA120指示出于安全原因该数据不能从服务器系统102移开。因此,工作量管理器118在T2将工作量304从加速器104迁移到服务器系统102处的计算核心(或加速器)310,在此工作量可使用服务器系统102处的所需数据执行其运算。
可用各种方式执行异构移动性。例如,第一方法是当接收到移动中断时执行与架构无关的检查点状态。如果正在迁移的工作量的代码包括控制流,则代码中的所有变量与对应于中断状态的任何源代码行号一起保存。当工作量迁移时,这些随后被重新加载在新的处理器上。如果代码包括数据流,来自工作量的数据可从工作量正在迁移离开的服务器/加速器被传递到工作量正在迁移到的服务器/加速器。在该第一方法中,可执行体(executable)的两个副本位于不同架构中的每个上。在第二方法中,可执行体可在迁移离开的处理器处被停止,且在迁移到的处理器处重新开始。例如,迁移离开的处理器(在服务器系统102或在加速器104处)的恢复单元(未示出)被用来保存该迁移离开的处理器的执行状态。System z和System p处理器中的恢复单元或R单元存储处理器的架构状态。映射表将寄存器状态与中间表示(IR)结构、符号、源代码级结构和符号进行关联。当工作量被迁移到另一个处理器时,使用映射表,恢复单元的执行状态可被解码并被加载到新的处理器。这些实施例允许工作量跨不同架构的物理机器被迁移。工作量管理器118将工作量移动到数据交换最有效、安全且/或可获得数据的位置。
决定将工作量从加速器104移动到服务器系统102或反之可基于由SLA120指示的性能或能量要求,或者基于自然交互亲合性(数据交换效率和安全性)。而且,迁移可取决于正在执行的工作量的类型。例如,一种类型的工作量是吞吐量计算批工作量(例如,修复/扩展任务,输入数据的变量赋值,其焦点为数据并行操作),而另一类型的工作量是长时间运行的计算工作量(具有大部分为标量的操作)。
对于吞吐量计算批工作量,这些工作量可被分配给服务器系统处理器114、加速器处理器116或这两者。移动性管理器134监视关于工作量的性能度量和/或能量度量,以确定这些度量是否在各自给定的阈值之上或之下。如果工作量移动性管理器134确定给定的阈值没有被满足或者被超过,则移动性管理器134将至少一部分工作量从其当前系统(服务器102或加速器104)向其他系统(服务器102或加速器104)迁移。这允许混合系统112获得相应SLA120所表示的性能和/或能量度量水平。应注意,可以用批时间窗口和能量窗口规范来初始化吞吐量计算批工作量。批时间窗口规范可以规定吞吐量计算工作量必须在例如4小时内完成。能量窗口规范可以规定工作量必须不能消耗大于400瓦特小时的能量。工作量管理器134同时考虑批时间窗口和能量窗口规范来执行工作量。工作量可以在加速器上运行,从而导致例如2小时的压缩的执行时间,但能量消耗为300瓦特小时。如果工作量管理器134评估可以满足批窗口并可以合理满足能量窗口,它可以决定将工作量移动到服务器上(假设服务器是节能的)。SLA还可以包括用于批窗口和能量窗口之间的优先次序区分的字段。而且,对于这样的工作量,移动性只有在任务完成之后才会完成,且状态不会被保持。
对于具有长时间运行的计算的工作量,这些工作量可以包括初始启动数据,且不执行工作量移动性,除非执行条件例如交叉点(cross-over point)被满足。这些工作量可以用批时间窗口或能量窗口规范来初始化,从而只有在到达这些窗口时这些工作量才被迁移。但是,在迁移工作量之前可能需要执行检查点(checkpoint)。该工作量类型可以仅支持有限的检查点位置,在所述位置处可以追求移动性。
如以上所讨论的,在传统的混合计算环境中,计算密集的工作量一般仅调度在加速器上,而不调度在服务器系统上。但是,本发明的多个优选实施例的混合系统112利用了服务器系统处理器114在很多情况下具有补充加速器处理器116的能力这一事实。例如,服务器系统处理器114可以包括额外的资源或计算操作,其形式为分配的“休眠”(dormant)MIPS(每秒百万指令),这是当前未被使用的预购的MIPS;未使用的浮点操作能力;或者在处理器被“阻塞”以完成某个IO时未使用的处理器能力。因此,工作量管理器118可以利用该服务器系统的“净空间”以代理方式执行数据并行加速器工作量。换句话说,工作量管理器118通过动态工作量重新分配器将先前调度在加速器104上的工作量重新分配到服务器系统102。这些服务器系统处理器114用作代理处理器以与加速器处理器116上剩余的工作量并行地执行这些重新分配的工作量。换句话说,服务器处理器的未使用能力可被用于执行加速器内核或工作量。
此外,服务器系统102和加速器104可以互相“窃取”工作量。例如,服务器系统102和加速器104的每个工作量队列136、138可以交叉链接。换句话说,服务器系统102可以访问加速器104的工作量队列138,且加速器104可以访问服务器系统102的工作量队列136。服务器系统102和加速器104取得被分配给另一个系统的工作量,因为这些队列136、138位于在服务器系统104和加速器104之间共享的存储器区域中。对于每个工作量队列,该存储器区域位于服务器系统102和加速器104上。
如图4所示,这些队列136、138可以包括“运行”队列404、406和“即将运行”队列408、410。“运行”队列指示当前正在相应系统102、104上运行的工作量。“即将运行”队列408、410指示当前没有运行但在队列中等待被执行的工作量。当服务器系统112上的处理器114已完成其分配的工作量并确定加速器工作量队列138具有等待被执行的工作量时,服务器系统114于是可以通过动态工作量重新分配器132,从加速器工作量队列138取得工作并在服务器系统102上执行该工作量。加速器104也可以执行类似的操作,其中,工作量管理器118从服务器系统工作量队列136取得工作量并将它动态地重新分配给加速器104。此外,如果服务器系统工作量队列136中的工作量是加速器工作量且这些工作量没有被高效地执行,则加速器104可以取回这些工作量。一旦其性能/能量度量在给定阈值之上,任务被取走的系统102、104可以重新要求这些任务。
在另一实施例中,通过动态工作量重新分配器132,工作量管理器118可以基于最终期限/性能和能量要求来重新分配工作量。例如,SLA120可以包括任务最终期限要求、性能要求和能量要求。动态工作量重新分配器132可以监视服务器系统102和加速器104上的当前工作量,并确定这些要求是否被满足。如果动态工作量重新分配器132确定对于给定的工作量这些要求中的一个或多个不会被满足,动态工作量重新分配器132将给定的工作量动态地迁移到其他系统(即服务器系统102或加速器104),从而SLA要求可被实现。换句话说,工作量被动态地重新分配,以满足工作量的SLA。SLA的任何变化都会触发工作量跨混合系统112的动态分配。
工作量管理器118还可以结合上述工作量“窃取”和重新分配的方面。例如,由于工作量是数据并行的,服务器系统102或加速器104只能“窃取”一部分工作量或与工作量相关的数据。执行类似功能的内核可以在主机或加速器上运行。服务器和加速器可以从服务器或加速器的即将运行队列“窃取”输入数据(还称为问题输入数据)而不是整个内核。这是可能的,因为“窃取”输入问题数据的服务器或加速器正在运行同一功能的副本。服务器或加速器还可以从当前在运行的内核窃取数据部分。为了使这变得可能,内核将(运行队列条目中的)assist_flag字段设置为<yes>,并提供数据位置作为(起始地址,结束地址)元组的集合。窃取数据部分的内核可以提供其标识符和位置,从而它可以参与“被窃取”的内核可能需要的任何同步活动。这是有利的,因为系统可能不能处理整个工作量。但是,服务器系统102或加速器104仍然需要遵守SLA120的要求。例如,考虑要求服务器系统102和/或加速器104满足某个能量要求的SLA。服务器系统102和加速器104可以具有净空间来“窃取”工作量或工作量部分,但是如果服务器系统102或加速器104不能满足SLA的能量要求,工作量管理器118防止服务器系统102和加速器104取得该工作量。因此,基于性能和/或能量度量的“窃取”阈值可被用于允许或不允许工作量窃取。可以看到,“窃取”可以被用于满足SLA120指示的最终期限和能量目标。工作量或工作量部分以及/或相应的数据被窃取,以维持吞吐量计算SLA。如果在网络108中窃取工作量的任务的成本将会降低吞吐量计算SLA的性能属性,则工作量管理器118可以防止该任务被窃取。
图5示出了用于在服务器系统102和加速器104之间重新分配已分配的工作量的混合系统112的一种配置。特别地,图5示出了服务器系统处理器502、504、506,其包括跨平台并行编程OpenCL调用地址空间,以及服务器系统处理器508、510、512。服务器系统处理器508、510、512每个包括一个或多个计算内核514、516、518。加速器104每个包括一个或多个OpenCL设备,例如计算内核520、522、524,且这些设备中的每个可以运行一个或多个计算内核。伪OpenCL设备直接在服务器处理器上运行,而不是在使用互连附加的加速器上运行。伪OpenCL设备可以直接在与调用地址空间具有相同位置的502、504和506上运行。服务器可以实例化伪OpenCL设备,以与在加速器设备上运行的内核一起运行内核。这允许获得更高的吞吐量。服务器可以基于性能和能量SLA属性来决定伪OpenCL设备和加速器OpenCL设备的混合。如果服务器比加速器更为节能,则工作量管理器可以在服务器上实例化更多的伪OpenCL设备以满足能量目标。严厉的性能SLA可要求内核直接在加速器上执行,而不使用任何伪OpenCL内核。只有当“净空间”(以MIPS或FLOPS表示)可用时,工作量管理器还可以选择在伪OpenCL设备上发起OpenCL内核。
伪设备508、510、512沿着跨平台并行编程调用者栈(caller stack)515来执行,并向调用者栈514将自己展示为普通设备,但在服务器系统102上执行。调用者栈515为每个设备514、516、518、520、522、524维护队列136、138。调用者栈515可以基于来自如上讨论的工作量管理触发器的输入(例如性能度量、能量度量等)在伪设备508、510、512和正常设备502、504、506之间重新分配输入数据。例如,对加速器104进行的用于执行工作量的OpenCL调用517可以由服务器系统102上的伪跨平台并行编程设备514、516、518满足。类似地,如果异构任务跨伪设备514、516、518和加速器跨平台并行编程设备520、522、524执行,可以基于以上所讨论的工作量管理触发器来重新分配任务和数据项目。内核调度器519调度服务器系统102上的物理加速器计算资源(处理器502、504、506)或伪加速器计算资源(例如处理器/内核508/514、510/516、512/518)或者加速器以满足内核调用。
此外,混合系统112的配置允许混合系统的更容易和更高效的测试和调试。例如,因为混合系统112包括跨平台并行编程OpenCL设备(即计算内核),其是本地的(即在服务器系统102上)以及远程的(即在加速器104上)。由于涉及的网络元件108,该系统的测试会是麻烦的。但是,图5中示出的配置克服了这些问题。远程加速器OpenCL设备作为伪OpenCL设备直接在服务器上运行。这可能导致更差的性能,但所有OpenCL设备可以在服务器的统一共享存储器映像上运行。与远程加速器之间的网络事务作为服务器的统一共享存储器结构中的共享存储器操作来执行。通过移除网络方面并在服务器系统102中本地运行一切,测试和调试变得更简单和更高效。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种编程语言或其组合来编写用于执行本发明操作的计算机程序代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++,还包括常规的过程式编程语言—诸如”C”语言或类似的编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
操作流程图
现在参考图6-12,图中的流程图和框图示出了根据本发明的多种优选实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图和框图中的每个框可表示代码的模块、片段或部分,其包含用于实现指定的逻辑功能的一个或多个可执行指令。还需要注意的是,在某些可替代实现中,框中表示的功能可以以和图中示出的不同顺序来实现。例如,相继示出的两个框事实上可以被基本同时执行,或这些框有时可以以相反的顺序来执行,这取决于涉及的功能。还应注意,框图和/或流程图说明中的每个框、以及框图和/或流程图说明中框的组合可以由执行指定功能或动作的专用的基于硬件的系统来实现,或由专用硬件和计算机指令的组合来实现。
图6是示出如上所讨论的在混合计算环境中提供高吞吐量计算的一个例子的操作流程图。图6的操作流程开始于步骤602并直接进入步骤604。在步骤604,工作量管理器118分析与混合系统112相关的一组高吞吐量计算SLA120。在步骤606,工作量管理器118监视第一组资源,例如但不限于计算内核。在步骤606,工作量管理器118监视第二组资源,例如但不限于计算内核。在步骤610,工作量管理器118基于该监视来跨第一组资源中的至少一个资源以及第二组资源中的至少一个资源动态地调度一组并行工作量任务,由此基本满足该组高吞吐量SLA120。控制流然后在步骤612退出。
图7是示出如上所讨论的在混合计算环境中提供高吞吐量计算的另一例子的操作流程图。图7的操作流程开始于步骤702并直接进入步骤704。在步骤704,工作量管理器118检索与混合系统112相关的一组高吞吐量计算SLA120。在步骤706,工作量管理器118维护与在服务器102上调度的第一组数据并行工作量任务相关的第一组队列136。在步骤708,工作量管理器118维护与在一组加速器系统104上调度的第二组数据并行工作量任务相关的第二组队列138。在步骤710,工作量管理器118确定在该服务器系统102或者该组加速器系统104上的一组资源可用。在步骤712,工作量管理器118响应于该确定来动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务中的一个的至少一部分,由此基本满足该组高吞吐量计算SLA120。需要注意的是,如上所讨论的,工作量可被窃取而不是被动态地重新调度。控制流然后在步骤714退出。
图8是示出如上所讨论的通过重新分配工作量在混合计算环境中提供高吞吐量计算的一个例子的操作流程图。图8的操作流程开始于步骤802,并直接进入步骤804。在步骤804,工作量管理器118监视在服务器系统102和加速器系统104中的每个上调度的一组工作量。在步骤806,工作量管理器118确定是否至少一个工作量在系统102、104中的一个上超过最高优先级SLA限制的阈值。需要注意的是,对于具有吞吐量SLA、能量SLA和批窗口SLA的工作量,区分优先次序是可能的。最高优先级SLA限制是指上述三个SLA类型的具有最高优先级的SLA。如果该确定的结果是否定的,控制流返回步骤804。如果该确定的结果是肯定的,在步骤808,工作量管理器118确定工作量是否很可能在具有用于一个额外工作量的资源能力的第二系统上满足最高SLA优先级限制。如果该确定的结果是否定的,控制流回到步骤806。如果该确定的结果是肯定的,在步骤810,工作量管理器118将该至少一个工作量动态地重新分配给第二系统102、104。控制流然后在步骤812退出。
图9是示出如上所讨论的基于SLA来重新分配工作量以在混合计算环境中提供高吞吐量计算的一个例子的操作流程图。图9的操作流程开始于步骤902,并直接进入步骤904。在步骤904,工作量管理器118监视在服务器系统102和加速器系统104中的每个上调度的一组工作量。在步骤906,工作量管理器118确定系统102、104中的第一个上的资源具有用于至少一个额外工作量的能力。在步骤908,工作量管理器118确定重新分配来自系统102、104中的第二个的一个额外工作量是否会违反SLA要求。如果该确定的结果是肯定的,控制流在步骤910退出。如果该确定的结果是肯定的,在步骤912,工作量管理器118将目前在系统102、104中的第二个上调度的工作量重新分配给系统102、104中的第一个上的资源。控制流然后在步骤914退出。
图10是示出如上所讨论的在混合计算环境中的集群工作量的一个例子的操作流程图。图10的操作流程开始于步骤1002并直接进入步骤1004。在步骤1004,工作量管理器118分析多个工作量。在步骤1006,工作量管理器118识别所述多个工作量中执行基本类似的数据并行操作的一组工作量。在步骤1008,工作量管理器118将所述一组工作量分组为单个工作量集群。在步骤1010,工作量管理器118识别集群中互相依赖的工作量。在步骤1012,工作量管理器118同时调度集群中的工作量,并临时排列互相依赖的工作量。控制流然后在步骤1014退出。
图11是示出如上所讨论的在混合计算环境中迁移工作量的一个例子的操作流程图。图11的操作流程开始于步骤1102并直接进入步骤1104。在步骤1104,工作量管理器118监视在加速器104上调度的一组工作量。在步骤1106,工作量管理器118识别用于与该组工作量相关的工作量类型的一组执行条件。或者,SLA要求阈值(例如但不限于性能阈值和/或能量阈值)也可以被识别。在步骤1108,工作量管理器118确定执行条件是否发生(并且/或者阈值是否被满足)。如果该确定的结果是否定的,工作量管理器继续确定条件或阈值是否被满足。如果该确定的结果是肯定的,在步骤1110,工作量管理器118保存将与该条件和/或阈值相关的工作量迁移到服务器系统102所需的工作量数据。在步骤1112,工作量管理器118然后将工作量迁移到服务器系统102,并使用保存的工作量数据来继续执行该工作量。控制流然后在步骤1114退出。
图12是示出如上所讨论的在混合计算环境中配置服务器系统以便执行加速器工作量的一个例子的操作流程图。图12的操作流程开始于步骤1202并直接进入步骤1204。在步骤1204,工作量管理器118在服务器系统102上分配多个伪加速器资源508、510、512。伪加速器资源和物理加速器资源的混合和次序是从吞吐量计算、能量SLA和批窗口SLA导出的。在步骤1206,任务调用在加速器系统104或伪加速器系统上的计算内核。在步骤1208,内核调度器519在服务器系统102或加速器上调度物理加速器计算资源或伪加速器计算资源,以满足内核调用。控制流然后在步骤1210退出。
信息处理系统
图13是示出可在如上关于图1所讨论的操作环境100中使用的信息处理系统1300的更详细的视图的框图。信息处理系统1300基于适于实现本发明的一个或多个优选实施例的合适配置的处理系统。类似地,任何合适配置的处理系统可以被本发明的优选实施例用作信息处理系统1300。需要注意的是,信息处理系统1300可以是具有如图1所示的各自的组件的服务器系统102或加速器系统104。
信息处理系统1300包括计算机1302。计算机1302具有与主存储器1306、大容量存储接口1308和网络适配器硬件1310连接的处理器1304(例如处理器114或116)。系统总线1312互连这些系统组件。在一个实施例中,主存储器1306包括服务器系统102的组件(例如工作量管理器118(及其组件)、SLA120和工作量队列136),或者加速器104的组件(例如如上讨论的工作量队列138)。
尽管被示为同时位于主存储器1306中,很清楚主存储器1306的各个组件不需要在所有时间或甚至在同一时刻完全位于主存储器1306中。在一个实施例中,信息处理系统1300使用传统的虚拟寻址机制,以允许程序表现为似乎它们访问在此被称为计算机系统存储器的大型的单个存储实体,而不是访问多个较小的存储实体,例如主存储器1306和数据存储设备1316。注意到术语“计算机系统存储器”在这里被用于一般地指信息处理系统1300的整个虚拟存储器。
大容量存储接口1308被用于使大容量存储设备(例如大容量存储设备1314)连接到信息处理系统1300。数据存储设备的一个特定类型是例如CD/数字视频盘(DVD)驱动器的光驱动器,其可以被用于向例如(但不限于)CD/DVD1316的计算机可读介质或存储产品存储数据或从其读取数据。数据存储设备的另一类型是被配置为支持例如新技术文件系统(NTFS)类型文件系统操作的数据存储设备。
尽管仅为计算机1302示出了一个CPU1304,具有多个CPU的计算机系统也可以被同样有效地使用。本发明的优选实施例还包含接口,每个接口包括被用于从CPU1304卸载处理的单独的、完全编程的微处理器。主存储器中包含的操作系统(未示出)是合适的多任务操作系统,例如Windows XP和Windows Server2003操作系统。Linux是Linus Torvalds在美国、其他国家或这两者的注册商标。UNIX是开放组织(The Open Group)在美国和其他国家的注册商标。Microsoft和Windows以及Windows徽标是微软公司在美国、其他国家或这两者的商标。本发明的优选实施例能够使用任何其他合适的操作系统。本发明的一些优选实施例利用例如面向对象框架机制的架构,其允许操作系统(未示出)的组件的指令在信息处理系统1300中的任何处理器上执行。网络适配器硬件1310被用于提供到网络108的接口。本发明的优选实施例能够适应于和任何数据通信连接(包括今天的模拟和/或数字技术或通过未来的网络机制)工作。
尽管本发明的示例性优选实施例是在完全功能的计算机系统的上下文中描述的,本领域普通技术人员将理解,各种实施例能够通过CD或DVD(例如CD1316、CD ROM)或其他形式的可记录介质或通过任何类型的电子传输机制,作为程序产品来分发。
非限制的例子
尽管已经公开了本发明的特定优选实施例,本领域普通技术人员将理解可对这些特定实施例做出改变,而不脱离本发明的范围。因此本发明的范围不限于特定实施例,且所附权利要求书旨在涵盖本发明范围内的任何和所有这样的应用、修改和实施例。
尽管已在完全计算机系统的上下文中讨论了本发明的各种示例性实施例,本领域普通技术人员将理解,各种实施例能够通过CD或DVD(例如CD、CD-ROM)或其他形式的可读介质,以及/或根据可替代实施例,通过任何类型的电子传输机制,作为计算机可读存储介质或程序产品而被分发。
为避免疑问,在说明书和权利要求书通篇中使用的术语“包括”不应被理解为“仅由…组成”。
Claims (19)
1.一种使用信息处理系统的用于管理用于混合处理系统的高吞吐量计算环境中的工作量的方法,该方法包括以下步骤:
检索一组高吞吐量计算服务级别协议(SLA),该组高吞吐量计算SLA与包括至少一个服务器系统和一组加速器系统的混合处理系统有关,所述至少一个服务器系统包括第一架构,该组加速器系统中的每个包括与所述第一架构不同的第二架构;
识别在服务器系统上调度的第一组数据并行工作量任务以及用该组加速器系统调度的第二组数据并行工作量任务;
确定该服务器系统和该组加速器系统中的第一个处的一组资源当前可获得;以及
响应于确定步骤,在该至少一个服务器系统和该组加速器系统中的第二个上动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务中的一个的至少一部分,该动态地重新调度基本上满足该组高吞吐量计算SLA。
2.如权利要求1所述的方法,还包括以下步骤:
维持与第一组数据并行工作量任务和第二组数据并行工作量任务有关的一组队列,其中第一组数据并行工作量任务和第二组数据并行工作量任务中的每个任务与该组队列中的项有关。
3.如权利要求2所述的方法,还包括以下步骤:
将该组队列映射到在该至少一个服务器系统和该组加速器系统之间共享的存储器。
4.如权利要求2或3所述的方法,其中动态地重新调度的步骤还包括以下步骤:
监视该组队列;
响应于所述监视步骤,确定该组队列中的第一队列包括等待被执行的第一组数据并行工作量任务中的至少一个数据并行工作量任务;
确定该组资源当前在该组加速器系统处可获得;以及
响应于确定该组资源当前在该组加速器系统处可获得,在该组加速器系统上重新调度第一组数据并行工作量任务中的至少一个数据并行工作量任务。
5.如权利要求2到4中的任一项所述的方法,其中动态地重写调度的步骤还包括:
监视该组队列;
响应于所述监视步骤,确定该组队列中的第二队列包括等待被执行的第二组数据并行工作量任务中的至少一个数据并行工作量任务;以及
确定该组资源当前在该至少一个服务器系统处可获得;
响应于确定该资源组当前在该至少一个服务器系统处可获得,在该至少一个服务器系统上重新调度与该第二组数据并行工作量任务中的至少一个数据并行工作量任务有关的一组输入数据的至少一部分。
6.如前述任一项权利要求所述的方法,其中该至少一个服务器系统和该组加速器系统中的第一个是该至少一个服务器系统,且其中该至少一个服务器系统和该组加速器系统中的第二个是该组加速器系统。
7.如前述任一项权利要求所述的方法,其中该至少一个服务器系统和该组加速器系统中的第一个是该组加速器系统,且其中该至少一个服务器系统和该组加速器系统中的第二个是该至少一个服务器系统。
8.如前述任一项权利要求所述的方法,其中该至少一个服务器系统和组加速器系统中的第一个是该至少一个服务器系统,且其中确定该组资源当前可获得的步骤还包括以下步骤:
确定该至少一个服务器系统包括一组可获得的计算操作。
9.如权利要求8所述的方法,其中该组可获得的计算操作为以下各项中的至少一个:
预先购买的每秒百万指令运算;
未使用的浮点运算;以及
来自输入/输出阻塞状态的未使用的处理器能力。
10.如前述任一项权利要求所述的方法,其中,动态地重新调度的步骤还包括以下步骤:
将该组高吞吐量计算SLA中所指示的性能吞吐量要求与当前性能吞吐率进行比较,该当前性能吞吐率与第一组数据并行工作量任务和第二组数据并行工作量任务中的至少一个关联;以及
响应于该比较步骤,确定混合处理系统的当前性能吞吐率低于给定阈值,
其中,动态地重新调度的步骤是响应于确定混合处理系统的当前性能吞吐率低于给定阈值,并提高当前性能吞吐率以至少基本满足给定阈值。
11.一种用于管理用于混合处理系统的高吞吐率计算环境中的工作量的系统,该系统包括:
存储器;
通信地耦合到该存储器的处理器;以及
通信地耦合到该存储器和处理器的工作量管理器,该工作量管理器包括:
检索组件,用于检索一组高通量计算服务级别协议(SLA),该组高吞吐量计算SLA与包括至少一个服务器系统和一组加速器系统混合处理系统相关,该至少一个服务器系统包含第一架构,该组加速器系统中的每个包含与第一架构不同的第二架构;
识别组件,用于识别在该至少一个服务器系统上调度的第一组数据并行工作量任务以及用该组加速器系统调度的第二组数据并行工作量任务;
确定组件,用于确定该至少一个服务器系统和该组加速器系统中的第一个处的一组资源当前可获得;以及
重新调度组件,用于响应于确定组件的确定,在该至少一个服务器系统和该组加速器系统中的第二个上动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务中的一个的至少一部分,该动态地重新调度基本满足该组高吞吐量计算SLA。
12.一种用于管理用于混合处理系统的高吞吐量计算环境中的工作量的系统,所述系统包括:
存储器;
通信地耦合到该存储器的处理器;以及
通信地耦合到该存储器和处理器的工作量管理器,该工作量管理器适合于执行包括以下各项的方法:
检索一组高吞吐量计算服务级别协议(SLA),该组高吞吐量计算SLA与包括至少一个服务器系统和一组加速器系统的混合处理系统关联,该至少一个服务器系统包括第一架构,该组加速器系统中的每个包括与第一架构不同的第二架构;
识别在该至少一个服务器系统上调度的第一组数据并行工作量任务和用该加速器系统调度的第二组数据并行工作量任务;
确定该至少一个服务器系统和该组加速器系统中的第一个处的一组资源当前可获得;以及
响应于所述确定,在该至少一个服务器系统和组组加速器系统中的第二个上动态地重新调度第一组数据并行工作量任务和第二组数据并行工作量任务中的一个的至少一部分,该动态地重新调度基本满足该组高吞吐量计算SLA。
13.如权利要求12所述的系统,该方法还包括:
维持与第一组数据并行工作量任务和第二组数据并行的工作量任务有关的一组队列,其中第一组数据并行工作量任务和第二组数据并行工作任务中的每个任务与队列组中的项有关;以及
将该组队列映射到在该至少一个服务器系统和该组加速器系统间共享的存储器。
14.如权利要求13所述的系统,其中所述动态地重新调度还包括:
监视该组队列;
基于所述监视,确定该组队列中的第一队列包括等待被执行的第一组数据并行工作量任务中的至少一个数据并行工作量任务;
确定该组资源当前在该组加速器系统处可获得;以及
响应于确定该组资源当前在该组加速器系统处可获得,在该组加速器上重新调度与该第一组数据并行工作量任务中的至少一个数据并行工作量任务有关的一组输入数据的至少一部分。
15.如权利要求14或15所述的系统,其中所述动态地重新调度还包括:
监视该组队列;
响应于所述监视,确定该队列组中的第二队列包括等待被执行的第二组数据并行工作量任务中的至少一个数据并行工作量任务;
确定该资源组当前在该至少一个服务器系统处可获得;以及
响应于确定该资源组当前在该至少一个服务器系统处可获得,在该至少一个服务器系统上重新调度该第二组数据并行工作量任务中的至少一个数据并行工作量任务。
16.如权利要求12到15中任一项所述的系统,其中该至少一个服务器系统和该组加速器系统中的第一个是该至少一个服务器系统,且其中工作量管理器还可操作以确定该至少一个服务器系统包括一组可获得的计算操作。
17.如权利要求12到16中任一个所述的系统,其中所述动态地重新调度还包括:
将该组高吞吐量计算SLA指示的性能吞吐量要求与当前性能吞吐率进行比较,该当前性能吞吐率与第一组数据并行工作量任务和第二组数据并行工作量任务中的至少一个关联;以及
响应于所述比较,确定混合处理系统的当前性能吞吐率低于给定阈值,
其中所述动态地重新调度是响应于确定混合处理系统的当前性能吞吐量低于给定阈值,并提高当前性能吞吐率以至少基本满足给定阈值。
18.一种用于管理用于混合处理系统的高吞吐量计算环境中的工作量的计算机程序产品,该计算机程序产品包括:
可被处理电路读取并存储由处理电路执行以执行根据权利要求1到10中任一项的方法的指令的计算机可读存储介质。
19.一种存储在计算机可读介质并可加载到数字计算机的内部存储器的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行权利要求1-10中任一项的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/872,793 | 2010-08-31 | ||
US12/872,793 US8914805B2 (en) | 2010-08-31 | 2010-08-31 | Rescheduling workload in a hybrid computing environment |
PCT/EP2010/067050 WO2012028213A1 (en) | 2010-08-31 | 2010-11-08 | Re-scheduling workload in a hybrid computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103069390A true CN103069390A (zh) | 2013-04-24 |
CN103069390B CN103069390B (zh) | 2017-02-22 |
Family
ID=43982175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080068826.1A Expired - Fee Related CN103069390B (zh) | 2010-08-31 | 2010-11-08 | 在混合计算环境中重新调度工作量的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8914805B2 (zh) |
CN (1) | CN103069390B (zh) |
DE (1) | DE112010005705T5 (zh) |
GB (1) | GB2496813B (zh) |
WO (1) | WO2012028213A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107710161A (zh) * | 2015-06-09 | 2018-02-16 | 微软技术许可有限责任公司 | 用于增加的工作流优化的独立可联网硬件加速器 |
CN108474578A (zh) * | 2015-11-30 | 2018-08-31 | 耐克斯特拉克尔有限公司 | 电气和机械系统上进行自动调度和执行现场测试的系统和方法 |
CN109726159A (zh) * | 2017-10-30 | 2019-05-07 | 纬创资通股份有限公司 | 连接模块 |
CN112738199A (zh) * | 2020-12-25 | 2021-04-30 | 新东方教育科技集团有限公司 | 调度方法和调度系统 |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464104B2 (en) * | 2010-09-10 | 2013-06-11 | International Business Machines Corporation | Mobility of versioned workload partitions |
US9250962B2 (en) | 2011-01-10 | 2016-02-02 | International Business Machines Corporation | Optimizing energy use in a data center by workload scheduling and management |
US20120324456A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Managing nodes in a high-performance computing system using a node registrar |
US8793766B2 (en) | 2012-03-13 | 2014-07-29 | International Business Machines Corporation | Method and apparatus for security-aware elasticity of application and services |
US9081610B2 (en) * | 2012-06-18 | 2015-07-14 | Hitachi, Ltd. | Method and apparatus to maximize return on investment in hybrid cloud environment |
US20150286508A1 (en) * | 2012-11-26 | 2015-10-08 | Jason A. Stowe | Transparently routing job submissions between disparate environments |
US10474502B2 (en) * | 2013-01-14 | 2019-11-12 | Microsoft Technology Licensing, Llc | Multi-tenant license enforcement across job requests |
US9152467B2 (en) * | 2013-01-18 | 2015-10-06 | Nec Laboratories America, Inc. | Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors |
US9367357B2 (en) * | 2013-01-18 | 2016-06-14 | Nec Corporation | Simultaneous scheduling of processes and offloading computation on many-core coprocessors |
EP3242210B1 (en) * | 2013-03-15 | 2022-08-03 | INTEL Corporation | Work stealing in heterogeneous computing systems |
US9223816B2 (en) * | 2013-05-22 | 2015-12-29 | International Business Machines Corporation | Opening a data set |
US10275276B2 (en) | 2013-08-19 | 2019-04-30 | International Business Machines Corporation | Migrating jobs from a source server from which data is migrated to a target server to which the data is migrated |
US9456071B2 (en) * | 2013-11-12 | 2016-09-27 | At&T Intellectual Property I, L.P. | Extensible kernel for adaptive application enhancement |
US9270659B2 (en) | 2013-11-12 | 2016-02-23 | At&T Intellectual Property I, L.P. | Open connection manager virtualization at system-on-chip |
US20150145871A1 (en) * | 2013-11-22 | 2015-05-28 | Nvidia Corporation | System, method, and computer program product to enable the yielding of threads in a graphics processing unit to transfer control to a host processor |
US9652294B2 (en) | 2013-11-25 | 2017-05-16 | International Business Machines Corporation | Cross-platform workload processing |
US9626226B2 (en) | 2013-11-25 | 2017-04-18 | International Business Machines Corporation | Cross-platform workload processing |
US10719562B2 (en) * | 2013-12-13 | 2020-07-21 | BloomReach Inc. | Distributed and fast data storage layer for large scale web data services |
KR102205836B1 (ko) * | 2014-01-29 | 2021-01-21 | 삼성전자 주식회사 | 태스크 스케줄링 방법 및 장치 |
EP2911057A1 (en) * | 2014-02-20 | 2015-08-26 | Rovio Entertainment Ltd | Stateful service with partial replication |
US10455041B2 (en) | 2014-02-20 | 2019-10-22 | Rovio Entertainment | Stateful service with partial replication |
US10509686B2 (en) * | 2014-03-26 | 2019-12-17 | Unisys Corporation | Distributable computational units in a continuous computing fabric environment |
US9800651B2 (en) | 2014-04-04 | 2017-10-24 | Ca, Inc. | Application-specific assessment of cloud hosting suitability |
US10218645B2 (en) * | 2014-04-08 | 2019-02-26 | Mellanox Technologies, Ltd. | Low-latency processing in a network node |
US9280383B2 (en) * | 2014-06-12 | 2016-03-08 | International Business Machines Corporation | Checkpointing for a hybrid computing node |
US9400687B2 (en) | 2014-12-11 | 2016-07-26 | International Business Machines Corporation | Method and system for dynamic pool reallocation |
US9904574B2 (en) * | 2014-12-23 | 2018-02-27 | Successfactors, Inc | Parallel computing without requiring antecedent code deployment |
US20160378551A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Adaptive hardware acceleration based on runtime power efficiency determinations |
US10768935B2 (en) * | 2015-10-29 | 2020-09-08 | Intel Corporation | Boosting local memory performance in processor graphics |
CN105760220B (zh) * | 2016-01-29 | 2019-05-17 | 湖南大学 | 一种基于混合内存的任务与数据调度方法和装置 |
US10268523B2 (en) * | 2016-03-11 | 2019-04-23 | City University Of Hong Kong | System and method for operating a server farm |
US10063493B2 (en) * | 2016-05-16 | 2018-08-28 | International Business Machines Corporation | Application-based elastic resource provisioning in disaggregated computing systems |
US10338970B2 (en) | 2016-09-20 | 2019-07-02 | International Business Machines Corporation | Multi-platform scheduler for permanent and transient applications |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US10320677B2 (en) * | 2017-01-02 | 2019-06-11 | Microsoft Technology Licensing, Llc | Flow control and congestion management for acceleration components configured to accelerate a service |
US10326696B2 (en) | 2017-01-02 | 2019-06-18 | Microsoft Technology Licensing, Llc | Transmission of messages by acceleration components configured to accelerate a service |
US10740146B2 (en) | 2017-02-10 | 2020-08-11 | Xilinx, Inc. | Migrating virtual machines between compute systems by transmitting programmable logic accelerator state |
US20180287949A1 (en) * | 2017-03-29 | 2018-10-04 | Intel Corporation | Throttling, sub-node composition, and balanced processing in rack scale architecture |
EP3607526A4 (en) * | 2017-04-01 | 2020-11-04 | INTEL Corporation | HYBRID TECHNOLOGY SHARED BY EXECUTION UNITS FOR ACCELERATED COMPUTING ON GRAPHIC PROCESSORS |
EP3642765A4 (en) | 2017-06-19 | 2021-04-07 | Rigetti & Co., Inc. | DISTRIBUTED QUANTUM COMPUTER SYSTEM |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US10620991B1 (en) * | 2018-01-31 | 2020-04-14 | VirtuStream IP Holding Company | Workload migration in multi-cloud environments |
US11010145B1 (en) | 2018-02-21 | 2021-05-18 | Rigetti & Co, Inc. | Retargetable compilation for quantum computing systems |
US10877766B2 (en) * | 2018-05-24 | 2020-12-29 | Xilinx, Inc. | Embedded scheduling of hardware resources for hardware acceleration |
US10831627B2 (en) | 2018-07-23 | 2020-11-10 | International Business Machines Corporation | Accelerator monitoring and testing |
US10817339B2 (en) * | 2018-08-09 | 2020-10-27 | International Business Machines Corporation | Accelerator validation and reporting |
US10942824B2 (en) * | 2018-10-08 | 2021-03-09 | Hewlett Packard Enterprise Development Lp | Programming model and framework for providing resilient parallel tasks |
US10705993B2 (en) | 2018-11-19 | 2020-07-07 | Xilinx, Inc. | Programming and controlling compute units in an integrated circuit |
US11271994B2 (en) * | 2018-12-28 | 2022-03-08 | Intel Corporation | Technologies for providing selective offload of execution to the edge |
US11494237B2 (en) * | 2019-06-26 | 2022-11-08 | Microsoft Technology Licensing, Llc | Managing workloads of a deep neural network processor |
US11675630B2 (en) * | 2019-08-15 | 2023-06-13 | Intel Corporation | Methods and apparatus to configure heterogenous components in an accelerator |
CN113760472A (zh) * | 2020-06-03 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 推数任务调度的方法和装置 |
US11386034B2 (en) | 2020-10-30 | 2022-07-12 | Xilinx, Inc. | High throughput circuit architecture for hardware acceleration |
KR20220107621A (ko) * | 2021-01-25 | 2022-08-02 | 삼성전자주식회사 | 가속기 자원 관리 방법 및 장치 |
CN115437739A (zh) * | 2021-06-02 | 2022-12-06 | 伊姆西Ip控股有限责任公司 | 虚拟化系统的资源管理方法、电子设备和计算机程序产品 |
RU2769967C1 (ru) * | 2021-06-08 | 2022-04-11 | Федеральное государственное бюджетное образовательное учреждение высшего образования «Юго-Западный государственный университет» | Устройство поиска нижней оценки размещения в гибридных многопроцессорных системах при направленной передаче информации |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008127622A2 (en) * | 2007-04-11 | 2008-10-23 | Apple Inc. | Data parallel computing on multiple processors |
WO2008127604A2 (en) * | 2007-04-11 | 2008-10-23 | Apple Inc. | Shared stream memory on multiple processors |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5031089A (en) * | 1988-12-30 | 1991-07-09 | United States Of America As Represented By The Administrator, National Aeronautics And Space Administration | Dynamic resource allocation scheme for distributed heterogeneous computer systems |
US6609131B1 (en) | 1999-09-27 | 2003-08-19 | Oracle International Corporation | Parallel partition-wise joins |
US6823351B1 (en) | 2000-05-15 | 2004-11-23 | Sun Microsystems, Inc. | Work-stealing queues for parallel garbage collection |
US7565651B1 (en) | 2000-05-25 | 2009-07-21 | Oracle International Corporation | Parallel task scheduling system for computers |
EP1248431B1 (en) * | 2001-03-27 | 2007-10-31 | Sony Deutschland GmbH | Method for achieving end-to-end quality of service negotiation for distributed multimedia applications |
EP1338956A1 (fr) * | 2002-02-20 | 2003-08-27 | STMicroelectronics S.A. | Dispositif électronique de traitement de données, en particulier processeur audio pour un décodeur audio/vidéo |
US7322034B2 (en) | 2002-06-14 | 2008-01-22 | Hewlett-Packard Development Company, L.P. | Method and system for dynamically allocating computer system resources |
US7167916B2 (en) | 2002-08-30 | 2007-01-23 | Unisys Corporation | Computer OS dispatcher operation with virtual switching queue and IP queues |
US7444632B2 (en) | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
KR100593090B1 (ko) * | 2003-12-11 | 2006-06-26 | 엘지전자 주식회사 | 진공 청소기의 집진 유니트 |
US7694298B2 (en) | 2004-12-10 | 2010-04-06 | Intel Corporation | Method and apparatus for providing virtual server blades |
US7797704B2 (en) | 2005-03-30 | 2010-09-14 | Hewlett-Packard Development Company, L.P. | System and method for performing work by one of plural threads using a lockable resource |
US8286196B2 (en) * | 2007-05-03 | 2012-10-09 | Apple Inc. | Parallel runtime execution on multiple processors |
US8312464B2 (en) | 2007-08-28 | 2012-11-13 | International Business Machines Corporation | Hardware based dynamic load balancing of message passing interface tasks by modifying tasks |
US8607237B2 (en) | 2008-06-02 | 2013-12-10 | Microsoft Corporation | Collection with local lists for a multi-processor system |
US8103480B2 (en) * | 2008-10-31 | 2012-01-24 | Hewlett-Packard Development Company, L.P. | Evaluating service level agreement violations |
-
2010
- 2010-08-31 US US12/872,793 patent/US8914805B2/en not_active Expired - Fee Related
- 2010-11-08 DE DE112010005705T patent/DE112010005705T5/de not_active Ceased
- 2010-11-08 GB GB1303478.0A patent/GB2496813B/en not_active Expired - Fee Related
- 2010-11-08 WO PCT/EP2010/067050 patent/WO2012028213A1/en active Application Filing
- 2010-11-08 CN CN201080068826.1A patent/CN103069390B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008127622A2 (en) * | 2007-04-11 | 2008-10-23 | Apple Inc. | Data parallel computing on multiple processors |
WO2008127604A2 (en) * | 2007-04-11 | 2008-10-23 | Apple Inc. | Shared stream memory on multiple processors |
WO2008127622A3 (en) * | 2007-04-11 | 2009-03-19 | Apple Inc | Data parallel computing on multiple processors |
EP2135163A2 (en) * | 2007-04-11 | 2009-12-23 | Apple, Inc. | Data parallel computing on multiple processors |
CN101657795A (zh) * | 2007-04-11 | 2010-02-24 | 苹果公司 | 多处理器上的数据并行计算 |
Non-Patent Citations (1)
Title |
---|
ALECIO P.D.BINOTTO,ET AL.: "Dynamic Self-Rescheduling of Tasks over a Heterogeneous Platform", <2008 INTERNATIONAL CONFERENCE ON RECONFIGURABLE COMPUTING AND FPGAS> * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107710161A (zh) * | 2015-06-09 | 2018-02-16 | 微软技术许可有限责任公司 | 用于增加的工作流优化的独立可联网硬件加速器 |
CN107710161B (zh) * | 2015-06-09 | 2021-06-25 | 微软技术许可有限责任公司 | 用于增加的工作流优化的独立可联网硬件加速器 |
CN108474578A (zh) * | 2015-11-30 | 2018-08-31 | 耐克斯特拉克尔有限公司 | 电气和机械系统上进行自动调度和执行现场测试的系统和方法 |
CN108474578B (zh) * | 2015-11-30 | 2020-09-11 | 耐克斯特拉克尔有限公司 | 电气和机械系统上进行自动调度和执行现场测试的系统和方法 |
CN109726159A (zh) * | 2017-10-30 | 2019-05-07 | 纬创资通股份有限公司 | 连接模块 |
CN112738199A (zh) * | 2020-12-25 | 2021-04-30 | 新东方教育科技集团有限公司 | 调度方法和调度系统 |
CN112738199B (zh) * | 2020-12-25 | 2023-02-17 | 新东方教育科技集团有限公司 | 调度方法和调度系统 |
Also Published As
Publication number | Publication date |
---|---|
GB2496813A (en) | 2013-05-22 |
WO2012028213A1 (en) | 2012-03-08 |
DE112010005705T5 (de) | 2013-05-02 |
US8914805B2 (en) | 2014-12-16 |
GB201303478D0 (en) | 2013-04-10 |
US20120054771A1 (en) | 2012-03-01 |
GB2496813B (en) | 2017-12-06 |
CN103069390B (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103069390A (zh) | 在混合计算环境中重新调度工作量 | |
CN103069389A (zh) | 混合计算环境中的高吞吐量计算 | |
Warneke et al. | Exploiting dynamic resource allocation for efficient parallel data processing in the cloud | |
Liu et al. | Deadline‐constrained coevolutionary genetic algorithm for scientific workflow scheduling in cloud computing | |
Warneke et al. | Nephele: efficient parallel data processing in the cloud | |
Dupont et al. | An energy aware framework for virtual machine placement in cloud federated data centres | |
Calheiros et al. | Energy-efficient scheduling of urgent bag-of-tasks applications in clouds through DVFS | |
Masdari et al. | Efficient task and workflow scheduling in inter-cloud environments: challenges and opportunities | |
Zhu et al. | Scheduling stochastic multi-stage jobs to elastic hybrid cloud resources | |
US8856795B2 (en) | Reducing costs for a distribution of applications executing in a multiple platform system | |
US8082546B2 (en) | Job scheduling to maximize use of reusable resources and minimize resource deallocation | |
Xu et al. | Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters | |
WO2008025761A2 (en) | Parallel application load balancing and distributed work management | |
Bittencourt et al. | Scheduling service workflows for cost optimization in hybrid clouds | |
Natesan et al. | Multi-objective task scheduling using hybrid whale genetic optimization algorithm in heterogeneous computing environment | |
Ghose et al. | Energy efficient scheduling of scientific workflows in cloud environment | |
Sun et al. | Multi-dimensional resource integrated scheduling in a shared data center | |
Kousalya et al. | Workflow scheduling algorithms and approaches | |
Wang et al. | Dataflow detection and applications to workflow scheduling | |
Badr et al. | Task consolidation based power consumption minimization in cloud computing environment | |
Singh et al. | Energy efficient optimization with threshold based workflow scheduling and virtual machine consolidation in cloud environment | |
Anderson et al. | Value-maximizing deadline scheduling and its application to animation rendering | |
Arafat et al. | Work stealing for GPU‐accelerated parallel programs in a global address space framework | |
Peer Mohamed et al. | An efficient framework to handle integrated VM workloads in heterogeneous cloud infrastructure | |
Mao et al. | Hierarchical model-based associate tasks scheduling with the deadline constraints in the cloud |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170222 Termination date: 20201108 |