用于高度并行作业的回填调度方法和系统的制作方法

文档序号:8412388阅读:744来源:国知局
用于高度并行作业的回填调度方法和系统的制作方法
【技术领域】
[0001] 本发明一般涉及任务管理领域,且更具体地,涉及资源分配。
【背景技术】
[0002] 最现代的并行作业调度器给予作业静态资源分配,即,作业被分配其在其作业脚 本中所请求的独立资源集(在此被称为节点)的数量,并在其执行过程中以专用方式使用 这些资源。基于先来先服务(FCFS)原理的广泛使用的回填算法执行以下操作:(i)以作业 到达作业队列的顺序来维护作业,且如可能按顺序来调度它们;(ii) 一旦作业完成(或到 达,如果当前没有作业运行,且队列中当前没有作业),从队列前端分派作业并为队列中由 于不能获得充分资源而不能运行的第一个作业("队列最高作业")保留资源;(iii)基于 用户估计的运行作业的墙上时间(wall time),计算回填时间窗口(用户运行时估计固有 地是不精确的,这样可能存在由于用户高估运行时导致回填窗口没有被填充的情况);以 及(iv)遍历作业队列并调度适合回填窗口且其执行不会干扰"队列最高作业"的提前资源 保留的作业,(这样的作业应当在保留的"队列最高作业"开始时间前被完成或者仅占据提 前保留不需要使用的资源)。
[0003] 技术计算越来越面向非常大的数据大小,而大数据分析作为尖端技术出现。大数 据分析领域中的大部分作业是高度并行(EP)作业。在并行计算中,高度并行负载(或高度 并行问题)是指需要很少或不需要努力来将问题分为若干并行的子任务的负载。这通常是 并行子任务之间不需要存在依赖性(或通信)的情况。
[0004] 一些传统的调度器使用这样的过程,其中当可获得最小数量的资源时,EP作业就 被调度为开始。这些以旨在最优填充可用资源的方式动态并适应性地调度作业的方法通常 利用概念"可调整大小的作业"的概念。在这样的调度中,作业可缩小或扩大以适应资源可 用性的变化模式。例如,一旦EP作业开始,它持续运行直到EP作业完成。在这期间,EP作 业可以(i)通过向其分配更多的资源来扩大("扩大;以及/或(ii)通过动态拿走一些 资源来缩小("缩小"),例如如果资源被要求用于其他高优先级作业的话。

【发明内容】

[0005] 根据本发明的一方面,存在一种计算机程序产品、系统和/或方法,其执行以下动 作(不是必须按照以下顺序,且不是必须以串行顺序):接收作业的初始调度,包括随时间 被调度在多个节点上的多个作业;确定来自多个作业的第一作业可被拆分为多个子任务, 其可在不同节点上被分别并行执行;将第一作业拆分为多个子任务,并将第一子任务从其 在初始调度中的位置移动到新位置以生成首次修改的调度。
【附图说明】
[0006] 图1是根据本发明的联网计算机系统的第一实施例的示意图;
[0007] 图2是示出至少部分由第一实施例计算机系统执行的过程的流程图;
[0008] 图3是第一实施例计算机系统的一部分的示意图;
[0009] 图4是根据本发明的实施例的作业队列;
[0010] 图5是图4中示出的作业队列的传统执行顺序;
[0011] 图6是根据本发明实施例的高度并行作业;
[0012] 图7是根据本发明实施例的图4示出的作业队列的执行顺序;
[0013] 图8A是展示根据本发明实施例的作业队列执行性能的性能图;以及
[0014] 图8B是展示根据本发明实施例的作业队列执行性能的性能表。
【具体实施方式】
[0015] 具体描述部分被分为以下几个子部分:(i)硬件和软件环境;(ii)第一实施例; (iii)进一步的评价和/或实施例;以及(iv)定义。
[0016] I.硬件和软件环境
[0017] 所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算 机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、 完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方 式,这里可以统称为"电路"、"模块"或"系统"。此外,在一些实施例中,本发明的各个方面 还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介 质中包含计算机可读的程序代码/指令。
[0018] 可以采用计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号 介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、 光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介 质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机 盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪 存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意 合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该 程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0019] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0020] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限 于--无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0021] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的 计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java(请注 意:"Java"一词可能在全世界不同司法辖区中具有商标权,而此处只用来在该商标权成立 的条件下指代该产品或服务的名称)、Smalltalk、C++等,还包括常规的过程式程序设计语 言一诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部 分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程 计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程 计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户计算 机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0022] 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图 和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图 中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计 算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计 算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程 图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0023] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、 其它可编程数据处理装置、或其他设备以特定方式作业,从而,存储在计算机可读介质中的 指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令 的制造品(article of manufacture) 〇
[0024] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备 上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0025] 现在将参考附图详细描述根据本发明的软件和/或方法的可能的硬件和软件环 境的实施例。图1是示出联网的计算机系统100的各个部分的功能性框图,包括:服务器计 算机子系统102 ;客户计算机子系统104、106、108、110和112 ;通信网络114 ;服务器计算机 200 ;通信单元202 ;处理器集204 ;输入/输出(I/O)接口集206 ;存储设备208 ;持久性存 储器210 ;显示设备212 ;外部装置集214 ;随机存取存储器(RAM)设备230 ;高速缓存存储 器232 ;以及程序300。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1