CN102831012A - 多节点分布式系统中的任务调度装置和任务调度方法 - Google Patents
多节点分布式系统中的任务调度装置和任务调度方法 Download PDFInfo
- Publication number
- CN102831012A CN102831012A CN2011101671762A CN201110167176A CN102831012A CN 102831012 A CN102831012 A CN 102831012A CN 2011101671762 A CN2011101671762 A CN 2011101671762A CN 201110167176 A CN201110167176 A CN 201110167176A CN 102831012 A CN102831012 A CN 102831012A
- Authority
- CN
- China
- Prior art keywords
- task
- processing node
- new
- deadline
- scheduling apparatus
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
根据本发明,提出了一种多节点分布式系统中的任务调度装置,包括:新任务池,用于存储新任务,所述新任务至少包括添加了依赖任务标记的新任务;任务过滤器,用于从新任务池所存储的新任务中过滤出标记为空的任务;过滤任务池,用于存储任务过滤器所过滤出的标记为空的任务;任务分发器,用于针对过滤任务池所存储的每个任务,根据任务完成时间预测模型,来预测在处理节点集合中的每个处理节点上执行该任务所需的完成时间,并将该任务分配给预测出的完成时间最短的处理节点。
Description
技术领域
本发明涉及一种多节点分布式系统中的任务调度装置及其任务调度方法,能够通过精确预测任务在各个处理节点上的完成时间来将其合理调度到各处理节点上,以使得这些任务能够并行且高效地执行。
背景技术
多节点分布式系统是一种有着多个节点的系统。这些节点之间是松耦合的,相互之间由网络连接,多个处理节点可以合作来完成大规模的计算工作。建立多节点分布式系统的目的通常是为了以较小的耗费来获得更强的计算能力。比起使用超级计算机,它能够以较低的成本来提供相仿的计算能力。比如,网格系统是一种典型的多节点分布式系统。在一个多节点分布式系统中,用户的应用程序往往被分割成多个任务,这些任务可以被分发到系统中的多个处理节点上来并行运行,从而最大限度使用各个处理节点的计算资源。通过这种并行运行的方式,可以大大缩短整个应用程序完成的时间。
所有计算机系统能够处理的任务可以划分为两类,即,相互独立的任务和相互关联的任务。相互独立的任务之间没有依赖关系,也就是说,这些任务中的任意几个都可以并发执行。但对于关联任务来说,任务之间可能存在某种依赖关系。比如,任务A的运行需要依赖于任务B的输出结果。在这种情况下,在任务B完成之前,任务A是不能运行的。而且,一个任务可能依赖于其他多个任务。因而,对于多个关联任务来说,它们不能简单地并发运行,它们的运行必须遵照一定顺序。
在现实世界中,多节点分布式系统所处理的任务常常是存在依赖关系的。例如,一个天气预报程序就可以划分为多个观测资料预处理、质量控制、区域客观分析、正规模初值化和6小时预测等关联任务。再比如,一个分布式软件度量系统需要执行不同类型的数据收集、数据存储、数据分析、报告生成等任务。如何把多个关联任务合理并高效地调度到网格系统的多个处理节点上运行,就是一个重要的问题。调度方案决定了所有任务能否尽可能快地运行完毕,能否取得较好的负载平衡,以及其他一些性能。
针对多节点分布式系统上任务调度的研究成果是很多的,但是针对多节点分布式系统上的关联任务调度研究并不多。以下是一些相关研究的介绍。
很多多节点分布式系统上的任务调度方法都假设一点:在决定任务调度方案之前,每个任务在各个处理节点上的运行时间是已知的,而且是固定值。这些运行时间对于决定调度方案是非常重要的。但是,在现实世界中,在一个任务运行完毕之前,准确地预测该任务在某个处理节点上的运行时间是非常困难的。而且,组成多节点分布式系统的各个处理节点往往运行着除多节点分布式系统任务以外的其他程序,这就决定了每个处理节点的资源利用状态是变化的。也就是说,每个任务在各个处理节点上运行所花费的时间是随着处理节点的状态不断变化的。因此,为了找到合理的任务调度方案,需要更精确的方法来预测任务在各个处理节点上的运行时间。
专利文献1(申请号为:CN200710051495.0)介绍了一种基于反馈的网格任务调度方法。该方法不断地收集各个网格节点的信息,使用这些处理节点最近的响应时间记录来决定任务的调度与分发方案。这种方法存在一定的问题,它使用一个处理节点最近的响应时间来预测该处理节点在处理新到来任务时的性能。一个处理节点最近的响应时间往往反映了该处理节点处理另一种任务时的性能,而不是处理新到来任务的性能。但是,一个处理节点在处理不同任务时所表现出的性能往往是有差异的。因此,使用一个处理节点处理其他任务的响应时间来评估该处理节点当前的计算能力是不够精确的。比如,一个处理节点具备高速CPU(中央处理单元),但内存容量很小,那么该处理节点执行编译任务时速度很快,而运行中间件时可能比较慢。因为编译任务通常对CPU运行速度要求高,而中间件运行则耗费内存较多。
专利文献2(US2007/0094662 A1)阐述了一种基于处理器负载和网络负载确定节点可用性的机制。可用性信息用作网格任务调度的依据。但本发明在为每个任务选择处理节点时,仅仅考虑了处理节点的处理器负载和网络负载。而其他重要影响因素(例如内存负载)也应当考虑,因为这些因素对节点性能的影响也很明显。除此以外,如果希望找出理想的任务调度方案,任务规模、处理节点硬件水平和处理节点负载对任务执行时间的影响应当准确计算出来。仅仅根据CPU和网络的可用性来调度任务并非明智。
非专利文献3(题为“元计算环境下的支持依赖任务的OGS算法研究”,发表于《计算机学报》,2002年,第25卷第6期)介绍了一种方法,该方法基于有向无环图(DAG)来进行任务优先级分配,依据任务优先级对任务进行逐组调度。这种方法的问题是,一组任务必须等待它们前导任务组完成后才能开始执行。这实际上浪费了不少时间。另一个问题是,这项发明假设某个任务在某处理节点上的执行时间已知,这在实际应用中是不现实的。
发明内容
为了克服现有技术的缺陷提出了本发明。因此,本发明的目的之一是提供一种多节点分布式系统中的任务调度装置及其任务调度方法,能够通过精确预测任务在各个处理节点上的完成时间来将其合理调度到各处理节点上,以使得这些任务能够并行且高效地执行。
为了实现上述目的,根据本发明,提出了一种多节点分布式系统中的任务调度装置,包括:新任务池,用于存储新任务,所述新任务至少包括添加了依赖任务标记的新任务;任务过滤器,用于从新任务池所存储的新任务中过滤出标记为空的任务;过滤任务池,用于存储任务过滤器所过滤出的标记为空的任务;任务分发器,用于针对过滤任务池所存储的每个任务,根据任务完成时间预测模型,来预测在处理节点集合中的每个处理节点上执行该任务所需的完成时间,并将该任务分配给预测出的完成时间最短的处理节点。
优选地,所述任务调度装置还包括:任务标记器,当新任务被提交到所述多节点分布式系统时,通过查询任务关联矩阵,找出该新任务的依赖任务,并为该新任务添加相应的依赖任务标记,并将添加了依赖任务标记的新任务放置到所述新任务池。
优选地,在处理节点结束一个任务的执行之后,所述任务过滤器根据该处理节点的任务执行监控器发送来的关于该任务执行结束的信息,从依赖于该已执行任务的任务所具有的依赖任务标记中去除该已执行任务的标记。
优选地,所述任务完成时间预测模型至少采用以下参数中的任一项:任务规模、处理节点硬件水平和处理节点负载。
优选地,所述任务调度装置还包括:用于存储处理节点执行的各任务的任务规模的任务规模表;用于存储各处理节点的硬件水平的处理节点硬件水平表;以及用于存储各处理节点上的负载的处理节点负载表。
优选地,所述任务规模表和所述处理节点负载表分别由所述任务分发器根据各处理节点的任务执行监控器发送来的相关信息进行更新。
优选地,所述任务完成时间预测模型是基于处理节点执行任务时所记录的包括任务规模、处理节点负载的历史数据来进行训练校准的。
优选地,所述任务完成时间预测模型包括:用于计算在该处理节点上执行该任务所需的执行时间的模型,以及用于计算该处理节点的响应时间的模型,其中,所述该处理节点的响应时间包括:在该处理节点上执行等待队列中的所有等待任务所需的执行时间、以及完成该处理节点上正在运行的当前任务所需的执行时间。
优选地,所述任务调度装置还包括:用于存储在该处理节点上开始执行当前任务后已花费时间的任务已花费时间表。
优选地,所述任务已花费时间表由所述任务分发器根据各处理节点的任务执行监控器发送来的信息进行更新。
优选地,用于计算在该处理节点上执行该任务所需的执行时间的模型采用多元线性回归模型。
优选地,所述任务规模至少包括以下任一项:程序步数、内存使用量、网络传输数据量和磁盘I/O数据量;所述处理节点硬件水平至少包括以下任一项:CPU主频、内存大小、网络带宽和磁盘I/O速度;以及所述处理节点负载至少包括以下任一项:CPU使用率、内存使用率、网络使用率和磁盘I/O使用率。
优选地,所述标记为空的任务是不依赖于其他任务的独立任务。
优选地,所述多节点分布式系统是网格系统。
此外,为了实现上述目的,根据本发明,提出了一种在多节点分布式系统中进行任务调度的方法,包括:从新任务池所存储的新任务中过滤出标记为空的任务,其中,所述新任务至少包括添加了依赖任务标记的新任务;针对过滤出的标记为空的每个任务,根据任务完成时间预测模型,来预测在处理节点集合中的每个处理节点上执行该任务所需的完成时间;以及将该任务分配给预测出的完成时间最短的处理节点。
如上,本发明首先采用一种任务依赖标记来逐个过滤出当前可调度执行的任务,将这些可调度任务排成合理的顺序,然后根据某任务在各个处理节点上的预计完成时间来为该任务选出最快处理节点。任务的预计完成时间是依据各个处理节点上已排队任务的预计执行时间及该任务的预计执行时间计算的。各任务的执行时间依据一个数学模型计算,该模型中包含任务规模、处理节点硬件水平和处理节点负载等方面的因素。该模型会基于历史数据不断训练,从而保证更高的精度。
本发明具体采用的方法与系统如以下描述。
当一个任务提交到多节点分布式系统后,调度系统将从任务关联矩阵中查询该任务的依赖任务(即前导任务)。如果没有相关记录,则调度系统的任务标记器将尝试根据该任务的输入与输出数据类型来找出该任务的依赖任务,并用发现的依赖任务更新任务关联矩阵。然后,调度系统将为该任务添加一组标记,该标记中包含了该任务所有依赖任务的ID,并将它放入新任务池中。
调度系统的任务过滤器周期性地检查新任务池,找出含有空标记的任务,并且把它们放入过滤任务池的任务队列尾部。
调度系统也对各个处理节点的状态进行周期性收集,根据各个处理节点队列的任务饱和程度确定是否分发过滤任务池中的任务。任务饱和程度可根据各处理节点响应时间计算。其中,公式表示运行处理节点j等待队列中所有任务所花时间;公式Max(ETcj-PTc,0)表示完成正在运行任务所花时间。符号ETc表示当前任务在处理节点j上的执行时间;PTc代表当前任务开始执行后已经花费的时间,可以从任务已花费时间表找到。
如果当前各处理节点任务队列并未饱和,任务分发器从过滤任务池中提取出一定数量的任务,根据各个任务属性、处理节点硬件情况和负载状况估算出(预测出)各个任务在各个处理节点上的完成时间,将提取出的任务分发到完成时间最短的处理节点上去。为了确定任务Ti应当分发到哪个处理节点上,任务分发器需要计算出任务Ti在各个处理节点Nj上的预计完成时间EFij。EFij的值应该根据任务完成时间预测模型EFij=RTj+ETij预测。在这个公式中,RTj是处理节点Nj的响应时间,ETij是任务Ti在处理节点Nj上的预计执行时间。
任务执行时间ETij可根据任务执行时间预测模型计算,比如多元线性回归模型ETij=W0+W1f1+W2f2+W3f3+W4f4。其中Wi为权重;f1为处理器因素对任务执行时间的影响,f2为内存因素对执行时间的影响,f3为网络因素对执行时间的影响,f4为磁盘I/O(输入/输出)对任务执行时间的影响。
f1、f2、f3、f4可通过模型 计算。其中PS为程序执行步数,CF为处理节点CPU频率,(1-CUse%)为CPU空闲度;MR为任务对内存的需求量,MS为处理节点内存量,(1-MUse%)为内存空闲度;DTS为任务所需的网络数据传输量,BW为处理节点的网络带宽,(1-BUse%)为网络空闲度;DIO为任务所需的磁盘I/O数据量,DS为处理节点的磁盘I/O速度,(1-DUse%)为磁盘I/O空闲度。这些信息可以从处理节点硬件水平表、任务规模表、处理节点负载表中找到。
每个处理节点分别执行自己任务队列中的任务,处理节点的任务执行监视器监控各个处理节点上的任务执行,并把各处理节点当前任务已花费的执行时间传递给任务分发器。这些信息用于更新已花费任务时间表。在某个任务的执行结束之后,由任务调度系统的任务过滤器相应修改新任务池中相关任务(即,依赖任务)的标记,将该任务ID从相关任务的标记集合中去除。同时,它也会收集程序步数,已使用内存大小,网络传输数据量,以及Ti的I/O数据量,并把这些数据发送给任务分发器用于更新任务规模表。任务执行监视器还会收集各个处理节点的负载状况,以更新处理节点负载表的内容。
本发明采用机器学习的模型训练技术来保证任务执行时间的预测模型。当某些任务完成后,系统将记录这些任务的规模及处理节点负载。然后系统将以上执行记录保存到历史数据集合中,该集合中的数据分为两组,一组用于训练多元线性回归模型,另一组用于验证。在训练过程中,模型参数的权重可以基于历史数据通过最小二乘法等方法确定。然后,系统使用校验数据来检验训练出的模型的准确性是否可以接受。
本发明的第一个特点是在估算任务完成时间方面有更高的准确性,从而使得任务分发更加合理,使得每个任务得以最快的速度执行完。
第二个优点是本发明在调度关联任务时比现有技术花费更少的时间。根据本发明提及的独立任务过滤方法,不需要等待前置任务组的完成,全部任务的完成时间比起现有技术要短。
由此,根据本发明,能够加快关联任务在多节点分布式系统上的完成速度,并合理的控制各个处理节点的负载均衡。在本发明中,通过全面考虑各种影响因子来对任务进行调度。
本发明能够实现关联任务在多节点分布式系统上的高效调度。使用本发明所提及的方法与形态,关联任务可以合理地分配到各个处理节点上,快速完成,并且使得各个处理节点维持较好的负载均衡。
附图说明
通过参考以下结合附图对所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,其中:
图1是示出了根据本发明实施例的多节点分布式系统的结构的框图。
图2是示出了根据本发明实施例的任务调度方法的操作的流程图。
图3是示出了根据本发明实施例的任务调度系统和处理节点集合的框图。
图4是示出了根据本发明实施例在多节点分布式系统上执行的关联任务的例子的图。
图5是示出了根据本发明实施例的用于显示任务之间的依赖关系的任务关联矩阵的例子的图。
图6是示出了根据本发明实施例的一个任务的组成结构的示意图。
图7是示出了根据本发明实施例的根据任务的输入和输出来自动判断任务依赖关系的过程的操作的流程图。
图8是示出了根据本发明实施例的任务调度方法中的任务过滤过程的操作的流程图。
图9是示出了根据本发明实施例的任务调度方法中的任务过滤过程的操作结果的示意图。
图10是示出了根据本发明实施例的用于预测任务完成时间的模型的示意图。
图11是示出了根据本发明实施例的用于计算在处理节点上执行任务所需的任务执行时间的模型的示意图。
图12是示出了根据本发明实施例的任务规模表的例子的示意图。
图13是示出了根据本发明实施例的处理节点硬件水平表的例子的示意图。
图14是示出了根据本发明实施例的处理节点负载表的例子的示意图。
图15是示出了根据本发明实施例的任务已花费时间表的例子的示意图。
图16是示出了根据本发明实施例的任务分发器的操作的流程图。
图17是示出了根据本发明实施例的预测任务完成时间的过程的操作的流程图。
图18是示出了根据本发明实施例的任务执行监控器的操作的流程图。
图19是示出了根据本发明实施例的任务完成时间预测模型的训练过程的操作的流程图。
具体实施方式
下面,将参考附图来描述本发明的优选实施例。
本发明中所提及的整个多节点分布式系统如图1所示。图1中的关联任务100显示了由用户所提交到多节点分布式系统的关联任务。在整个多节点分布式系统中,有两类处理节点,任务调度节点101和处理节点集合102中的多个普通处理节点。所有处理节点通过物理网络和某种网络协议连接在一起。如图3所示,任务调度系统被安装在任务调度节点上。这个处理节点根据任务属性和处理节点属性,把进入多节点分布式系统的多个关联任务调度到各个处理节点上去执行。普通处理节点组成了图1中的处理节点集合102。处理节点集合负责各个关联任务的具体运行。各个处理节点的状态始终由节点监控器掌握。
根据本发明的任务调度方法的主要流程如图2所示。首先,当一个新任务提交到系统中来时(步骤200),调度系统将从任务关联矩阵中查询该任务的依赖任务(即它的前导任务)。如果没有相关记录,则系统将尝试根据该任务的输入与输出数据类型来找出该任务的依赖任务,并且把找出的依赖关系保存到任务关联矩阵中(步骤201)。然后,任务调度系统将为该任务添加一组标记,该标记中包含了该任务所有依赖任务的ID(步骤202),并将它放入新任务池中。调度系统将周期性地检查新任务池,找出含有空标记的任务(即,独立任务),并且把它们放入过滤任务池(步骤202)。系统也对各个处理节点的状态进行周期性收集,并且从过滤任务池中提取出一定数量的任务(步骤203)。在这之后,任务分发器根据各个任务属性、处理节点硬件情况和处理节点负载状况预测出各个任务在各个处理节点上的完成时间,根据预测结果,将提取出的任务分发到某个处理节点的任务队列中去(步骤204)。每个处理节点分别执行自己任务队列中的任务(步骤205)。在某个任务的执行结束之后,任务调度系统相应修改新任务池中相关任务的标记,将该任务ID从相关任务的标记集合中去除,记录该任务的规模参数,并更新任务规模表中的任务规模记录(步骤206)。该任务完成时间预测模型将根据任务执行的历史记录进行周期性的训练校准(步骤207)。
任务调度节点的整个任务调度系统的构成如图3所示。当一个新任务提交到多节点分布式系统中时,任务标记器300将查询任务关联矩阵301,发现或计算出该任务的依赖任务,将含有依赖任务ID的标记集合添加到该任务中,并把该任务放置到新任务池302中。因而新任务池中的每个任务比如303都有一个标记比如304,可能是空的,也可能包含数据。任务过滤器305周期性地更新各个任务的标记,找出标记为空的任务,并且把它们从新任务池中提取出来。过滤出的任务被放置在过滤任务池306的队列307尾部。所有过滤出的任务在此等待分发。任务分发器309是整个调度系统中一个重要的部件。它周期性地计算各个任务在各个处理节点上预计完成时间,并且把这些任务分发到最合适的处理节点上。任务分发器在预测任务完成时间时需要查询处理节点硬件水平表307、任务规模表310、处理节点负载表311和任务已花费时间表312。由多个处理节点组成的处理节点314用于任务的具体执行。每个处理节点如316有一个任务队列。上述任务如315将被分发到每个处理节点的任务队列。处理节点将把任务从队列头部逐个去除并执行。任务执行监控器313持续监视任务执行的过程和各个处理节点的状态,收集实时信息,并且发送到任务过滤器和任务分发器。基于这些信息,调度系统将更新新任务池中的任务标记、任务规模表、处理节点负载表、和任务已花费时间表。任务分发器将根据收集到的历史数据对任务执行时间的预测模型进行训练。
图4采用有向无环图(DAG)介绍了关联任务的概念。圆圈代码不同的任务从T1到T3的箭头表示T1依赖于T3。从这副图中,我们可以看出T1有T3、T2、T4等3个依赖任务。这意味着,在T3、T2、T4完成之前,T1是不能运行的。类似的,T3依赖于T2,而T6、T2依赖于T4,T5依赖于T6。在所有7个任务中,T4、T6和T7是独立任务。这里,“独立”意味着他们的运行无需等待其他任务的完成。在各个任务的依赖关系图中,不应当出现环。如果多个任务的依赖关系构成环的话,则不可能找出任务执行的合理顺序。
图5介绍了一个任务关联矩阵的例子。任务之间的依赖关系记录在本矩阵中。在任务调度的过程中,调度器可以从该矩阵中查询任务之间的依赖关系。该图中的矩阵值对应图4中的任务依赖关系。矩阵的行号和列号都是任务ID。在该图中,元素[T1,T2]的值为1,也就意味这T1依赖于T2.如果X不依赖于Y,那元素[X,Y]将为0。因此位于一条对角线上的元素([T1,T1]、[T2,T2]等)全部为0。如果某个元素值为N/A,表示这两个元素之间的依赖关系尚不明确。新任务之间的依赖关系能够依据任务标记器计算出来。其计算过程将在之后介绍。
图6描述了某个提交到多节点分布式系统中的任务结构。任务主要包含两部分,任务头和任务体。任务头又包括任务的输入/输出数据类型,能够用于计算任务的依赖关系。任务体包括了将要执行的任务程序。
当一种新类型的任务提交到多节点分布式系统中时,需要对该任务的依赖关系进行检查。图7显示了检测任务之间依赖关系的过程。调度系统将把所有曾经提交到本分布式集群的记录保存到一个任务集合。这些任务的输入和输出也将记录在本集合中。当一个新任务提交时(步骤400),任务标记器检查这个任务是否需要输入数据(步骤401)。如果不需要(步骤401的否),任务标记器将把该任务当作独立任务,并且任务关联矩阵中的相应行全部标记为0(步骤403)。如果需要(步骤401的是),任务标记器将检查该任务是否需要其他任务的输出数据(步骤402)。如果不(步骤402的否),即该任务只需要来自用户的直接输入,不需其他任务的输出,任务标记器同样把该任务作为独立任务(步骤403);如果是(步骤402的是),任务标记器将在任务集合中搜索哪些任务的输出可以满足该任务的输入(步骤404),把检测到的任务作为本任务的依赖任务,在任务关联矩阵中的相应元素设置为1(步骤405)。
过滤独立任务的过程在图8中进行了介绍。如图8所示,任务过滤器305周期性地进行任务的过滤。这个过程可以分为两部分,更新任务的标记集合与过滤独立任务。
任务过滤器周期性地进行检查(步骤500),看是否有已经完成的任务(步骤501)。如果有,系统检查新任务池(步骤502),从相关任务的标记集合中删除已完成任务的ID(步骤503)。比如,任务过滤器发现任务T4已经完成,而T4的ID存在于T1和T2的标记中(如图3所示),系统将从T1和T2的标记集合中删除T4。然后,将已完成的任务从缓存中删除(步骤504)。
独立任务的过滤是通过检查各个任务的标记集合是否为空实现的(步骤505)。如果为空,任务过滤器将把这一的任务从新任务池移动到过滤任务池的队列尾部(步骤506)。在本轮操作结束时,任务过滤器将休眠一段时间(步骤507),然后在新一轮操作中重复以上步骤。
图9示出了独立任务过滤后的结果的例子。该图的上半部分显示的是任务过滤之前的状况,下半部分显示的是过滤后的状况。过滤之前,新任务池302中有两个任务的标记是空的,Task 6(600)和Task 7(601)。这意味着Task 6和Task 7是当前独立的任务。它们没有依赖任务或依赖任务已经完成。在周期性检测中,任务过滤器305发现这些独立任务,并且把它们移动到过滤任务池306中,并且把它们添加到该池任务队列的队尾。其他任务Task 1、2、3和5则不能过滤出来,因为它们有依赖任务并且他们的独立任务尚未执行完毕。
任务分发器309计算并决定被过滤出的任务应当被哪些处理节点执行。例如,任务分发的决策是基于来自任务规模表310、处理节点硬件水平表308、处理节点负载表311和任务已花费时间表312中的信息分析出来的。
任务分发器从过滤任务池中提取任务,根据每个任务在各个处理节点上的预测完成时间决定分发的目的处理节点。图10示出了用于计算某任务i在处理节点j上执行所需的执行时间的模型(EFij)、以及用于计算某处理节点j的响应时间的模型(RTj)。相比较任务执行的过程,任务从调度节点向处理节点传输所需时间通常很短,在此忽略。因此任务预计完成时间EFij包括处理节点j的响应时间和任务i的执行时间。响应时间RTj表示执行完处理节点j上已经安排的所有任务所花时间,这些任务完成后就可以执行新任务。RTj通常包括两部分.公式表示运行处理节点j的等待队列中的所有任务所花时间;公式Max(ETcj-PTc,0)表示完成正在运行任务所花时间。符号ETc表示当前任务在处理节点j上的总执行时间,PTc代表当前任务开始执行后已经花费的时间。因此ETcj-PTc就是预计执行完当前任务所需时间。ETcj-PTc是个预测值,可能小于0,因此Max(ETcj-PTc,0)用于估计所需时间更加合理。
图11示出了用于计算任务i在处理节点j上执行所需的执行时间的模型,该模型用一个多元线性回归模型作为例子,也可能用其他模型表示。在该模型中,至少考虑了4类处理节点因素:处理器(f1)、内存(f2)、网络(f3)、以及磁盘I/O(f4)。这4类因素是影响任务执行时间的主要处理节点因素。这4类因素对任务执行时间的影响采用图11中最后4个公式计算。不同因素对执行时间的影响如下:
1)任务执行时间与任务的规模、程序执行步数(PS)成正比,但与处理节点CPU频率(CF)和CPU空闲度(1-CUse%)成反比。
2)任务执行时间与任务对内存的需求量(MR)成正比,与处理节点内存量(MS)和内存空闲度(1-MUse%)成反比。
3)任务执行时间与任务所需的网络数据传输量(DTS)成正比,与处理节点的网络带宽(BW)和网络空闲度(1-BUse%)成反比。
4)任务执行时间与任务所需的磁盘I/O(DIO)数据量成正比,与处理节点的磁盘I/O速度(DS)和磁盘I/O空闲度(1-DUse%)成反比。
在计算某个任务执行时间时,需要参照该任务的规模。当前的计算模型使用4种属性,即程序执行步数、内存需求、网络数据传输量、以及磁盘I/O规模来度量任务的规模(其他属性例如服务器响应时间、操作系统进程数目也可以考虑)。安装在各个处理节点上的任务执行监控器(313)可以使用某些技术(例如系统钩子)来收集这些属性值,并保存在任务规模表(图12)中。只要这些任务运行过一次之后,以上属性就可以收集。因为这个原因,在某种任务第一次被调度时,用于计算任务执行时间的模型ET的效果会比较弱。但是比起处理节点状态的变化幅度,任务规模在任务的多次执行期间变化比较小。因此,从上次执行过程中收集到的任务规模,可以用于本次调度前的执行时间预测。而且,任务规模表会随着任务执行完毕及时更新,用作预测参数更加可靠。
图13示出了一个处理节点硬件水平表的例子。该表保存了各个处理节点的硬件属性,比如CPU频率、内存大小、网络带宽和磁盘I/O速度等。ET计算公式中的处理节点硬件水平参数(CF,MS,BW和DS)可以在该表中找到。该表的内容很少发生变化,除非处理节点的硬件发生变化。
图14示出了一个处理节点负载表。例如,该表记录了CPU使用率、内存使用率、网络带宽使用率和磁盘I/O使用率。这些属性显示了各个处理节点的负载及资源可利用比例。当处理节点负载较重时,其运行任务的性能变差,该处理节点空闲时,性能改善。ET模型中的各项负载参数(比如CUse,Muse,BUse和DUse)可以在该表中找到。表中的内容会根据任务执行监控器收集到的信息进行周期性更新。
图15示出了一个任务已花费时间表的例子。该表保存了各个处理节点上当前任务已经花费的执行时间。表头记录的是多节点分布式系统中的各个处理节点。该表第一行显示了每个处理节点上当前任务已运行时间,内容会根据最新的任务执行信息进行更新。比如,如果一个任务在处理节点N1上运行,而且已经开始了2分钟,该表中的N1对应的值则是2分钟。在多节点分布式系统启动时,该表中所有值均为0。
图16示出了任务分发器309的操作的主要工作流程。如果任务过滤器一样,任务分发器的工作也是周期性的。首先,它先更新缓存中的记录:它检查缓存中保存的任务完成信息,更新任务规模表310,处理节点负载表311,以及任务已花费时间表312。接下来,任务分发器计算各个处理节点的响应时间(步骤700)。然后,任务分发器需要检查是否应当分发一个或多个任务到处理节点集合。提前分发过多任务会导致预测精确度下降,从而使得任务执行效率下降;不提前分发任务则会导致处理节点闲置,浪费计算资源,因此需要在任务分发提前量上取得平衡。为了确定是否需要继续分发任务,任务分发器需要找出具有最短响应时间的处理节点Ns。接下来,任务分发器需要检查Ns上的等待队列是否超过了长度阈值L(步骤702)。如果任务多于L,即已经有大量任务进行了预先调度,任务分发器应该放弃再次调度任务,睡眠一段时间,再启动一个新周期(步骤703)。如果等待任务的数量少于L,任务分发器应当从过滤任务池的队列(307)中提取出任务Ti(步骤704),并把该任务分发到处理节点集合上。
为了确定任务Ti应当分发到哪个处理节点上,任务分发器需要计算出任务Ti在各个处理节点Nj上的预测完成时间EFij(步骤705)。EFij的值应该根据任务完成时间的预测模型EFij=RTj+ETij来进行预测。在这个公式中,RTj是处理节点Nj的响应时间,ETij是任务Ti在处理节点Nj上的预计执行时间。上段中介绍了RTj的计算过程。ETij的值是通过任务执行时间的数学模型计算出来的。当任务Ti在所有处理节点上的预计完成时间EFij计算出来后,任务分发器应当找出具有最短EFij的处理节点Nr(步骤706)。当处理节点Nr确定后,任务分发器将把任务Ti分发到处理节点Nr。任务Ti将被添加到处理节点Nr的等待队列末尾(步骤707)。
当任务Ti分发到某个处理节点上后,任务分发器将继续检查过滤任务池中是否有其他任务需要分发。如果是,对该过滤任务池中的任务队列中的下一个任务也将按照以上步骤进行分发。如果没有任务需要分发,则任务分发器的一个工作周期结束,它将在下一个周期开始前睡眠一段时间(步骤703)。
以上已经描述了如何将过滤出的任务分发到处理节点集合中去的过程。
计算任务预计完成时间EFij的过程如图17所示。当一个任务从过滤任务池中提取出来时(步骤800),任务分发器将检查任务规模表中是否有相应的任务规模记录(步骤801)。如果没有相关记录,说明这是该任务的第一次运行,将该任务i的执行时间标记为0(步骤802),并计算任务i的完成时间EFij。如果任务规模表中能够找到相应的任务规模记录,任务分发器可以从硬件水平表中找出处理节点的硬件数据,并从处理节点工作负载表中找出处理节点的负载数据(步骤803)。任务执行时间可以通过ETij模型,基于任务规模数据,处理节点硬件水平数据和处理节点负载数据计算出来(步骤804)。接下来,任务分发器找出处理节点j上已调度的任务,根据模型RTj计算出这些任务的时间耗费。在计算模型RTj过程中,如果无法查询到相应的任务规模或已花费时间,将把ETkj,ETcj和PTcj的值用0计算(步骤805)。最后,任务分发器使用任务i执行结果的计算结果和任务j响应时间,根据模型EFij来预测任务i完成时间(步骤806)。
在任务分发到各个处理节点后,它们将被放置在各个处理节点的等待队列中。这些处理节点将按照FIFO(先入先出)的顺序运行这些任务。处理节点每次从队列头部提取一个任务并运行。
图18示出了处理节点中的任务执行监视器313如何工作。该任务执行监视器313持续监控各个处理节点上的任务执行(步骤900),并把各处理节点当前任务已花费的执行时间传递给任务分发器(步骤901)。这些信息用于更新任务已花费时间表,然后,任务执行监控器将检查该处理节点上是否有其他已经完成的任务(步骤902)。如果不(步骤902的否),任务执行监控器将返回步骤900。如果是(步骤902的是),它将把已完成任务Ti的ID发送给任务过滤器来更新相关任务的标记集合(步骤903);同时,它也会收集程序步数,已使用内存大小,网络传输数据量,以及任务Ti的I/O数据量,并把这些数据发送给任务分发器用于更新任务规模表(步骤904)。此后,该任务执行监视器313将返回步骤902来检查该处理节点上是否有其他已经完成的任务。
通过任务执行监控器的工作,任务执行和处理节点状态信息将被收集并立即发送到任务分发器。任务规模表,处理节点负载表,以及任务已花费时间表的内容将及时更新。
任务执行时间的预测模型对任务分发的合理性非常重要。本发明采用机器学习的模型训练技术来保证模型ETij的准确性。图19描述了该模型的训练过程。首先,当某些任务完成后,系统将记录这些任务的规模及处理节点负载(步骤1000)。然后系统将以上执行记录保存到历史数据集合中。该集合中的数据分为两组:一组用于训练多元线性回归模型,可采用最小二乘法等方法(步骤1002);另一组用于验证(步骤1001)。模型参数的权重可以基于历史数据通过最小二乘法等方法确定。然后,系统使用校验数据来检验训练出的模型的准确性是否可以接受(步骤1003)。如果验证失败(步骤1003的否),任务分发器所采用的预测模型将不更新(步骤1004);如果验证成功(步骤1003的是),系统将采用新训练的模型来用作下次任务调度的计算依据(步骤1005)。
以下是本发明的一些仿真效果分析:
下表1表示在两个处理节点上的实际任务执行时间。
任务 | 处理节点1(N1) | 处理节点2(N2) |
T1 | 420s(秒) | 600s |
T2 | 360s | 510s |
下表2表示任务规模。
任务属性 | T1 | T2 |
程序步数(CPUtick) | 210M | 100M |
内存使用量(字节) | 400M | 360M |
网络传输数据量(字节) | 20M | 30M |
磁盘I/O数据量(字节) | 100M | 50M |
下表3表示处理节点硬件水平。
下表4表示处理节点负载。
处理节点 | N1 | N2 |
CPU使用率(%) | 10% | 20% |
内存使用率(%) | 10% | 50% |
网络使用率(%) | 5% | 10% |
磁盘I/O使用率(%) | 25% | 60% |
本发明具有两类优点。
第一个优点是本方法在预测任务完成时间方面有更高的准确性,这是因为在预测过程中考虑了更全面的因素。以下用一个简单的例子来说明。我们假设两种任务在两个处理节点上的实际执行时间如表1所示。任务规模、处理节点硬件水平和处理节点负载如表2、表3、表4所示。由于处理节点状态的频繁变更,这些记录只是临时性的。为了比较现有技术与本发明的效果,我们假设某时刻的任务执行场景如下:“处理节点N1和N2均空闲,任务T1和T2进入多节点分布式系统待执行”。
根据背景技术所提到的专利文献1中的方法,如果最新的任务执行记录如下:“T1在N1上执行7分钟;T2在N2上执行6分钟”。根据这样的执行记录,当T1到达多节点分布式系统时,该方法将选择N2作为T1的执行处理节点,因为N2的最新任务执行记录小于N1的(6<7)。但是,实际上这并不是最好的选择。T1在N2上执行要花费10分钟。采用这种方法,两个任务的总执行时间为10分钟。
如果使用背景技术所提到的专利文献2中的方法,为T1选择的任务执行处理节点将会是N2,因为N2的CPU可用度2.88(3.6×0.8),这比N1的值(1.8)要好,并且N2的网络可用度为90(100×0.9),这也比N1的值(42.75)高。事实上,N2并不是执行T1的最佳选择。实际上执行T1时,N1要比N2快,因为T1的内存使用量很大。用这种方法,两个任务的总执行时间将同样是10分钟。
当采用本发明所述方法时,系统将预测任务T1在两个处理节点上的完成时间。如果模型训练所确定的ETij权重参数为(W1=1000,W2=600,W3=200,W4=10,W5=10),则根据模型估算出T1在两个处理节点上的执行时间分别为374.33秒和656.92秒。系统将为任务T1选择处理节点N1,因为N1在完成T1时花费更少的时间(374.33秒),少于N2(656.92秒)。它将为T2选择执行处理节点N2,尽管T2在N1上的预测执行时间(328.58秒)小于N2(562.95秒)。这是因为N1已经在运行T1,而N2一直空闲(562.95<374.33+328.58)。因此两个任务总计完成时间为8.5分钟,小于两种现有技术所用时间。
第2个优点是本发明在调度关联任务时比现有技术花费更少的时间。根据背景技术所提到的非专利文献3中的方法,一组相同优先级的任务必须等到他们的前置任务组全部执行完后才能开始执行,这浪费了不少时间。
采用本发明所述方法,一个任务只需要等待它的依赖任务完成后即可调度执行。不需要等待前置任务组的完成。因此,全部任务的完成时间比起现有技术要短。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
Claims (15)
1.一种多节点分布式系统中的任务调度装置,包括:
新任务池,用于存储新任务,所述新任务至少包括添加了依赖任务标记的新任务;
任务过滤器,用于从新任务池所存储的新任务中过滤出标记为空的任务;
过滤任务池,用于存储任务过滤器所过滤出的标记为空的任务;
任务分发器,用于针对过滤任务池所存储的每个任务,根据任务完成时间预测模型,来预测在处理节点集合中的每个处理节点上执行该任务所需的完成时间,并将该任务分配给预测出的完成时间最短的处理节点。
2.根据权利要求1所述的任务调度装置,还包括:
任务标记器,当新任务被提交到所述多节点分布式系统时,通过查询任务关联矩阵,找出该新任务的依赖任务,并为该新任务添加相应的依赖任务标记,并将添加了依赖任务标记的新任务放置到所述新任务池。
3.根据权利要求1所述的任务调度装置,其中,
在处理节点结束一个任务的执行之后,所述任务过滤器根据该处理节点的任务执行监控器发送来的关于该任务执行结束的信息,从依赖于该已执行任务的任务所具有的依赖任务标记中去除该已执行任务的标记。
4.根据权利要求1所述的任务调度装置,其中,
所述任务完成时间预测模型至少采用以下参数中的任一项:任务规模、处理节点硬件水平和处理节点负载。
5.根据权利要求4所述的任务调度装置,还包括:
用于存储处理节点执行的各任务的任务规模的任务规模表;
用于存储各处理节点的硬件水平的处理节点硬件水平表;以及
用于存储各处理节点上的负载的处理节点负载表。
6.根据权利要求5所述的任务调度装置,其中,所述任务规模表和所述处理节点负载表分别由所述任务分发器根据各处理节点的任务执行监控器发送来的相关信息进行更新。
7.根据权利要求1所述的任务调度装置,其中,
所述任务完成时间预测模型是基于处理节点执行任务时所记录的包括任务规模、处理节点负载的历史数据来进行训练校准的。
8.根据权利要求1所述的任务调度装置,其中,
所述任务完成时间预测模型包括:用于计算在该处理节点上执行该任务所需的执行时间的模型,以及用于计算该处理节点的响应时间的模型,其中,所述该处理节点的响应时间包括:在该处理节点上执行等待队列中的所有等待任务所需的执行时间、以及完成该处理节点上正在运行的当前任务所需的执行时间。
9.根据权利要求8所述的任务调度装置,还包括:
用于存储在该处理节点上开始执行当前任务后已花费时间的任务已花费时间表。
10.根据权利要求9所述的任务调度装置,其中,
所述任务已花费时间表由所述任务分发器根据各处理节点的任务执行监控器发送来的信息进行更新。
11.根据权利要求4所述的任务调度装置,其中,用于计算在该处理节点上执行该任务所需的执行时间的模型采用多元线性回归模型。
12.根据权利要求1所述的任务调度装置,其中,
所述任务规模至少包括以下任一项:程序步数、内存使用量、网络传输数据量和磁盘I/O数据量;
所述处理节点硬件水平至少包括以下任一项:CPU主频、内存大小、网络带宽和磁盘I/O速度;以及
所述处理节点负载至少包括以下任一项:CPU使用率、内存使用率、网络使用率和磁盘I/O使用率。
13.根据权利要求1所述的任务调度装置,其中,
所述标记为空的任务是不依赖于其他任务的独立任务。
14.根据权利要求1所述的任务调度装置,其中,
所述多节点分布式系统是网格系统。
15.一种在多节点分布式系统中进行任务调度的方法,包括:
从新任务池所存储的新任务中过滤出标记为空的任务,其中所述新任务至少包括添加了依赖任务标记的新任务;
针对过滤出的标记为空的每个任务,根据任务完成时间预测模型,来预测在处理节点集合中的每个处理节点上执行该任务所需的完成时间;以及
将该任务分配给预测出的完成时间最短的处理节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101671762A CN102831012A (zh) | 2011-06-16 | 2011-06-16 | 多节点分布式系统中的任务调度装置和任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101671762A CN102831012A (zh) | 2011-06-16 | 2011-06-16 | 多节点分布式系统中的任务调度装置和任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102831012A true CN102831012A (zh) | 2012-12-19 |
Family
ID=47334161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101671762A Pending CN102831012A (zh) | 2011-06-16 | 2011-06-16 | 多节点分布式系统中的任务调度装置和任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831012A (zh) |
Cited By (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309946A (zh) * | 2013-05-16 | 2013-09-18 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN103440167A (zh) * | 2013-09-04 | 2013-12-11 | 福州大学 | Hadoop多作业环境下自学习反馈的任务调度方法 |
CN103488691A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 任务调度装置和任务调度方法 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN103873293A (zh) * | 2014-03-05 | 2014-06-18 | 杭州华三通信技术有限公司 | 一种健康探测装置及方法 |
CN103927228A (zh) * | 2013-01-15 | 2014-07-16 | 株式会社日立制作所 | 作业执行预测方法和设备 |
CN104052915A (zh) * | 2013-03-12 | 2014-09-17 | 三星泰科威株式会社 | 相机、操作相机的方法和具有所述相机的监控系统 |
CN104182279A (zh) * | 2014-02-26 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种任务调度方法、装置及系统 |
CN104346214A (zh) * | 2013-07-30 | 2015-02-11 | 中国银联股份有限公司 | 用于分布式环境的异步任务管理装置及方法 |
CN104572295A (zh) * | 2014-12-12 | 2015-04-29 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机体系结构的结构网格数据管理方法 |
WO2015196911A1 (zh) * | 2014-06-27 | 2015-12-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN105630874A (zh) * | 2015-12-18 | 2016-06-01 | 贵州大学 | 一种基于阵列模型的数据库系统 |
CN105740249A (zh) * | 2014-12-08 | 2016-07-06 | Tcl集团股份有限公司 | 一种大数据作业并行调度过程中的处理方法及其系统 |
CN106020988A (zh) * | 2016-06-03 | 2016-10-12 | 北京邮电大学 | 一种智能视频监控系统离线任务调度方法及装置 |
CN106250240A (zh) * | 2016-08-02 | 2016-12-21 | 北京科技大学 | 一种任务优化调度方法 |
CN106327251A (zh) * | 2016-08-22 | 2017-01-11 | 北京小米移动软件有限公司 | 模型训练系统和方法 |
CN106712924A (zh) * | 2015-11-16 | 2017-05-24 | 方正国际软件(北京)有限公司 | 一种实现通用有时序通讯的方法及装置 |
CN106874112A (zh) * | 2017-01-17 | 2017-06-20 | 华南理工大学 | 一种结合负载均衡的工作流回填方法 |
CN106980543A (zh) * | 2017-04-05 | 2017-07-25 | 福建智恒软件科技有限公司 | 基于事件触发的分布式任务调度方法及装置 |
CN107168770A (zh) * | 2017-04-14 | 2017-09-15 | 中国人民解放军国防科学技术大学 | 一种低能耗的云数据中心工作流调度与资源供给方法 |
CN107168790A (zh) * | 2017-03-31 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种作业的调度方法及装置 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN107562913A (zh) * | 2017-09-12 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种分布式文件系统的数据存储方法及装置 |
CN107659595A (zh) * | 2016-07-25 | 2018-02-02 | 阿里巴巴集团控股有限公司 | 一种评估分布式集群处理指定业务的能力的方法和装置 |
CN107819855A (zh) * | 2017-11-14 | 2018-03-20 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN107943577A (zh) * | 2016-10-12 | 2018-04-20 | 百度在线网络技术(北京)有限公司 | 用于调度任务的方法和装置 |
CN107959692A (zh) * | 2016-10-14 | 2018-04-24 | 中国电信股份有限公司 | 用于获得安全资源的等效负载的方法和系统 |
CN108154252A (zh) * | 2016-12-02 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 用于预估流程完成时间的方法和装置 |
CN108259443A (zh) * | 2016-12-29 | 2018-07-06 | 北京视联动力国际信息技术有限公司 | 一种视联网虚拟终端入网认证方法和装置 |
CN108280522A (zh) * | 2018-01-03 | 2018-07-13 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
CN108897608A (zh) * | 2018-05-31 | 2018-11-27 | 中国科学院软件研究所 | 一种数据驱动可扩展的智能通用任务调度系统 |
CN109101308A (zh) * | 2018-07-20 | 2018-12-28 | 广州农村商业银行股份有限公司 | 一种任务传递及跟踪显示方法及装置 |
CN109117141A (zh) * | 2018-09-04 | 2019-01-01 | 深圳市木瓜移动科技有限公司 | 简化编程的方法、装置、电子设备、计算机可读存储介质 |
CN109144716A (zh) * | 2017-06-28 | 2019-01-04 | 中兴通讯股份有限公司 | 基于机器学习的操作系统调度方法及装置、设备 |
CN109189571A (zh) * | 2018-07-30 | 2019-01-11 | 南京邮电大学 | 计算任务调度方法及系统、边缘节点、存储介质和终端 |
CN109376137A (zh) * | 2018-12-17 | 2019-02-22 | 中国人民解放军战略支援部队信息工程大学 | 一种文件处理方法及装置 |
CN109376012A (zh) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
CN109561148A (zh) * | 2018-11-30 | 2019-04-02 | 湘潭大学 | 边缘计算网络中基于有向无环图的分布式任务调度方法 |
CN109615213A (zh) * | 2018-12-06 | 2019-04-12 | 广东金赋科技股份有限公司 | 一种运维服务任务的智能分配方法及系统 |
CN109656719A (zh) * | 2018-12-19 | 2019-04-19 | Oppo广东移动通信有限公司 | 算法处理方法、装置、存储介质及终端设备 |
CN109669767A (zh) * | 2018-11-30 | 2019-04-23 | 河海大学 | 一种面向多类型上下文依赖的任务封装和调度方法及系统 |
CN109753849A (zh) * | 2017-11-03 | 2019-05-14 | 杭州海康威视数字技术股份有限公司 | 处理视频分析任务的方法和装置 |
CN109784656A (zh) * | 2018-12-18 | 2019-05-21 | 河北省科学院应用数学研究所 | 一种离散制造协同生产计划排程方法 |
CN109901921A (zh) * | 2019-02-22 | 2019-06-18 | 北京致远互联软件股份有限公司 | 任务队列执行时间预测方法、装置及实现装置 |
CN110231995A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 一种基于Actor模型的任务调度方法、装置及存储介质 |
CN110311987A (zh) * | 2019-07-24 | 2019-10-08 | 中南民族大学 | 微服务器的节点调度方法、装置、设备及存储介质 |
CN110569252A (zh) * | 2018-05-16 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 一种数据处理系统及方法 |
CN111079942A (zh) * | 2017-08-30 | 2020-04-28 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN111176840A (zh) * | 2019-12-20 | 2020-05-19 | 青岛海尔科技有限公司 | 分布式任务的分配优化方法和装置、存储介质及电子装置 |
CN111355751A (zh) * | 2018-12-20 | 2020-06-30 | 普天信息技术有限公司 | 任务调度方法及装置 |
CN111475298A (zh) * | 2020-04-03 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111492624A (zh) * | 2017-10-23 | 2020-08-04 | 西门子股份公司 | 用于控制和/或监控装置的方法和控制系统 |
CN111756802A (zh) * | 2020-05-26 | 2020-10-09 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
CN111861012A (zh) * | 2020-07-23 | 2020-10-30 | 西安奥卡云数据科技有限公司 | 一种测试任务执行时间预测方法及最优执行节点选择方法 |
WO2021073414A1 (zh) * | 2019-10-15 | 2021-04-22 | 平安科技(深圳)有限公司 | 一种任务调度的方法及相关装置 |
CN112698943A (zh) * | 2020-12-29 | 2021-04-23 | 北京顺达同行科技有限公司 | 资源分配方法、装置、计算机设备以及存储介质 |
WO2021159638A1 (zh) * | 2020-02-12 | 2021-08-19 | 平安科技(深圳)有限公司 | 集群队列资源的调度方法、装置、设备及存储介质 |
CN113495791A (zh) * | 2021-09-07 | 2021-10-12 | 上海燧原科技有限公司 | 一种任务处理系统、方法及芯片 |
CN114860410A (zh) * | 2022-05-19 | 2022-08-05 | 北京百度网讯科技有限公司 | 批量任务处理的方法、装置及电子设备 |
CN117610325A (zh) * | 2024-01-24 | 2024-02-27 | 中国人民解放军国防科技大学 | 基于分布式的优化设计节点调度方法、系统和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070094662A1 (en) * | 2005-10-24 | 2007-04-26 | Viktors Berstis | Method and apparatus for a multidimensional grid scheduler |
CN101013386A (zh) * | 2007-02-06 | 2007-08-08 | 华中科技大学 | 基于反馈机制的网格任务调度方法 |
CN101309208A (zh) * | 2008-06-21 | 2008-11-19 | 华中科技大学 | 一种适用于网格环境的基于可靠性代价的作业调度系统 |
CN101697141A (zh) * | 2009-10-30 | 2010-04-21 | 清华大学 | 网格中基于历史数据建模的作业性能预测方法 |
CN102077172A (zh) * | 2008-07-02 | 2011-05-25 | Nxp股份有限公司 | 使用运行时间任务调度的多处理器电路 |
-
2011
- 2011-06-16 CN CN2011101671762A patent/CN102831012A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070094662A1 (en) * | 2005-10-24 | 2007-04-26 | Viktors Berstis | Method and apparatus for a multidimensional grid scheduler |
CN101013386A (zh) * | 2007-02-06 | 2007-08-08 | 华中科技大学 | 基于反馈机制的网格任务调度方法 |
CN101309208A (zh) * | 2008-06-21 | 2008-11-19 | 华中科技大学 | 一种适用于网格环境的基于可靠性代价的作业调度系统 |
CN102077172A (zh) * | 2008-07-02 | 2011-05-25 | Nxp股份有限公司 | 使用运行时间任务调度的多处理器电路 |
CN101697141A (zh) * | 2009-10-30 | 2010-04-21 | 清华大学 | 网格中基于历史数据建模的作业性能预测方法 |
Cited By (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927228A (zh) * | 2013-01-15 | 2014-07-16 | 株式会社日立制作所 | 作业执行预测方法和设备 |
CN104052915B (zh) * | 2013-03-12 | 2019-03-29 | 韩华泰科株式会社 | 相机、操作相机的方法和具有所述相机的监控系统 |
CN104052915A (zh) * | 2013-03-12 | 2014-09-17 | 三星泰科威株式会社 | 相机、操作相机的方法和具有所述相机的监控系统 |
CN103309946A (zh) * | 2013-05-16 | 2013-09-18 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN103309946B (zh) * | 2013-05-16 | 2016-12-28 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN104346214B (zh) * | 2013-07-30 | 2018-09-04 | 中国银联股份有限公司 | 用于分布式环境的异步任务管理装置及方法 |
CN104346214A (zh) * | 2013-07-30 | 2015-02-11 | 中国银联股份有限公司 | 用于分布式环境的异步任务管理装置及方法 |
CN103488691A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 任务调度装置和任务调度方法 |
CN103440167A (zh) * | 2013-09-04 | 2013-12-11 | 福州大学 | Hadoop多作业环境下自学习反馈的任务调度方法 |
CN103440167B (zh) * | 2013-09-04 | 2016-06-29 | 福州大学 | Hadoop多作业环境下自学习反馈的任务调度方法 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN103701635B (zh) * | 2013-12-10 | 2017-02-15 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN104182279A (zh) * | 2014-02-26 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种任务调度方法、装置及系统 |
CN103873293A (zh) * | 2014-03-05 | 2014-06-18 | 杭州华三通信技术有限公司 | 一种健康探测装置及方法 |
CN103873293B (zh) * | 2014-03-05 | 2018-06-12 | 新华三技术有限公司 | 一种健康探测装置及方法 |
WO2015196911A1 (zh) * | 2014-06-27 | 2015-12-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN105446979B (zh) * | 2014-06-27 | 2019-02-01 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN105446979A (zh) * | 2014-06-27 | 2016-03-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
US10102038B2 (en) | 2014-06-27 | 2018-10-16 | Huawei Technologies Co., Ltd. | Data mining method and node |
CN105740249A (zh) * | 2014-12-08 | 2016-07-06 | Tcl集团股份有限公司 | 一种大数据作业并行调度过程中的处理方法及其系统 |
CN105740249B (zh) * | 2014-12-08 | 2020-05-22 | Tcl科技集团股份有限公司 | 一种大数据作业并行调度过程中的处理方法及其系统 |
CN104572295B (zh) * | 2014-12-12 | 2016-06-01 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机体系结构的结构网格数据管理方法 |
CN104572295A (zh) * | 2014-12-12 | 2015-04-29 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机体系结构的结构网格数据管理方法 |
CN106712924B (zh) * | 2015-11-16 | 2021-03-19 | 方正国际软件(北京)有限公司 | 一种实现通用有时序通讯的方法及装置 |
CN106712924A (zh) * | 2015-11-16 | 2017-05-24 | 方正国际软件(北京)有限公司 | 一种实现通用有时序通讯的方法及装置 |
CN105630874A (zh) * | 2015-12-18 | 2016-06-01 | 贵州大学 | 一种基于阵列模型的数据库系统 |
CN106020988A (zh) * | 2016-06-03 | 2016-10-12 | 北京邮电大学 | 一种智能视频监控系统离线任务调度方法及装置 |
CN106020988B (zh) * | 2016-06-03 | 2019-03-15 | 北京邮电大学 | 一种智能视频监控系统离线任务调度方法及装置 |
CN107659595A (zh) * | 2016-07-25 | 2018-02-02 | 阿里巴巴集团控股有限公司 | 一种评估分布式集群处理指定业务的能力的方法和装置 |
CN106250240B (zh) * | 2016-08-02 | 2019-03-15 | 北京科技大学 | 一种任务优化调度方法 |
CN106250240A (zh) * | 2016-08-02 | 2016-12-21 | 北京科技大学 | 一种任务优化调度方法 |
CN106327251A (zh) * | 2016-08-22 | 2017-01-11 | 北京小米移动软件有限公司 | 模型训练系统和方法 |
CN107943577B (zh) * | 2016-10-12 | 2022-03-04 | 上海优扬新媒信息技术有限公司 | 用于调度任务的方法和装置 |
CN107943577A (zh) * | 2016-10-12 | 2018-04-20 | 百度在线网络技术(北京)有限公司 | 用于调度任务的方法和装置 |
CN107959692A (zh) * | 2016-10-14 | 2018-04-24 | 中国电信股份有限公司 | 用于获得安全资源的等效负载的方法和系统 |
CN108154252A (zh) * | 2016-12-02 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 用于预估流程完成时间的方法和装置 |
CN108259443A (zh) * | 2016-12-29 | 2018-07-06 | 北京视联动力国际信息技术有限公司 | 一种视联网虚拟终端入网认证方法和装置 |
CN106874112A (zh) * | 2017-01-17 | 2017-06-20 | 华南理工大学 | 一种结合负载均衡的工作流回填方法 |
CN106874112B (zh) * | 2017-01-17 | 2020-04-28 | 华南理工大学 | 一种结合负载均衡的工作流回填方法 |
CN107168790B (zh) * | 2017-03-31 | 2020-04-03 | 北京奇艺世纪科技有限公司 | 一种作业的调度方法及装置 |
CN107168790A (zh) * | 2017-03-31 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种作业的调度方法及装置 |
CN106980543A (zh) * | 2017-04-05 | 2017-07-25 | 福建智恒软件科技有限公司 | 基于事件触发的分布式任务调度方法及装置 |
CN106980543B (zh) * | 2017-04-05 | 2020-02-07 | 福建智恒软件科技有限公司 | 基于事件触发的分布式任务调度方法及装置 |
CN107168770A (zh) * | 2017-04-14 | 2017-09-15 | 中国人民解放军国防科学技术大学 | 一种低能耗的云数据中心工作流调度与资源供给方法 |
CN107168770B (zh) * | 2017-04-14 | 2020-03-27 | 中国人民解放军国防科学技术大学 | 一种低能耗的云数据中心工作流调度与资源供给方法 |
CN109144716A (zh) * | 2017-06-28 | 2019-01-04 | 中兴通讯股份有限公司 | 基于机器学习的操作系统调度方法及装置、设备 |
CN107450972B (zh) * | 2017-07-04 | 2020-10-16 | 创新先进技术有限公司 | 一种调度方法、装置以及电子设备 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN111079942A (zh) * | 2017-08-30 | 2020-04-28 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN111079942B (zh) * | 2017-08-30 | 2023-03-24 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN107562913A (zh) * | 2017-09-12 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种分布式文件系统的数据存储方法及装置 |
CN111492624B (zh) * | 2017-10-23 | 2022-09-23 | 西门子股份公司 | 用于控制和/或监控装置的方法和控制系统 |
US11615007B2 (en) | 2017-10-23 | 2023-03-28 | Siemens Aktiengesellschaft | Method and control system for controlling and/or monitoring devices |
CN111492624A (zh) * | 2017-10-23 | 2020-08-04 | 西门子股份公司 | 用于控制和/或监控装置的方法和控制系统 |
CN109753849A (zh) * | 2017-11-03 | 2019-05-14 | 杭州海康威视数字技术股份有限公司 | 处理视频分析任务的方法和装置 |
CN107819855B (zh) * | 2017-11-14 | 2020-07-28 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN107819855A (zh) * | 2017-11-14 | 2018-03-20 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN108280522A (zh) * | 2018-01-03 | 2018-07-13 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
CN108280522B (zh) * | 2018-01-03 | 2021-08-20 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
CN110569252A (zh) * | 2018-05-16 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 一种数据处理系统及方法 |
CN108897608B (zh) * | 2018-05-31 | 2021-09-07 | 中国科学院软件研究所 | 一种数据驱动可扩展的智能通用任务调度系统 |
CN108897608A (zh) * | 2018-05-31 | 2018-11-27 | 中国科学院软件研究所 | 一种数据驱动可扩展的智能通用任务调度系统 |
CN109101308A (zh) * | 2018-07-20 | 2018-12-28 | 广州农村商业银行股份有限公司 | 一种任务传递及跟踪显示方法及装置 |
CN109189571A (zh) * | 2018-07-30 | 2019-01-11 | 南京邮电大学 | 计算任务调度方法及系统、边缘节点、存储介质和终端 |
CN109117141B (zh) * | 2018-09-04 | 2021-09-24 | 深圳市木瓜移动科技有限公司 | 简化编程的方法、装置、电子设备、计算机可读存储介质 |
CN109117141A (zh) * | 2018-09-04 | 2019-01-01 | 深圳市木瓜移动科技有限公司 | 简化编程的方法、装置、电子设备、计算机可读存储介质 |
CN109376012A (zh) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
CN109669767B (zh) * | 2018-11-30 | 2022-09-23 | 河海大学 | 一种面向多类型上下文依赖的任务封装和调度方法及系统 |
CN109669767A (zh) * | 2018-11-30 | 2019-04-23 | 河海大学 | 一种面向多类型上下文依赖的任务封装和调度方法及系统 |
CN109561148B (zh) * | 2018-11-30 | 2021-03-23 | 湘潭大学 | 边缘计算网络中基于有向无环图的分布式任务调度方法 |
CN109561148A (zh) * | 2018-11-30 | 2019-04-02 | 湘潭大学 | 边缘计算网络中基于有向无环图的分布式任务调度方法 |
CN109615213A (zh) * | 2018-12-06 | 2019-04-12 | 广东金赋科技股份有限公司 | 一种运维服务任务的智能分配方法及系统 |
CN109376137A (zh) * | 2018-12-17 | 2019-02-22 | 中国人民解放军战略支援部队信息工程大学 | 一种文件处理方法及装置 |
CN109784656B (zh) * | 2018-12-18 | 2021-02-12 | 河北省科学院应用数学研究所 | 一种离散制造协同生产计划排程方法 |
CN109784656A (zh) * | 2018-12-18 | 2019-05-21 | 河北省科学院应用数学研究所 | 一种离散制造协同生产计划排程方法 |
CN109656719A (zh) * | 2018-12-19 | 2019-04-19 | Oppo广东移动通信有限公司 | 算法处理方法、装置、存储介质及终端设备 |
CN111355751A (zh) * | 2018-12-20 | 2020-06-30 | 普天信息技术有限公司 | 任务调度方法及装置 |
CN109901921A (zh) * | 2019-02-22 | 2019-06-18 | 北京致远互联软件股份有限公司 | 任务队列执行时间预测方法、装置及实现装置 |
CN109901921B (zh) * | 2019-02-22 | 2022-02-11 | 北京致远互联软件股份有限公司 | 任务队列执行时间预测方法、装置及实现装置 |
CN110231995B (zh) * | 2019-05-20 | 2023-08-08 | 平安科技(深圳)有限公司 | 一种基于Actor模型的任务调度方法、装置及存储介质 |
CN110231995A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 一种基于Actor模型的任务调度方法、装置及存储介质 |
CN110311987A (zh) * | 2019-07-24 | 2019-10-08 | 中南民族大学 | 微服务器的节点调度方法、装置、设备及存储介质 |
WO2021073414A1 (zh) * | 2019-10-15 | 2021-04-22 | 平安科技(深圳)有限公司 | 一种任务调度的方法及相关装置 |
CN111176840B (zh) * | 2019-12-20 | 2023-11-28 | 青岛海尔科技有限公司 | 分布式任务的分配优化方法和装置、存储介质及电子装置 |
CN111176840A (zh) * | 2019-12-20 | 2020-05-19 | 青岛海尔科技有限公司 | 分布式任务的分配优化方法和装置、存储介质及电子装置 |
WO2021159638A1 (zh) * | 2020-02-12 | 2021-08-19 | 平安科技(深圳)有限公司 | 集群队列资源的调度方法、装置、设备及存储介质 |
CN111475298A (zh) * | 2020-04-03 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111475298B (zh) * | 2020-04-03 | 2023-05-02 | 北京字节跳动网络技术有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111756802B (zh) * | 2020-05-26 | 2021-09-03 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
CN111756802A (zh) * | 2020-05-26 | 2020-10-09 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
CN111861012A (zh) * | 2020-07-23 | 2020-10-30 | 西安奥卡云数据科技有限公司 | 一种测试任务执行时间预测方法及最优执行节点选择方法 |
CN112698943A (zh) * | 2020-12-29 | 2021-04-23 | 北京顺达同行科技有限公司 | 资源分配方法、装置、计算机设备以及存储介质 |
CN113495791B (zh) * | 2021-09-07 | 2021-12-14 | 上海燧原科技有限公司 | 一种任务处理系统、方法及芯片 |
CN113495791A (zh) * | 2021-09-07 | 2021-10-12 | 上海燧原科技有限公司 | 一种任务处理系统、方法及芯片 |
CN114860410A (zh) * | 2022-05-19 | 2022-08-05 | 北京百度网讯科技有限公司 | 批量任务处理的方法、装置及电子设备 |
CN117610325A (zh) * | 2024-01-24 | 2024-02-27 | 中国人民解放军国防科技大学 | 基于分布式的优化设计节点调度方法、系统和设备 |
CN117610325B (zh) * | 2024-01-24 | 2024-04-05 | 中国人民解放军国防科技大学 | 基于分布式的优化设计节点调度方法、系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831012A (zh) | 多节点分布式系统中的任务调度装置和任务调度方法 | |
CN103729248B (zh) | 一种基于缓存感知的确定待迁移任务的方法和装置 | |
CN101692208B (zh) | 实时交通信息处理的任务调度方法 | |
CN102868573B (zh) | Web服务负载云测试方法和装置 | |
CN105656973A (zh) | 一种分布式节点组内任务调度方法及系统 | |
CN104580447B (zh) | 一种基于访问热度的时空数据服务调度方法 | |
CN101916224A (zh) | 测试进程异常检测方法以及自动化测试控制装置 | |
CN103970641A (zh) | 一种基于容量预测技术的设备扩容方法 | |
CN104407688A (zh) | 基于树回归的虚拟化云平台能耗测量方法及系统 | |
CN103699443A (zh) | 任务分发方法及扫描器 | |
CN108509280A (zh) | 一种基于推送模型的分布式计算集群本地性调度方法 | |
US20230229486A1 (en) | Virtual machine workload prediction method, virtual machine management method having the same and virtual machine management system implementing the same | |
JP6252309B2 (ja) | 監視漏れ特定処理プログラム,監視漏れ特定処理方法及び監視漏れ特定処理装置 | |
Yazdanov et al. | EHadoop: Network I/O aware scheduler for elastic MapReduce cluster | |
US9405864B2 (en) | Method for a design evaluation of a system | |
Lu et al. | InSTechAH: Cost-effectively autoscaling smart computing hadoop cluster in private cloud | |
Çavdar et al. | Quantifying the brown side of priority schedulers: Lessons from big clusters | |
Yang et al. | Design of kubernetes scheduling strategy based on LSTM and grey model | |
Iglesias et al. | A methodology for online consolidation of tasks through more accurate resource estimations | |
CN112580816A (zh) | 机器学习训练资源管理 | |
CN109936471A (zh) | 一种多集群的资源分配方法和装置 | |
Wang et al. | In stechah: An autoscaling scheme for hadoop in the private cloud | |
CN111625352A (zh) | 调度方法、装置及存储介质 | |
Okamura et al. | Optimal trigger time of software rejuvenation under probabilistic opportunities | |
US9465621B2 (en) | Priority activation of metrology driver in boot sequence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121219 |