CN104731642B - 用于高度并行作业的回填调度方法和系统 - Google Patents
用于高度并行作业的回填调度方法和系统 Download PDFInfo
- Publication number
- CN104731642B CN104731642B CN201410681942.0A CN201410681942A CN104731642B CN 104731642 B CN104731642 B CN 104731642B CN 201410681942 A CN201410681942 A CN 201410681942A CN 104731642 B CN104731642 B CN 104731642B
- Authority
- CN
- China
- Prior art keywords
- subtask
- backfill
- window
- length
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- 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/5017—Task decomposition
Abstract
用于高度并行作业的回填调度。公开的方法包括:接收初始调度,其包括随时间在多个节点调度上的多个作业;确定第一作业可被拆分为可在不同的节点上被分别并行执行的多个子任务;将第一作业拆分为多个子任务,并将第一子任务从其在初始调度的位置移动到新位置以生成第一修改的调度。
Description
技术领域
本发明一般涉及任务管理领域,且更具体地,涉及资源分配。
背景技术
最现代的并行作业调度器给予作业静态资源分配,即,作业被分配其在其作业脚本中所请求的独立资源集(在此被称为节点)的数量,并在其执行过程中以专用方式使用这些资源。基于先来先服务(FCFS)原理的广泛使用的回填算法执行以下操作:(i)以作业到达作业队列的顺序来维护作业,且如可能按顺序来调度它们;(ii)一旦作业完成(或到达,如果当前没有作业运行,且队列中当前没有作业),从队列前端分派作业并为队列中由于不能获得充分资源而不能运行的第一个作业(“队列最高作业”)保留资源;(iii)基于用户估计的运行作业的墙上时间(wall time),计算回填时间窗口(用户运行时估计固有地是不精确的,这样可能存在由于用户高估运行时导致回填窗口没有被填充的情况);以及(iv)遍历作业队列并调度适合回填窗口且其执行不会干扰“队列最高作业”的提前资源保留的作业,(这样的作业应当在保留的“队列最高作业”开始时间前被完成或者仅占据提前保留不需要使用的资源)。
技术计算越来越面向非常大的数据大小,而大数据分析作为尖端技术出现。大数据分析领域中的大部分作业是高度并行(EP)作业。在并行计算中,高度并行负载(或高度并行问题)是指需要很少或不需要努力来将问题分为若干并行的子任务的负载。这通常是并行子任务之间不需要存在依赖性(或通信)的情况。
一些传统的调度器使用这样的过程,其中当可获得最小数量的资源时,EP作业就被调度为开始。这些以旨在最优填充可用资源的方式动态并适应性地调度作业的方法通常利用概念“可调整大小的作业”的概念。在这样的调度中,作业可缩小或扩大以适应资源可用性的变化模式。例如,一旦EP作业开始,它持续运行直到EP作业完成。在这期间,EP作业可以(i)通过向其分配更多的资源来扩大(“扩大”);以及/或(ii)通过动态拿走一些资源来缩小(“缩小”),例如如果资源被要求用于其他高优先级作业的话。
发明内容
根据本发明的一方面,存在一种计算机程序产品、系统和/或方法,其执行以下动作(不是必须按照以下顺序,且不是必须以串行顺序):接收作业的初始调度,包括随时间被调度在多个节点上的多个作业;确定来自多个作业的第一作业可被拆分为多个子任务,其可在不同节点上被分别并行执行;将第一作业拆分为多个子任务,并将第一子任务从其在初始调度中的位置移动到新位置以生成首次修改的调度。
附图说明
图1是根据本发明的联网计算机系统的第一实施例的示意图;
图2是示出至少部分由第一实施例计算机系统执行的过程的流程图;
图3是第一实施例计算机系统的一部分的示意图;
图4是根据本发明的实施例的作业队列;
图5是图4中示出的作业队列的传统执行顺序;
图6是根据本发明实施例的高度并行作业;
图7是根据本发明实施例的图4示出的作业队列的执行顺序;
图8A是展示根据本发明实施例的作业队列执行性能的性能图;以及
图8B是展示根据本发明实施例的作业队列执行性能的性能表。
具体实施方式
具体描述部分被分为以下几个子部分:(i)硬件和软件环境;(ii)第一实施例;(iii)进一步的评价和/或实施例;以及(iv)定义。
I.硬件和软件环境
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码/指令。
可以采用计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java(请注意:”Java”一词可能在全世界不同司法辖区中具有商标权,而此处只用来在该商标权成立的条件下指代该产品或服务的名称)、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式作业,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
现在将参考附图详细描述根据本发明的软件和/或方法的可能的硬件和软件环境的实施例。图1是示出联网的计算机系统100的各个部分的功能性框图,包括:服务器计算机子系统102;客户计算机子系统104、106、108、110和112;通信网络114;服务器计算机200;通信单元202;处理器集204;输入/输出(I/O)接口集206;存储设备208;持久性存储器210;显示设备212;外部装置集214;随机存取存储器(RAM)设备230;高速缓存存储器232;以及程序300。
在许多方面,服务器计算机子系统102表示本发明中的各个计算机系统。因此,现将在以下段落中讨论计算机子系统102的几个部分。
服务器计算机子系统102可以是膝上型计算机、平板计算机、笔记本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话或任何能够通过网络114与客户机子系统通信的可编程电子设备。程序300是用于创建、管理和控制特定软件功能的机器可读指令和/或数据的集合,这些功能将在以下详细描述部分的第一实施例子部分中详细讨论。
服务器计算机子系统102能够经由网路114与其他计算机子系统通信。网络114可以是例如局域网(LAN)、诸如因特网的广域网(WAN),或这两者组合,且可包括有线、无线或光纤连接。通常,网络114可以是支持服务器和客户机子系统之间的通信的连接和协议的任意组合。
应当理解,图1仅提供了一种实施方式(即,系统100)的描述,且不暗示针对其中不同实施例可被实施的环境进行限制。对于示出的环境可做出许多修改,特别是针对当前的和预测的将来的在云计算、分布式计算、更小计算装置、网络通信等方面的进步。
服务器计算机子系统102被示出为具有许多双箭头的框图。这些双箭头(没有单独的参考标号)表示通信结构(fabric),其提供了子系统102的各种组件之间的通信。这种通信结构可用为在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息而设计的任何架构实施。例如,通信纤维可至少部分用一条或多条总线实施。
存储器208和持久存储器210是计算机可读存储介质。通常,存储器208可包括任何合适的易失性或非易失性计算机可读存储介质。还注意,现在和/或不久的将来,(i)外部设备214可以提供用于子系统的一些或所有存储器;以及/或(ii)子系统102外部的设备可提供用于子系统102的存储器。
程序300被存储在持久存储器210中,以由一个或多个的计算机处理器204访问和/或执行,通常是通过存储器208中的一个或多个。持久存储器210:(i)至少比传输中的信号更持久;(ii)将程序(包括其软件逻辑和/或数据)存储在有形介质(诸如磁性或光学领域)上;以及(iii)显著不如永久存储器持久。或者,数据存储可以比由持久存储器210提供的存储类型更加持久和/或永久。
程序300可包括机器可读和可执行指令和/或实质数据(即,存储在数据库中的数据类型)。在该特定实施例中,持久存储器210包括磁性硬盘驱动器。为了给一些可能的变化命名,持久存储器210可包括固态硬驱动器、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存或能存储程序指令或数字信息的任何其他计算机可读存储介质。
由持久存储器210使用的介质也可是可移除的。例如,可移除硬驱动器可被用于持久存储器210。其他的例子包括光盘和磁盘、拇指驱动器、以及被插入到驱动器以传输到也是持久存储器210的一部分的另一个计算机可读存储介质的智能卡。
这些例子中的通信单元202提供了与其他数据处理系统或子系统102外部的设备(诸如客户机子系统104、106、108、110、112)的通信。在这些例子中,通信单元202包括一个或多个网络接口卡。通信单元202可通过使用物理和无线通信链路中的任一个或两者来提供通信。在此讨论的任何软件模块可通过通信单元(诸如通信单元202)被下载到持久存储设备(诸如持久存储设备210)。
I/O接口集206允许与在数据通信中可与服务器计算机200本地连接的其他装置的数据输入和输出。例如,I/O接口集206提供了与外部装置集214的连接。外部装置集214典型地包括诸如键盘、小键盘、触摸屏和/或一些其他合适的输入装置的装置。外部装置集214也可包括可移动计算机可读存储介质,诸如例如拇指驱动器、可移动光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据,例如程序300,可被存储在这样的可移动计算机可读存储介质中。在这些实施例中,相关软件经由I/O接口集206可以被(或可以不被)全部或部分地加载到持久存储装置210。I/O接口集206也在数据通信中与显示装置212连接。
显示装置212提供了将数据显示到用户的机制,且可以是例如计算机监视器或智能电话显示屏。
在此描述的程序是基于其在本发明的特定实施例中被实施用于的应用而被识别的。但是,应当理解此处的任何特定程序命名仅是为了方便,且因此本发明不限于仅使用在由该等命名识别和/或暗示的任何特定应用。
II.第一实施例
请首先注意:附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
图2示出了描述根据本发明的方法的流程图250。图3示出了用于执行流程图250的至少一些方法步骤的程序300。该方法和相关软件将在以下结合附图被描述,大量参考图2(方法步骤框)和图3(软件框)。
处理从步骤S255开始,在此初始调度模块305接收用于将被处理的队列中的一组作业的初始调度。在该实施例中,初始调度基于先来先服务的调度模型。或者,初始调度在本领域已知的或将来知道的回填算法被应用到进程中的作业队列之后被提供。初始调度模块接收用于处理的初始调度,因为可能因为各种原因且在执行初始调度活动和/回填调度之前或之后出现调度间隙。这些调度间隙在此被称为回填窗口。
处理前进到步骤S260,在此高度并行(EP)作业模块310识别由初始调度模块305接收的初始调度中的EP作业。在该实施例中,EP作业被与作业相关的用户提供的信息确定。或者,作业模块使用分析法来确定EP作业位于队列中。或者,作业模块参考识别EP作业的一组特性。或者,作业模块确定仅有EP作业与队列中的其他作业没有依赖性。
用于识别EP作业的用户提供的信息包括:(i)最小顺序任务长度,或数据比特的数量;(ii)运行最小数量长度所需的时间;以及/或(iii)执行高度并行作业的最小顺序长度所需的最少数量的资源。EP作业以不同数据集运行相同二进制文件(binary)。如在此使用的,最小的顺序长度是独立运行EP作业所要求的最小数据大小。例如,对于生物学码,其是序列长度,对于天气代码,其是多少垂直等级(vertical level),等等。具有经验和主题知识的用户了解最小要求的数据长度应当是什么以独立运行作业。
处理进行到步骤S265,在此回填确定模块315确定存在回填窗口。在该实施例中,回填模块根据步骤S255中接收到的初始调度,确定在作业执行期间存在回填窗口。或者,回填模块参考初始调度,基于预处理调度过程,确定回填窗口。或者,回填模块基于模拟执行顺序或在模拟执行顺序期间,确定回填窗口。
回填窗口是由节点上的调度作业中的间隙提供的计算时间的分配。而且,不连续的回填窗口是在相同节点或不同节点上的执行序列中的不连续的时间或间隙处可获得的回填窗口。当回填模块315确定可获得回填窗口时,回填窗口的特性也被确定。回填窗口特性包括:(i)回填窗口的长度;以及/或(ii)在回填窗口长度上可获得的资源或节点。应当理解,这里回填窗口的“长度”和作业或子任务的“长度”是指时间,如持续时间。例如,给定长度的作业可以“适合于”相同或更大长度的回填窗口。将给定回填窗口中可获得的节点数量称为回填窗口的“宽度”也是有益的。回填窗口的宽度是指具有时间上重叠的回填窗口的两个或更多个节点,这样例如两个资源的子任务可填充具有2节点“宽度”的回填窗口。
处理进行到步骤S270,在此子任务模块320通过将EP作业拆分为子任务而创建子任务。在该实施例中,子任务是互相独立的,即:(i)哪个子任务先被执行并不要紧;(ii)如果子任务是以非连续方式被执行,也不要紧;(iii)如果子任务在多个节点上被执行,也不要紧。或者,EP作业的子任务可包括优先权子任务,其必须在同一个EP作业的其他子任务之前被执行。或者,EP作业的子任务可能不可用于在各个节点上的并行执行。
由子任务模块320创建的每个子任务包括一个启动点和一个完成点,其可被用来填充指定长度和/或宽度的单个回填窗口。以这种方式,每个子任务可与来自相同EP作业的其他子任务分离地在给定的节点集上或资源上执行。
在该实施例中,子任务模块320根据用户提供的关于EP作业的信息,将EP作业拆分为子任务。因此,步骤S270可在步骤S265之前被执行,其中EP作业仅被拆分为最小可能的子任务。或者,子任务模块将EP作业拆分为具有与确定的回填窗口长度对应的长度的子任务。该可替换实施例允许回填窗口特性影响子任务长度,且因此在其中回填窗口被确定的步骤S265之后被执行。
处理进行到步骤S275,其中修改的调度模块325创建修改的调度,其基于由子任务模块320创建的EP作业子任务利用合适大小的EP作业段填充步骤S265确定的回填窗口。取决于回填窗口的长度(以及也可能取决于宽度),合适大小的段可以是子任务集的组合或单个子任务。在该实施例中,合适大小的段仅包括一个启动点和一个完成点。或者,各个子任务保持独立,尽管被分组在一起;即,每个子任务维持一个启动点和一个完成点。
III.未来的评价和/或实施例
本发明的一些实施例意识到高度并行(EP)作业被用在几乎所有的学科领域中,且包括例如如下作业:(i)分布式集处理,其是处理分布式关系数据库查询的方法;(ii)在web服务器上提供动态文件;(iii)芒德布罗(Mandelbrot)集和具有独立计算点的其他分形计算;(iv)计算机图形学(例如光线跟踪)/并行渲染,特别是用于大数据集可视化;(v)密码术(特别是蛮力搜索);(vi)生物信息学里的基本局部比对搜索工具(BLAST)搜索;(vii)人脸识别;(viii)多参数模拟(例如,用于气候模型的蒙特卡罗模拟、分子动力学等);(ix)遗传算法;(x)用于数值天气预报的总体计算;(xi)粒子物理学中的事件模拟和重建;(xii)二次(quadratic)和数域筛(number field sieve)中的筛选步骤;(xiii)随机森林机器学习技术的树木生长步骤;(xiv)比特币挖掘;(xv)分析学(例如,使用MapReduce的建模和查询处理);以及/或(xvi)产品模拟(越来越多地用在技术计算领域来模拟产品设计)。
尽管上述许多例子具有实时的意义,例如,渲染、文件服务、芒德布罗集计算和计算机图形学,许多重要的应用可发生在批处理设置中,诸如密码术、BLAST搜索、多参数模拟、用于天气预报的总体计算、粒子物理学中的事件仿真和重建、分析学和/或产品模拟。
图4是示出作业队列400的图,其中7个作业401、402、403、404、405、406和407位于作业队列中,根据先来先服务(FCFS)服务策略,等待着根据其到达时间被执行。作业的优先级是按照其到达时间。作业406是高度并行的(EP)。
图5是示出用于两节点集群(节点1和节点2)上的作业401、402、403、404、405、406和407的执行顺序500的图,其中EP作业406作为单个不可分解的作业处理。作业401和402当前正在运行。作业403是最高作业,资源为其被保留。只有作业404被调度在作业403开始执行之前执行。根据基于FCFS的回填算法,作业404使用一些可用的资源,直到作业403开始。该资源-时间可用性被称为“回填窗口”。资源时间可用性在此被称为“空时间隙”,因为更大量的硬件资源对应于更大空间要求。一旦作业403完成,作业405和406开始执行。作业407保持在队列中,直到作业405和406都完成执行,因为作业407需要被作业405和406都用到的资源。以下表1展示了基于执行顺序500的性能指标。
表1:基于FCFS的回填算法的性能(如图5所示)
示出的时间被用标准计量单位(诸如“小时”)标准化。
以下列出的性能指标通常被用在本领域,且在此被定义以方便参考。
(i)到达时间:作业到达队列中的时间。
(ii)开始时间:作业开始在计算资源上执行的时间。
(iii)结束时间:作业完成执行的时间。
(iv)实际运行时间:作业在计算资源上执行实际所花费的时间。
(v)等待时间:作业开始执行前在队列中等待的时间。等待时间的数学表示是:等待时间=开始时间-到达时间。
(vi)平均等待时间:队列中一批作业的所有等待时间的平均值;表示期望给定作业在队列中等待的平均时间量。
(vii)流动时间:作业存在于队列中的时间;包括等待时间和运行时间。流动时间的数学表示是:流动时间=结束时间-到达时间。
(viii)平均流动时间:队列中一批作业所需要的所有流动时间的平均值;表示期望给定作业花在队列中的平均时间量。
(ix)慢度:作业的流动时间对作业的实际运行时间的比率。慢度的数学表示是:慢度=流动时间/运行时间。由于流动时间至少等于运行时间,慢度最小是1。
(x)平均慢度:队列中的一批作业所需要的慢度的平均值。平均慢度值越高,调度效率越低,因为平均来说,作业在队列中等待的时间越久。
(xi)完工时间:一批作业完全被处理所需要的总时间,即,该批中所有作业被执行并退出队列的总时间。完工时间表示调度系统的吞吐量。完工时间越短,调度越有效。
再次参考表1,应当注意EP作业406具有9单位的等待时间、16单位的流动时间和2.29单位的慢度。这些量度是从执行顺序500确定的,其示出了用于该顺序的资源和消逝时间两者。
本发明的一些实施例意识到利用基于FCFS的传统算法,使用资源的效率取决于不能被FCFS作业使用的资源如何好地被更小的作业回填。通常是这样的情况,计算机资源没有被完全利用,且存在闲置资源的许多空时间隙或孔洞。用例子来示出这一点,并参考图5:尽管用队列中所有可用的作业来回填,根据执行顺序500,节点2在时间9是空闲的,而节点1在时间14到时间18是空闲的。用作业来回填这些空时间隙依赖于队列中剩余作业的空时需求。这是一个问题,因为作业运行时间典型地是用户估计的。如果作业队列中的作业不适合回填窗口,则在回填窗口期间,一些资源必须被保持为闲置。这样的闲置时间导致了资源利用中的效率降低。与现有的基于FCFS的回填算法有关的效率低下同样也适于其他形式的回填算法。
本发明的一些实施例意识到调度策略(诸如“扩大”和/或“缩小”)包括不必要的限制,诸如:(i)要求资源是连续可用的,以保持EP作业运行;(ii)只有当可在高优先级作业开始之前完成时,才将大小可调的作业适于回填窗口;(iii)缺少用于后回填窗口(在应用回填算法后可用的窗口)的策略。
本发明的一些实施例提供了一个或多个以下特点、特征和/或优势:(i)具有用于改善调度的性能和资源利用的后回填调度策略,其使用适用于包含一个或多个EP作业的作业队列的回填算法;(ii)在传统的一遍回填之后,在后回填阶段应用高度并行回填(EPB)过程,作为第二遍,以更完全地填充回填窗口;(iii)使用用于回填窗口的动态作业分段,包括后回填窗口;(iv)使用适应性后回填调度;以及/或(v)通过在回填窗口中单独调度EP作业的并行子任务,改善资源利用(即,EP作业被分为并行的子任务,这样一些或所有这些任务适于回填窗口)。
将EP作业拆分为子任务要求提供特定信息,包括:(i)以数据比特表示的最小顺序长度;(ii)运行最小顺序长度所需的时间;以及/或(iii)执行最小顺序长度所需的最小资源数量。以这种方式创建的子任务适于回填窗口和/或在其中运行,或并非如此。本发明的一些实施例动态地将EP作业拆分为由一个或多个子任务长度组成的数据段,以使各种数据段适于实际的回填窗口。
图6是EP作业406的图,其示出了将作业拆分为七个独立的并行子任务A、B、C、D、E、F和G。在示出的实施例中,子任务表示EP作业的最小顺序长度任务。或者,子任务不是相同的大小。或者,子任务代表对应于一个或多个非连续回填窗口的长度。
本发明的一些实施例提供了用于调度EP作业的过程,所述作业由于其依赖于先前执行的作业必须按照顺序执行。例如,第一作业集可在独立的数据集上操作,且最后的作业可收集来自第一个作业集的输出数据并在其操作。这种情况也可被认为是EP作业,且最终的作业可通过施加这些作业仅在第一作业集被执行后才被执行的依赖性(使用作业调度器中当前可用的标准特征)而被执行。因此,在任何给定的作业队列中发现至少一个或两个EP作业很常见。因此,提出的将EP作业自动拆分为子任务以改善系统的吞吐量的回填算法对于高性能计算(HPC)社区非常有用。
本发明的一些实施例包括一个或多个以下特点、特征和/或优势:(i)基于用户提供的参数,调度器动态生成段,其由多个EP作业子任务的无缝合并组成(段不是保留每个单独组成子任务的所有作业启动点和作业完成点的多个子任务的简单“组合”;相反,段仅包括一个作业启动点和一个作业完成点);(ii)作业段是动态的,因为段的大小或长度是基于可变回填窗口而动态确定的;(iii)随着时间,可变回填窗口的模式变化,且作业段的组成也相应变化;(iv)在调度中的传统回填过程完成后,EPB变为活动的;(v)一旦传统的回填过程完成,根据未填充的回填窗口的可用模式,EP作业被分段(或重新分段);(vi)EP作业段被调度为优化地利用可用资源(该步骤是适应性的,因为EPB分段/重新分段EP作业以优化利用随着时间变化的资源可用模式,所述变化是由于:(a)进来作业要求的变化;(b)作业运行时间估计误差;以及/或(c)作业运行时间估计的变化);(vii)该方法对于所有调度算法是非侵入式的(EPB中的方法保证该方法不影响任何之前调度的作业;即,初始调度和回填算法的动态和性能在最坏情况下未受影响,且通常被改善);(viii)该方法与所有的回填方法兼容(因为EBP是后回填策略,它在调度中的一遍初始回填被执行后被应用,因此它可以在来自传统回填算法的贡献之上,独立地帮助改善调度性能和资源利用;(ix)该方法利用非连续的资源(EPB是适用的,即使当给定的EP作业不能完全适于可用的阴影时间);以及/或(x)动态分段和适应性调度方法不要求计算机资源是连续可用的,因此可获得非连续资源的有效使用。
本发明的一些实施例包括以下一个或多个特点、特征和/或优势:(i)与例如作为作业数组处理的作业相比,缩减调度开销(EPB使用的分段方法去除段内的所有子任务的启动和完成步骤,除了第一子任务的启动和最后子任务的完成);(ii)单个子任务的身份被合并到单个段;(iii)处理开销的缩减(通过移除段内的组件子任务的冗余启动和完成步骤,由于不得不初始化、最终化(finalize)和合并单个子任务的结果而产生的开销也被消除,因为段被视为单个无缝作业);(iv)改善的作业周转时间(由于EPB通过动态地将EP作业分段并适应性地调度EP作业,它最佳地调度EP作业);(v)很可能回填窗口被其中实施了EPB的EP作业使用,因此潜在地改善了作业吞吐量;(vi)改善的资源利用,因为EPB可使用不连续的资源;(vii)EPB对于运行时间高估不那么敏感,因为动态分段允许更大的可能性将EP作业重新分为适于可用回填窗口的段,即使当运行时间已被高估时;(viii)当应用了EPB时,由于利用不足(包括来自运行时高估的影响)而本来被保持闲置的资源可被最小化,或甚至完全避免;且/或(ix)EPB可被容易地添加到传统调度器。
本发明的一些实施例提供了包括一个或多个以下步骤的方法:(i)动态作业分段;(ii)针对未使用的回填窗口的适应性后回填调度;(iii)用户提供的信息,包括以下三个参数中的一个或多个:(a)数据比特表示的最小顺序任务长度,(b)运行最小顺序长度所需的时间,以及(c)执行高度并行作业的最小顺序长度所需的最小资源数量;(iv)基于用户提供的参数,调度器动态地生成段,其由多个子任务的无缝合并组成;(v)一旦回填步骤完成,根据可用的未填充回填窗口模式,高度并行作业被分段(或重新分段),且作业被调度以最大化利用可用资源;(vi)当用户提交EP作业时,用户指定最小子任务的墙钟时间和资源要求(最小顺序长度);以及/或(vii)当调度EP作业时,最小子任务的属性被用来生成合适的段。
本发明的一些实施例,结合传统的FCFS-回填过程,遵循以下步骤中的一个或多个:(i)以作业到达作业队列的顺序来维护作业,且可能的话,按顺序来对其进行调度;(ii)一旦作业完成(或到达,如果当前没有作业运行且队列中当前没有作业),将作业从队列前部发送,并为队列中的由于不能获得足够资源而无法被运行的第一作业(“队列最高作业”)保留资源;(iii)基于运行作业的用户估计的墙上时间,计算回填时间窗口;(iv)遍历作业队列,并调度可适于回填窗口且其执行不会干扰“队列最高作业”的提前资源保留的作业(这样的作业应当在保留的“队列最高作业”开始时间前完成,或仅占用提前保留不需要使用的节点);(v)施加动态分段过程到EP作业包括:(a)计算可用资源;(b)计算可用资源的可用时间;(c)遍历作业队列以查找EP作业;(d)确定任何EP是否包括适于可用的回填窗口资源的一个或多个最小作业;以及/或(e)生成合适EP作业段(段的大小是最小EP作业子任务的倍数);(vi)通过将合适的EP作业段调度到可用的未填充的回填窗口,应用适应性后回填调度;以及/或(vii)在存在多个不连续的窗口时,在步骤(v)按需创建多个合适的作业段,并在未填充的回填窗口中调度这些段,其具有合适的数据比特长度。
未填充的回填窗口包括:(i)中央处理单元(CPU)核,其不是都位于相同的芯片上;以及/或(ii)由于作业比预期完成的更早而突然变得可用的CPU核,但是没有回填作业可用以根据上述步骤(iv)的传统FCFS回填过程来占用可用核。
用于根据本发明实施例的动态作业分段的简化伪代码如下:
1:if job:smallest_sequence:size>RM:free:size then
2:continue
3:end if
4:find N where(N*job:smallest_sequence:size)<=RM:free:sizeand((N+1)*job:smallest_sequence:size)>RM:free:size
5:segment=N*job:smallest_sequence
用于根据本发明的实施例的适应性后回填调度的简化伪代码如下:
1:predictRuntime=segment:estimateRuntime
2:if(predictRuntime<=backfill_window)or(sub_task:size<=extra_size)then
3:segment:predictEndtime=predictRuntime+now()
4:backfill(segment)
5:RM:free:size=RM:free:size-segment:size
6:if predictRuntime>backfill_window then
7:extra_size=extra_size-segment:size
8:end if
9:end if
图7是示出用于作业401、402、403、404、405和407的执行顺序700的图,其中EP作业406(参见图6)作为EP作业段集合701a、701b和701c被处理,该EP作业段集合由二节点集群(节点1和节点2)上的EP作业子任务A、B、C、D、E、F和G组成。作业401和402当前在运行。作业403是为其保留资源的最高作业。作业404被调度为在作业403开始执行前执行。而且,由子任务A组成的段701a被调度为在作业403开始执行前执行。一旦作业403完成,作业405开始执行。而且,由子任务B、C、D、E和F组成的EP作业段701b被调度为与作业504、以及与多个节点上由子任务G组成的EP作业段701b并行执行。作业407保持在队列中,直到作业405和406完成执行,因为作业407需要被作业405和作业段701b和701c两者使用的资源。通过将EPB施加到调度策略,系统吞吐量和周转时间被改善以下表2提供了基于执行顺序700的性能量度。
表2:具有EPB后回填处理的基于FCFS的算法性能(如图7所示)
示出的时间用诸如“小时”的标准度量单位标准化。如图7所示,与基于FCFS的回填算法被单独使用时的时间=21(参见图5)相比,所有的作业在时间=19完成。EP作业406(参见图6)被拆分为段701a、701b和701c,且在表2中被统称为作业701。应当注意作业701展示了优于如在顺序500中调度的单个作业406(参见图5)的改善度量。相比于用于作业406的9个单位,作业701的等待时间是6个单位。相比于作业406的16个单位,作业701的流动时间是14个单位。相比于作业406的2.29的单位,作业701的慢度是2.00,。
图8A和8B比较了执行顺序500和700的性能。图8A的性能图800比较了图5和7示出的两个执行顺序的平均等待时间、流动时间、慢度和完工时间。图800中展示的性能数据在图8B的表805中示出。
本发明的一些实施例包括以下特点、特性和/或优势中的一个或多个:(i)调整EP作业的大小和/或将EP作业拆分以优化回填调度器的能力;(ii)将EP HPC按顺序拆分以适于回填调度窗口的能力;(iii)关注调度可变长度的子任务;(iv)不依赖墙上时间估计的精确性的方法;(v)高效消耗回填窗口中可用的资源的能力;(vi)EP作业被拆分为子任务,以消耗在回填窗口中可用的资源,这样子任务的执行可容易地在高优先级作业开始前被完成;(vii)EPB算法不要求连续的资源;(viii)回填之后的新的作业处理策略;(ix)对于所有的调度算法是非侵入性的;(x)EP作业被调度器动态拆分为子任务;(xi)EP作业子任务的大小根据可用资源以及可用于这些资源的时间而变化;(xii)子任务可被用来吸收在回填窗口中可用的资源;(xiii)回填资源不需要是连续的;(xiv)在回填窗口中可用的资源或间隙可被划分为连续的块以及由一个或多个子任务组成的序列,且可被生成,从而每个顺序可完整地占用连续块;(xv)顺序可被用来吸收回填窗口中可用的资源;(xvi)回填资源不需要是连续的;(xvii)不涉及应用层面的调度;以及/或(xviii)一些具有被调度的对应EP作业的应用应当支持将EP作业拆分为多个独立子任务。
IV.定义
本发明:不应当被理解为绝对的指示,其指示由术语“本发明”描述的主题是由提交的权利要求书、或在专利申请后最终发布的权利要求书所涵盖的;尽管术语“本发明”用于帮助读者获得在此公开的被认为是新的主题的一般感觉,这种理解,如使用术语“本发明”所指示的,是试验性的、暂时的,且是在专利申请过程中随着相关信息被开发、且权利要求可能被修改而变化的。
实施例:参见以上关于“本发明”的定义,类似的告警也适用于术语“实施例”。
和/或:包涵或(inclusive or);例如A、B“和/或”C是指A或B或C中的至少一个是真实并适用的。
用户/订户:包括但不是必须限于以下这些:(i)单个个人;(ii)具有足够的智能以充当用户或订户的人工智能实体;以及/或(iii)相关用户或订户团体。
软件存储装置:任何能以比传输中的信号更少瞬时的方式来存储计算机代码的装置(或一组装置)。
有形介质软件存储装置:在有形介质内和/或上存储计算机代码的任何软件存储装置(参见上述定义)。
非临时软件存储装置:以非临时方式存储计算机代码的任何软件存储装置(参见上述定义)。
计算机:具有显著的数据处理和/或机器可读指令读取能力的任何装置,包括但不限于:台式计算机、大型计算机、膝上型计算机、基于现场可编程门阵列(FPGA)的装置、智能电话、个人数字助理(PDA)、身体安装或插入计算机、嵌入式设备风格计算机、基于专用集成电路(ASIC)的装置。
高度并行(EP)作业:任何计算机作业,对其需要很少或不需要努力来将作业拆分为可在不同节点上被并行运行的段。
子任务:EP作业的任何任务拆分;在一些实施例中,子任务由数据比特的最小顺序长度限定;在一些实施例中,用户提供最小的顺序长度值;在一些实施例中,EP作业的大部分或全部子任务将具有相同长度(例如最小顺序长度)。
Claims (10)
1.一种用于作业调度的方法,包括:
接收作业的初始调度,其包括随时间在多个节点上调度的多个作业;
确定来自所述多个作业的第一作业可被拆分为可在不同节点上被分别并行执行的多个子任务,所述多个子任务的子任务分别具有对应的预定义持续时间;
确定所述作业的初始调度中具有第一窗口长度的回填窗口;
基于所述多个子任务的每个子任务的预定义持续时间,从所述多个子任务生成一组回填子任务,其中的每个回填子任务的预定义持续时间加起来具有与第一窗口长度匹配的第二窗口长度;
将第一作业从初始调度中去除;以及
将该组回填子任务添加到所述回填窗口。
2.如权利要求1所述的方法,还包括:
接收用于第一作业的作业信息,包括以下各项中的一个:最小顺序作业长度、运行最小顺序作业长度所要求的时间、或执行最小顺序作业长度所要求的资源数量;且
其中所述生成一组回填子任务是基于所述作业信息。
3.如权利要求1所述的方法,还包括:
响应于确定回填窗口,将具有第二长度的一组多个子任务从初始调度中的位置移动到回填窗口,以生成修改的调度;
其中:
所述第二长度小于或等于所述第一窗口长度。
4.如权利要求1所述的方法,还包括:
将所述多个子任务中的两个或更多个子任务合并为具有一个启动点和一个结束点的一个更长的子任务。
5.如权利要求1所述的方法,其中所述多个子任务长度相同。
6.一种用于作业调度的计算机系统,包括:
处理器集;以及
软件存储装置;
其中:
所述处理器集被构造、定位、连接和/或编程以运行在软件存储装置上存储的软件;且
所述软件包括:
第一程序指令,其被编程为接收作业的初始调度,其包括随时间在多个节点上的调度的多个作业;
第二程序指令,其被编程为确定来自所述多个作业的第一作业可被拆分为可在不同节点上被分别并行执行的多个子任务,所述多个子任务的子任务分别具有对应的预定义持续时间;
第三程序指令,其被编程为
确定所述作业的初始调度中具有第一窗口长度的回填窗口;基于所述多个子任务的每个子任务的预定义持续时间,从所述多个子任务生成一组回填子任务,其中的每个回填子任务的预定义持续时间加起来具有与第一窗口长度匹配的第二窗口长度;将第一作业从初始调度中去除;以及
第四编程指令,其被编程为将该组回填子任务添加到所述回填窗口。
7.如权利要求6所述的计算机系统,还包括:
第五编程指令,其被编程为接收用于第一作业的作业信息,包括以下各项中的一个:最小顺序作业长度、运行最小顺序作业长度所要求的时间、或执行最小顺序作业长度所要求的资源数量;且
其中所述生成一组回填子任务是基于所述作业信息。
8.如权利要求6所述的计算机系统,还包括:
第六程序指令,其被编程为响应于确定回填窗口,将具有第二长度的一组多个子任务从初始调度中的位置移动到回填窗口,以生成修改的调度;
其中:
所述第二长度小于或等于所述第一窗口长度。
9.如权利要求6所述的计算机系统,还包括:
第五程序指令,其被编程为将所述多个子任务中的两个或更多个子任务合并为具有一个启动点和一个结束点的一个更长的子任务。
10.如权利要求6所述的计算机系统,其中所述多个子任务长度相同。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/138,239 US9563470B2 (en) | 2013-12-23 | 2013-12-23 | Backfill scheduling for embarrassingly parallel jobs |
US14/138239 | 2013-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731642A CN104731642A (zh) | 2015-06-24 |
CN104731642B true CN104731642B (zh) | 2019-01-15 |
Family
ID=53400136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410681942.0A Active CN104731642B (zh) | 2013-12-23 | 2014-11-24 | 用于高度并行作业的回填调度方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (3) | US9563470B2 (zh) |
CN (1) | CN104731642B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563470B2 (en) | 2013-12-23 | 2017-02-07 | International Business Machines Corporation | Backfill scheduling for embarrassingly parallel jobs |
US9959142B2 (en) * | 2014-06-17 | 2018-05-01 | Mediatek Inc. | Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium |
WO2016079786A1 (ja) * | 2014-11-17 | 2016-05-26 | 株式会社日立製作所 | 計算機システム及びデータ処理方法 |
US20160164696A1 (en) * | 2014-12-08 | 2016-06-09 | Ebay Inc. | Modular internet of things |
US10015278B2 (en) * | 2015-09-11 | 2018-07-03 | Verizon Patent And Licensing Inc. | Adaptive scheduling and orchestration in a networked environment |
US9448842B1 (en) * | 2016-01-29 | 2016-09-20 | International Business Machines Corporation | Selecting and resizing currently executing job to accommodate execution of another job |
US9977697B2 (en) * | 2016-04-15 | 2018-05-22 | Google Llc | Task management system for a modular electronic device |
US10152360B2 (en) * | 2016-04-22 | 2018-12-11 | Schneider Electric Software, Llc | Coordinating event-driven object execution |
JP6666553B2 (ja) * | 2016-05-10 | 2020-03-18 | 富士通株式会社 | 情報処理装置、ジョブ管理方法およびジョブ管理プログラム |
US10996984B1 (en) * | 2016-11-28 | 2021-05-04 | Amazon Technologies, Inc. | Batch job execution using compute instances |
CN108235134B (zh) * | 2016-12-21 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 图片分析方法及装置 |
CN106845926B (zh) * | 2016-12-27 | 2020-11-27 | 中国建设银行股份有限公司 | 一种第三方支付监管系统分布式数据流处理方法及系统 |
CN107341041B (zh) * | 2017-06-27 | 2020-08-11 | 南京邮电大学 | 基于优先队列的云任务多维约束回填调度方法 |
US11188392B2 (en) * | 2017-09-20 | 2021-11-30 | Algorithmia inc. | Scheduling system for computational work on heterogeneous hardware |
CN109558237A (zh) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | 一种任务状态管理方法及装置 |
JP7003874B2 (ja) * | 2018-08-09 | 2022-01-21 | 日本電信電話株式会社 | リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム |
CN109308219B (zh) * | 2018-08-23 | 2021-08-10 | 创新先进技术有限公司 | 任务处理方法、装置及分布式计算机系统 |
US10846131B1 (en) * | 2018-09-26 | 2020-11-24 | Apple Inc. | Distributing compute work using distributed parser circuitry |
CN110196775A (zh) * | 2019-05-30 | 2019-09-03 | 苏州浪潮智能科技有限公司 | 一种计算任务处理方法、装置、设备以及可读存储介质 |
JP7238616B2 (ja) * | 2019-06-11 | 2023-03-14 | 富士通株式会社 | 並列処理装置、ジョブ管理プログラム、及びジョブ管理方法 |
CN114008594A (zh) | 2019-07-17 | 2022-02-01 | 谷歌有限责任公司 | 调度计算图上的操作 |
US11301307B2 (en) * | 2019-07-24 | 2022-04-12 | Red Hat, Inc. | Predictive analysis for migration schedulers |
CN110673935A (zh) * | 2019-08-23 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种基于Kubernetes系统的作业调度方法、设备以及存储介质 |
US11403106B2 (en) * | 2019-09-28 | 2022-08-02 | Tencent America LLC | Method and apparatus for stateless parallel processing of tasks and workflows |
WO2021056591A1 (zh) * | 2019-09-29 | 2021-04-01 | 西门子股份公司 | 用于控制多轴运动机器的方法、装置和存储介质 |
CN112860422B (zh) * | 2019-11-28 | 2024-04-26 | 伊姆西Ip控股有限责任公司 | 用于作业处理的方法、设备和计算机程序产品 |
CN111061554B (zh) * | 2019-12-17 | 2023-01-17 | 深圳前海环融联易信息科技服务有限公司 | 一种智能任务调度方法、装置、计算机设备及存储介质 |
US11726817B2 (en) * | 2020-09-25 | 2023-08-15 | Red Hat, Inc. | Scheduling multiple processes with varying delay sensitivity |
US11704151B2 (en) * | 2020-09-28 | 2023-07-18 | International Business Machines Corporation | Estimate and control execution time of a utility command |
CN112256345A (zh) * | 2020-10-10 | 2021-01-22 | 深圳供电局有限公司 | 一种基于最先适应算法和遗传算法的计算任务卸载方法 |
US11556387B2 (en) | 2020-12-03 | 2023-01-17 | International Business Machines Corporation | Scheduling jobs |
US11550555B2 (en) * | 2021-05-04 | 2023-01-10 | Microsoft Technology Licensing, Llc | Dependency-based automated data restatement |
US11934255B2 (en) | 2022-01-04 | 2024-03-19 | Bank Of America Corporation | System and method for improving memory resource allocations in database blocks for executing tasks |
US11966789B2 (en) * | 2022-04-27 | 2024-04-23 | Uab 360 It | System and method for queuing node load for malware analysis |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581806A (zh) * | 2003-08-05 | 2005-02-16 | 国际商业机器公司 | 平衡网格计算环境中的工作负荷的方法和系统 |
CN101743534A (zh) * | 2007-07-16 | 2010-06-16 | 微软公司 | 通过增长和收缩资源分配来进行调度 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082606B2 (en) | 2001-05-01 | 2006-07-25 | The Regents Of The University Of California | Dedicated heterogeneous node scheduling including backfill scheduling |
US8261283B2 (en) | 2005-02-16 | 2012-09-04 | Yissum Research Development Company Of Hebrew University Of Jerusalem | System and method for backfilling with system-generated predictions rather than user runtime estimates |
US7865896B2 (en) | 2005-12-15 | 2011-01-04 | International Business Machines Corporation | Facilitating scheduling of jobs by decoupling job scheduling algorithm from recorded resource usage and allowing independent manipulation of recorded resource usage space |
US7926057B2 (en) * | 2005-12-15 | 2011-04-12 | International Business Machines Corporation | Scheduling of computer jobs employing dynamically determined top job party |
US8205208B2 (en) | 2007-07-24 | 2012-06-19 | Internaitonal Business Machines Corporation | Scheduling grid jobs using dynamic grid scheduling policy |
US9723070B2 (en) | 2008-01-31 | 2017-08-01 | International Business Machines Corporation | System to improve cluster machine processing and associated methods |
US8615764B2 (en) | 2010-03-31 | 2013-12-24 | International Business Machines Corporation | Dynamic system scheduling |
US20120060166A1 (en) * | 2010-09-06 | 2012-03-08 | Left Coast Logic Llc | Day management using an integrated calendar |
US9170846B2 (en) | 2011-03-29 | 2015-10-27 | Daniel Delling | Distributed data-parallel execution engines for user-defined serial problems using branch-and-bound algorithm |
US9563470B2 (en) | 2013-12-23 | 2017-02-07 | International Business Machines Corporation | Backfill scheduling for embarrassingly parallel jobs |
-
2013
- 2013-12-23 US US14/138,239 patent/US9563470B2/en active Active
-
2014
- 2014-06-19 US US14/309,283 patent/US9569262B2/en active Active
- 2014-11-24 CN CN201410681942.0A patent/CN104731642B/zh active Active
-
2016
- 2016-10-27 US US15/335,830 patent/US10031775B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581806A (zh) * | 2003-08-05 | 2005-02-16 | 国际商业机器公司 | 平衡网格计算环境中的工作负荷的方法和系统 |
CN101743534A (zh) * | 2007-07-16 | 2010-06-16 | 微软公司 | 通过增长和收缩资源分配来进行调度 |
Non-Patent Citations (1)
Title |
---|
Transparent Resource Allocation to Exploit Idle Cluster Nodes in Computational Grids;Marco A. S. Netto等;《International Conference on E-science & Grid Computing》;20051208;第243-244页 |
Also Published As
Publication number | Publication date |
---|---|
US10031775B2 (en) | 2018-07-24 |
US9569262B2 (en) | 2017-02-14 |
US20170046201A1 (en) | 2017-02-16 |
US20150178124A1 (en) | 2015-06-25 |
CN104731642A (zh) | 2015-06-24 |
US20150178126A1 (en) | 2015-06-25 |
US9563470B2 (en) | 2017-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731642B (zh) | 用于高度并行作业的回填调度方法和系统 | |
CN108292241B (zh) | 处理计算图 | |
Liu et al. | Multi-objective scheduling of scientific workflows in multisite clouds | |
TW201235865A (en) | Data structure for tiling and packetizing a sparse matrix | |
US8024209B2 (en) | Monte carlo grid scheduling algorithm selection optimization | |
De Coninck et al. | Dynamic auto-scaling and scheduling of deadline constrained service workloads on IaaS clouds | |
JP5059928B2 (ja) | Gpuを用いた乱数生成処理の並列化 | |
JP2016507093A (ja) | 回帰モデルを計算するための方法、コンピュータ・プログラム、およびシステム | |
JP2021504780A (ja) | 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け | |
Quan et al. | A hierarchical run-time adaptive resource allocation framework for large-scale MPSoC systems | |
Palomar et al. | High-performance computation of bézier surfaces on parallel and heterogeneous platforms | |
Gu et al. | Performance analysis and optimization of distributed workflows in heterogeneous network environments | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
Tchernykh et al. | Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment | |
Fard et al. | Budget-constrained resource provisioning for scientific applications in clouds | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN116261718A (zh) | 用于调谐大规模深度学习工作负载的超参数的资源分配 | |
Dietze et al. | Water-level scheduling for parallel tasks in compute-intensive application components | |
AU2015101031A4 (en) | System and a method for modelling the performance of information systems | |
JP2022094945A (ja) | コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化) | |
WO2023080805A1 (en) | Distributed embedding table with synchronous local buffers | |
CN103942235A (zh) | 针对大规模数据集交叉比较的分布式计算系统和方法 | |
JP2023057945A (ja) | 最適化問題求解装置及び最適化問題求解方法 | |
CN108369527A (zh) | 用于基于时间的任务调度的方法和设备 | |
US20150199454A1 (en) | Concurrent design and analysis of an engineering object |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |