CN104793990A - 一种多时序任务调度方法和系统 - Google Patents

一种多时序任务调度方法和系统 Download PDF

Info

Publication number
CN104793990A
CN104793990A CN201510190973.0A CN201510190973A CN104793990A CN 104793990 A CN104793990 A CN 104793990A CN 201510190973 A CN201510190973 A CN 201510190973A CN 104793990 A CN104793990 A CN 104793990A
Authority
CN
China
Prior art keywords
task
node
value
grid number
arithmetic capability
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
Application number
CN201510190973.0A
Other languages
English (en)
Other versions
CN104793990B (zh
Inventor
秦勃
景辉
刘健健
夏海涛
朱勇
韩卫灵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ocean University of China
Original Assignee
Ocean University of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ocean University of China filed Critical Ocean University of China
Priority to CN201510190973.0A priority Critical patent/CN104793990B/zh
Publication of CN104793990A publication Critical patent/CN104793990A/zh
Application granted granted Critical
Publication of CN104793990B publication Critical patent/CN104793990B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种任务调度方法和系统,特别涉及一种多时序任务调度方法和系统。包括以下步骤:采集节点信息,并根据节点信息设定每个节点的运算能力;采集任务信息,并根据任务信息设定每个任务的网格数;根据运算能力大小,将所有节点进行排序;根据任务的网格数多少,将所有任务进行排序;根据每个节点的负载状态,采用贪心算法,按照运算能力强的节点处理网格数大的任务的方式,将任务分配给各个节点。本发明考虑了当前平台上的资源分配及平台内各节点的负载能力和状态,在任务调度时会将计算量大的任务分配在计算能力强的节点上,能够有效避免饥饿状态和系统资源利用率低的问题,提高了整体的运算效率,优化了运算时间。

Description

一种多时序任务调度方法和系统
技术领域
本发明涉及一种任务调度方法和系统,特别涉及一种多时序任务调度方法和系统。
背景技术
在研究长时间序列下空间数据场的处理问题时,尤其是在节点计算能力不对称的情况下,Spark任务调度模式非常有利于提高数据处理效率。Spark中一共包括了两种任务调度算法,一种就是FIFO(先进先出)算法,另一种是Fair(公平调度)算法。FIFO算法是Spark框架下的默认调度算法,该算法的最大特点就是可用性好,原理简单易懂,适应性强。它是专门为单用户的单一类型数据处理作业而设计的一套算法。FIFO的不足之处是先入先出这种类似于排队的方式较为简单,如果排在前面的job的计算量较小,而队列后面的job计算量大时,大计算量的job得不到足够的资源,而处于饥饿的状态,这样极容易造成资源分配的不公平。同时,FIFO是针对单用户的大型批处理作业实现的,如果多用户共同使用这一平台去运行不同种类的作业,由于FIFO对用户不同类型作业需求差异的忽略,则很可能引起因平台整体性能和系统资源利用率低导致的作业执行问题。Fair算法实现了在每个应用程序中,允许多线程同时提交作业,并通过一种等级公平调用器来实现多个作业对集群资源的共享。Fair算法的核心目标是使需求不同的用户在获得资源的机会上是平等的。Fair算法的缺点是没有考虑当前节点的负载水平及其负载状态,这样很可能导致节点实际负载不均衡。如果计算任务的复杂度不同,在公平调度算法下极易造成各个计算节点负载不均衡,影响整体的计算效率。
发明内容
本发明所要解决的技术问题是提供一种多时序任务调度方法和系统,解决了现有技术中FIFO算法或Fair算法分配资源不均从而影响整体计算效率的技术问题。
本发明解决上述技术问题的技术方案如下:一种多时序任务调度方法,包括以下步骤:
步骤1,采集节点信息,并根据节点信息设定每个节点的运算能力;
步骤2,采集任务信息,并根据任务信息设定每个任务的网格数;
步骤3,根据运算能力大小,将所有节点进行排序;
步骤4,根据任务的网格数多少,将所有任务进行排序;
步骤5,根据每个节点的负载状态,采用贪心算法,按照运算能力强的节点处理网格数大的任务的方式,将任务分配给各个节点。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步的,步骤3中,将节点按照运算能力从高到低的顺序进行排序;步骤4中,将任务按照网格数从高到低的顺序进行排序。
进一步的,所述节点为计算机,根据计算机的CPU参数和/或GPU来设定节点的运算能力。
进一步的,步骤5具体为:
步骤501,判断节点个数和任务个数的关系,若节点个数不小于任务个数,则按照运算能力强的节点处理网格数大的任务的方式,将节点和任务一一对应进行计算;
步骤502,若节点个数小于任务个数,则先求取所有任务网格数多少之和与所有节点运算能力之和的比值A,
A为 Σ b i Σ a i = Σ ( b 1 + b 2 + · · · + b m ) Σ ( a 1 + a 2 + · · · + a n ) ;
其中b1、b2、bi、bm分别表示第1个、第2个、第i个、第m个任务的网格数多少,且b1、b2、……bm的数值大小依次减小;a1、a2、ai、an表示第1个、第2个、第i个、第n个节点的运算能力值,且a1、a2、……an的数值大小依次减小;
步骤503,判断是否将任务b1分配到节点a1:采集节点a1的当前任务值tmp1,计算当前任务值大小与该节点计算能力的比值B,
B为并计算比值C,C为
判断|C-A|和|B-A|的大小,若|C-A|≤|B-A|,则将任务b1分配到节点a1,并进入步骤504;若|C-A|>|B-A|,则重复步骤503,依次判断是否将任务b1分配到节点a2、a3……an,直至将任务b1分配出去,然后进入步骤504;
步骤504,按照任务大小从两边向中间的顺序,即按照b1、bm、b2、bm-1、b3、bm-2……的顺序,重复步骤503和504,直至所有任务全部分配出去。
进一步的,还包括步骤6,步骤6具体为:判断任务是否已经全部分配完成,若分配完成,则输出分配结果;若没有分配完成,则将已分配的节点和任务加入优先队列,从优先队列中每次取出一个当前任务值和节点运算能力比值最小的节点进行任务的二次分配,重复步骤5,直到将所有的任务和节点都加入优先队列之中,并输出分配结果。
一种多时序任务调度系统,包括节点运算能力设定模块、任务网格数设定模块、节点排序模块、任务排序模块和任务分配模块,
所述节点运算能力设定模块用于采集节点信息,并根据节点信息设定每个节点的运算能力;
所述任务网格数设定模块用于采集任务信息,并根据任务信息设定每个任务的网格数;
所述节点排序模块用于根据运算能力大小,将所有节点进行排序;
所述任务排序模块用于根据任务的网格数多少,将所有任务进行排序;
所述任务分配模块用于根据每个节点的负载状态,采用贪心算法,按照运算能力强的节点处理网格数大的任务的方式,将任务分配给各个节点。
进一步的,所述任务分配模块包括第一判断单元、计算单元、第二判断单元、分配单元和输出单元,
所述第一判断单元用于判断节点个数和任务个数的关系,并输出第一判断结果至分配单元;
所述计算单元用于计算所述A值、B值和C值,并将计算结果发送到所述第二判断单元;
所述A为 Σ b i Σ a i = Σ ( b 1 + b 2 + · · · + b m ) Σ ( a 1 + a 2 + · · · + a n ) ;
B为
C为
其中b1、b2、bi、bm分别表示第1个、第2个、第i个、第m个任务的网格数多少,且b1、b2、……bm的数值大小依次减小;a1、a2、ai、an表示第1个、第2个、第i个、第n个节点的运算能力值,且a1、a2、……an的数值大小依次减小;所述tmp1为节点对应的当前任务值;
所述第二判断单元用于接收所述A值、B值和C值,比较|C-A|和|B-A|的大小关系,并输出第二判断结果至分配单元;
所述分配单元用于接收所述第一判断结果和/或第二判断结果,并根据所述第一判断结果和/或第二判断结果,将任务分配给各个节点;
所述输出单元用于输出所述分配单元的分配结果。
进一步的,所述任务分配模块还包括第三判断单元,所述第三判断单元用于判断任务是否已经全部分配完成,并输出第三判断结果至分配单元;所述分配单元还用于接收第三判断结果,并将已分配的节点和任务加入优先队列,从优先队列中每次取出一个当前任务值和节点运算能力比值最小的节点进行任务的二次分配,直到将所有的任务和节点都加入优先队列之中。
进一步的,所述节点排序模块将节点按照运算能力从高到低的顺序进行排序;所述任务排序模块将任务按照网格数从高到低的顺序进行排序。
进一步的,所述节点为计算机,根据计算机的CPU参数和/或GPU来设定节点的运算能力。
本发明的有益效果是:本发明的方法和系统在任务调度时会将计算量大的任务分配在计算能力强的节点上,能够有效避免饥饿状态和系统资源利用率低的问题。本发明方法的分配方式,考虑了当前平台上的资源分配情况及平台内各节点上的负载能力和状态,因而避免了Fair算法由于没有考虑当前节点的负载水平及其负载状态而导致的节点负载不均衡的问题。同时针对计算量大且可估计的多任务或者手工分配和Spark原生分配方法无法达到时间最优化的任务,比如多时序海洋空间数据场动力计算任务,本发明方法可以优化任务的分配方式,从而达到最优化运行时间的效果。
附图说明
图1为本发明一种多时序任务调度方法的流程图。
图2为本发明一种多时序任务调度系统的结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明的方法通过研究Spark任务调度的方式来提高spark的运算效率。在该方法中,主要借用的是动态规划算法的基本思想,问题可以抽象化为一个简单的数学模型。
模型假设:首先,假设有n台计算机,它们之间的运算能力大小不同,并将它们运算能力的大小分别设定为a1、a2、…an。假设有m个任务,每个任务有一定的大小,任务大小用网格数表征,将这m个任务的大小设定为b1、b2、…bm
目标:假设第i个分的的任务总和大小为Ci,则目标函数
f = min { max { | ci ai - Σbi Σai | } }
模型分析:在数学上这是一个NP Hard问题,因此不能在多项式时间内求解,所采用近似法求解。
算法描述:首先将{an}和{bm}由大到小排序。
1、若n不小于m,则将节点和任务一一对应。这是因为如果不是一一对应的化,反而会导致计算时间变长。
2、若n小于m,则采用贪心算法的方法来求近似解。将{an}和{bm}都由大到小进行排列。在分配过程中,以每个节点的任务数之和与所有节点的计算能力之和的比为基准。为了能均匀地进行分配,从任务的最大值和最小值两端开始依次分配,分配原则如下:
首先计算出所有任务的大小和除以所有节点计算能力和的平均数:
Σ b i Σ a i ;
假设当前该节点任务的大小为tmp,则该节点已分的任务数大小与该节点计算能力的比值为
此时,若有一个任务大小为bj,考虑是否把bj分配到该节点取决于是否符合以下公式:
| tmp + b j a i - Σ b i Σ a i | ≤ | tmp a i - Σ b i Σ a i | ;
若符合,则把bj分配到该节点。节点分配按照顺序分配,如果一个节点不符合分配条件,则考虑下一个节点的分配。每次分配的任务按大小从两边向中间靠拢,这样分配起来效果更好。按照这个算法最后可能会有任务分配不完的情况。如果出现这种情况,则把所有已经分配好的数据组放到一个优先队列中,每次取出一个tmp/ai值最小的节点进行任务的二次分配,依次类推,最后将所有的数据组都放入优先队列之中。
如上所述,本发明实施例的整体流程图如图1所示,具体包括以下步骤:
步骤1,采集节点信息,并根据节点信息设定每个节点的运算能力;
步骤2,采集任务信息,并根据任务信息设定每个任务的网格数;
步骤3,根据运算能力大小,将所有节点从大到小进行排序;
步骤4,根据任务的网格数多少,将所有任务从大到小进行排序;
步骤5,判断节点个数和任务个数的关系,若节点个数不小于任务个数,则按照运算能力强的节点处理网格数大的任务的方式,将节点和任务一一对应进行计算;
步骤6,若节点个数小于任务个数,则先求取所有任务网格数多少之和与所有节点运算能力之和的比值A,
A为 Σ b i Σ a i = Σ ( b 1 + b 2 + · · · + b m ) Σ ( a 1 + a 2 + · · · + a n ) ;
其中b1、b2、bi、bm分别表示第1个、第2个、第i个、第m个任务的网格数多少,且b1、b2、……bm的数值大小依次减小;a1、a2、ai、an表示第1个、第2个、第i个、第n个节点的运算能力值,且a1、a2、……an的数值大小依次减小;
步骤7,判断是否将任务b1分配到节点a1:采集节点a1的当前任务值tmp1,计算当前任务值大小与该节点计算能力的比值B,
B为并计算比值C,C为
判断|C-A|和|B-A|的大小,若|C-A|≤|B-A|,则将任务b1分配到节点a1,并进入步骤504;若|C-A|>|B-A|,则重复步骤503,依次判断是否将任务b1分配到节点a2、a3……an,直至将任务b1分配出去,然后进入步骤504;
步骤8,按照任务大小从两边向中间的顺序,即按照b1、bm、b2、bm-1、b3、bm-2……的顺序,重复步骤503和504,直至所有任务全部分配出去;
步骤9,判断任务是否已经全部分配完成,若分配完成,则输出分配结果;若没有分配完成,则将已分配的节点和任务加入优先队列,从优先队列中每次取出一个当前任务值和节点运算能力比值最小的节点进行任务的二次分配,重复步骤5,直到将所有的任务和节点都加入优先队列之中,并输出分配结果。
如图2所示,为本发明一种多时序任务调度系统的结构图,包括节点运算能力设定模块、任务网格数设定模块、节点排序模块、任务排序模块和任务分配模块,所述节点运算能力设定模块用于采集节点信息,并根据节点信息设定每个节点的运算能力;所述任务网格数设定模块用于采集任务信息,并根据任务信息设定每个任务的网格数;所述节点排序模块用于根据运算能力大小,将所有节点进行排序;所述任务排序模块用于根据任务的网格数多少,将所有任务进行排序;所述任务分配模块用于根据每个节点的负载状态,采用贪心算法,按照运算能力强的节点处理网格数大的任务的方式,将任务分配给各个节点。
本实施例的任务分配模块包括第一判断单元、计算单元、第二判断单元、第三判断单元、分配单元和输出单元,
所述第一判断单元用于判断节点个数和任务个数的关系,并输出第一判断结果至分配单元;
所述计算单元用于计算所述A值、B值和C值,并将计算结果发送到所述第二判断单元;
所述A为 Σ b i Σ a i = Σ ( b 1 + b 2 + · · · + b m ) Σ ( a 1 + a 2 + · · · + a n ) ;
B为
C为
其中b1、b2、bi、bm分别表示第1个、第2个、第i个、第m个任务的网格数多少,且b1、b2、……bm的数值大小依次减小;a1、a2、ai、an表示第1个、第2个、第i个、第n个节点的运算能力值,且a1、a2、……an的数值大小依次减小;所述tmp1为节点对应的当前任务值;
所述第二判断单元用于接收所述A值、B值和C值,比较|C-A|和|B-A|的大小关系,并输出第二判断结果至分配单元;
所述第三判断单元用于判断任务是否已经全部分配完成,并输出第三判断结果至分配单元;
所述分配单元用于接收所述第一判断结果和/或第二判断结果,并根据所述第一判断结果和/或第二判断结果,将任务分配给各个节点;以及用于接收第三判断结果,并将已分配的节点和任务加入优先队列,从优先队列中每次取出一个当前任务值和节点运算能力比值最小的节点进行任务的二次分配,直到将所有的任务和节点都加入优先队列之中;
所述输出单元用于输出所述分配单元的分配结果。
本实施例中,所述节点排序模块将节点按照运算能力从高到低的顺序进行排序;所述任务排序模块将任务按照网格数从高到低的顺序进行排序。所述节点为计算机,根据计算机的CPU参数和/或GPU来设定节点的运算能力。
以下举例进行说明。
首先,输入10个任务数,它们的大小分别是:b1=1.1,b2=1.2,b3=1.1,b4=1.3,b5=1.0,b6=1.075,b7=0.9,b8=1.0,b9=0.9,b10=1.2。将其按照从大到小的顺序进行排列为:b4、b2、b10、b1、b3、b6、b5、b8、b7、b9
然后,确定节点数为5个,它们的综合能力数值分别为:a1=2,a2=4,a3=2,a4=4,a5=8,将其按照从大到小的顺序进行排列为:a5、a2、a4、a1、a3;每个节点的初始任务值,即初始负载均为0;此时A值等于10.775/20=0.54
首先判断任务b4=1.3是否分配到节点a5,计算得到B=0,C=1.3/8=0.16,因为|C-A|小于|B-A|,所以将b4=1.3分配到节点a5
然后判断任务b9=0.9是否分配到节点a5:此时节点a5的当前负载为1.3,计算得到B=0.16,C=(1.3+0.9)/8=0.28,因为|C-A|小于|B-A|,所以将b9=0.9分配到节点a5
重复进行上述步骤,可以将b2=1.2和b9=0.9分别分配到节点a5,然后判断b10=1.2是否分配到节点a5。此时,节点a5的当前负载为1.3+0.9+1.2+0.9=4.3,计算得到B=0.54,C=(4.3+1.2)/8=0.69,因为|C-A|大于|B-A|,所以不能将b9=0.9分配到节点a5
再判断是否将b10=1.2分配到节点a2=4:节点a2当前负载为0,计算得到B=0,C=1.2/4=0.3,因为|C-A|小于|B-A|,所以将b10=1.2分配到节点a2
重复以上步骤,直到所有任务均分配完成,可以发现最终分配结果是这样的:
节点a5=8,处理任务b1、b10、b2和b9,处理时间为(1.3+0.9+1.2+1.9)/8,共计0.5375;
节点a2=4,处理任务b3和b8,处理时间为(1.2+1.0)/4,共计0.55;
节点a4=4,处理任务b4和b7,处理时间为(1.1+1.0)/4,共计0.525;
节点a1=2,处理任务b5,处理时间为1.1/2,共计0.55;
节点a3=2,处理任务b6,处理时间为1.075/2,共计0.5375。
以下实施例将本发明的任务调度方法应用到乘潮水位计算中,该任务调度算法能够使各个计算节点的负载达到均衡,避免了资源的限制,从而整体提升了大数据的处理效率。
本实施例的任务调度模式框架基于Spark计算平台,主要由16台节点构成,其中包含1台主节点(spark1),15台计算节点(spark2-spark16)。主节点为master节点,不参与计算,主要负责任务的调度和监控;计算节点,主要作用是对节点上的任务进行计算。Spark计算平台部署在内部局域网中,应用服务器和门户服务器部署在中国海洋大学网络中心服务器托管中心,可以有外网访问,通过交换机设置的端口转发,使得外网提交的任务计算请求可以被内部局域网中的Spark平台所识别和计算。
本实施例的实验数据为渤海区域8个港口,其中渤海为计算大区,8个港口为计算小区,分别为:烟台港、天津港、营口港、曹妃甸港、东风港、龙口港、锦州港、秦皇岛港口。由于FVCOM计算采用的是三角形网格,不同港口的对应的海域大小不同,网格数目也就不同,网格数目多的港口,时间时间长。表1列出了8个港口的网格数目和计算时间,其中计算时间为按照传统集群业务计算模式下的单场计算时间,本实施例中所有实验结果对比均以目前乘潮水位业务化计算时间为基准对比。
表1 集群乘潮水位计算运行时间
为了更好的体现Spark框架下乘潮水位任务控制调度模式的特点,避免出现因为任务数目过少,节点数目过多而出现的有节点剩余的情况,本实施例选择了5个Spark节点,其中节点1为主节点,负责任务的控制调度,Spark2-Spark5节点为计算节点,详细节点配置描述表如表2所示,本实施例中,根据计算节点计算机的CPU型号、内存大小来设定各个节点的运算能力。
表2Spark集群节点运算能力
按照本实施例的任务调度方法对表1中的8个港口进行任务调度,实验结果如表3所示:
表3 各港口分配及运算结果
如上表3所示,东风港和龙口港分配到了节点1,任务运行时间为11min;营口港和烟台港分配到了节点2,任务运行时间为13.5min;天津港、锦州港、曹妃甸港分配到了节点3,任务运行时间为16min;秦皇岛港分配到了节点4,任务运行时间为15min。
以下采用Spark框架下乘潮水位原生调度模式和本实施例优化的多时序任务调度方法对相同计算量的乘潮水位进行计算。为更加实验结果的可信性和科学,实验结果均记录10次计算的平均值。
测试用例:分别选择2N(N=1,2…6)个港口进行测试。当港口数目大于8时,新港口网格数目与已经计算的港口网格数一一对应。
测试结果如表4所示:
表4 两种任务控制模式运行时间(含渤海大区计算时间)
由表4中可以看出,本实施例优化后的Spark任务控制模式下,任务执行时间相对于原生任务控制模式有了一定的提高,64个港口的计算相比,本实施例优化后的Spark任务控制模式计算时间减少一小时,相对于原生任务控制模式,效率最快可以提高12%。
本发明的方法和系统在任务调度时会将计算量大的任务分配在计算能力强的节点上,能够有效避免饥饿状态和系统资源利用率低的问题。本发明方法的分配方式,考虑了当前平台上的资源分配情况及平台内各节点上的负载能力和状态,因而避免了Fair算法由于没有考虑当前节点的负载水平及其负载状态而导致的节点负载不均衡的问题。同时针对计算量大且可估计的多任务或者手工分配和Spark原生分配方法无法达到时间最优化的任务,比如多时序海洋空间数据长动力计算任务,本发明方法可以优化任务的分配方式,从而达到最优化运行时间的效果。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种多时序任务调度方法,包括以下步骤:
步骤1,采集节点信息,并根据节点信息设定每个节点的运算能力;
步骤2,采集任务信息,并根据任务信息设定每个任务的网格数;
步骤3,根据运算能力大小,将所有节点进行排序;
步骤4,根据任务的网格数多少,将所有任务进行排序;
步骤5,根据每个节点的负载状态,采用贪心算法,按照运算能力强的节点处理网格数大的任务的方式,将任务分配给各个节点。
2.根据权利要求1所述的多时序任务调度方法,其特征在于:步骤3中,将节点按照运算能力从高到低的顺序进行排序;步骤4中,将任务按照网格数从高到低的顺序进行排序。
3.根据权利要求1所述的多时序任务调度方法,其特征在于:所述节点为计算机,根据计算机的CPU参数和/或GPU来设定节点的运算能力。
4.根据权利要求1~3任一所述的多时序任务调度方法,其特征在于:步骤5具体为:
步骤501,判断节点个数和任务个数的关系,若节点个数不小于任务个数,则按照运算能力强的节点处理网格数大的任务的方式,将节点和任务一一对应进行计算;
步骤502,若节点个数小于任务个数,则先求取所有任务网格数多少之和与所有节点运算能力之和的比值A,
A为 Σ b i Σ a i = Σ ( b 1 + b 2 + . . . + b m ) Σ ( a 1 + a 2 + . . . + a n ) ;
其中b1、b2、bi、bm分别表示第1个、第2个、第i个、第m个任务的网格数多少,且b1、b2、……bm的数值大小依次减小;a1、a2、ai、an表示第1个、第2个、第i个、第n个节点的运算能力值,且a1、a2、……an的数值大小依次减小;
步骤503,判断是否将任务b1分配到节点a1:采集节点a1的当前任务值tmp1,计算当前任务值大小与该节点计算能力的比值B,
B为并计算比值C,C为
判断|C-A|和|B-A|的大小,若|C-A|≤|B-A|,则将任务b1分配到节点a1,并进入步骤504;若|C-A|>|B-A|,则重复步骤503,依次判断是否将任务b1分配到节点a2、a3……an,直至将任务b1分配出去,然后进入步骤504;
步骤504,按照任务大小从两边向中间的顺序,即按照b1、bm、b2、bm-1、b3、bm-2……的顺序,重复步骤503和504,直至所有任务全部分配出去。
5.根据权利要求4所述的多时序任务调度方法,其特征在于:还包括步骤6,步骤6具体为:判断任务是否已经全部分配完成,若分配完成,则输出分配结果;若没有分配完成,则将已分配的节点和任务加入优先队列,从优先队列中每次取出一个当前任务值和节点运算能力比值最小的节点进行任务的二次分配,重复步骤5,直到将所有的任务和节点都加入优先队列之中,并输出分配结果。
6.一种多时序任务调度系统,其特征在于:包括节点运算能力设定模块、任务网格数设定模块、节点排序模块、任务排序模块和任务分配模块,
所述节点运算能力设定模块用于采集节点信息,并根据节点信息设定每个节点的运算能力;
所述任务网格数设定模块用于采集任务信息,并根据任务信息设定每个任务的网格数;
所述节点排序模块用于根据运算能力大小,将所有节点进行排序;
所述任务排序模块用于根据任务的网格数多少,将所有任务进行排序;
所述任务分配模块用于根据每个节点的负载状态,采用贪心算法,按照运算能力强的节点处理网格数大的任务的方式,将任务分配给各个节点。
7.根据权利要求6所述的多时序任务调度系统,其特征在于:所述任务分配模块包括第一判断单元、计算单元、第二判断单元、分配单元和输出单元,
所述第一判断单元用于判断节点个数和任务个数的关系,并输出第一判断结果至分配单元;
所述计算单元用于计算所述A值、B值和C值,并将计算结果发送到所述第二判断单元;
所述A为 Σ b i Σ a i = Σ ( b 1 + b 2 + . . . + b m ) Σ ( a 1 + a 2 + . . . + a n ) ;
B为
C为
其中b1、b2、bi、bm分别表示第1个、第2个、第i个、第m个任务的网格数多少,且b1、b2、……bm的数值大小依次减小;a1、a2、ai、an表示第1个、第2个、第i个、第n个节点的运算能力值,且a1、a2、……an的数值大小依次减小;所述tmp1为节点对应的当前任务值;
所述第二判断单元用于接收所述A值、B值和C值,比较|C-A|和|B-A|的大小关系,并输出第二判断结果至分配单元;
所述分配单元用于接收所述第一判断结果和/或第二判断结果,并根据所述第一判断结果和/或第二判断结果,将任务分配给各个节点;
所述输出单元用于输出所述分配单元的分配结果。
8.根据权利要求7所述的多时序任务调度系统,其特征在于:所述任务分配模块还包括第三判断单元,所述第三判断单元用于判断任务是否已经全部分配完成,并输出第三判断结果至分配单元;所述分配单元还用于接收第三判断结果,并将已分配的节点和任务加入优先队列,从优先队列中每次取出一个当前任务值和节点运算能力比值最小的节点进行任务的二次分配,直到将所有的任务和节点都加入优先队列之中。
9.根据权利要求6~8任一所述的多时序任务调度系统,其特征在于:所述节点排序模块将节点按照运算能力从高到低的顺序进行排序;所述任务排序模块将任务按照网格数从高到低的顺序进行排序。
10.根据权利要求9所述的多时序任务调度系统,其特征在于:所述节点为计算机,根据计算机的CPU参数和/或GPU来设定节点的运算能力。
CN201510190973.0A 2015-04-21 2015-04-21 一种多时序任务调度方法和系统 Active CN104793990B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510190973.0A CN104793990B (zh) 2015-04-21 2015-04-21 一种多时序任务调度方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510190973.0A CN104793990B (zh) 2015-04-21 2015-04-21 一种多时序任务调度方法和系统

Publications (2)

Publication Number Publication Date
CN104793990A true CN104793990A (zh) 2015-07-22
CN104793990B CN104793990B (zh) 2018-08-17

Family

ID=53558804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510190973.0A Active CN104793990B (zh) 2015-04-21 2015-04-21 一种多时序任务调度方法和系统

Country Status (1)

Country Link
CN (1) CN104793990B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138391A (zh) * 2015-07-30 2015-12-09 中山大学 面向广域分布云系统公平的多任务虚拟机分配方法
CN105354084A (zh) * 2015-10-30 2016-02-24 浪潮(北京)电子信息产业有限公司 一种基于带宽调度的cpu任务迁移方法及系统
CN105740077A (zh) * 2016-01-29 2016-07-06 中国联合网络通信集团有限公司 一种适用于云计算的任务分配方法
CN106339802A (zh) * 2016-08-24 2017-01-18 深圳市讯方技术股份有限公司 任务分配的方法和装置、电子设备
CN106598707A (zh) * 2015-10-19 2017-04-26 沈阳新松机器人自动化股份有限公司 任务调度优化方法
CN107220780A (zh) * 2017-06-16 2017-09-29 佛山科学技术学院 众包系统中的异构任务执行序列优化方法
CN107453909A (zh) * 2017-08-08 2017-12-08 北京盛华安信息技术有限公司 安全事件的处理方法
CN107565595A (zh) * 2017-10-18 2018-01-09 广东电网有限责任公司电力调度控制中心 一种按调节能力大小顺序调节的多直流频率限制器
CN109670103A (zh) * 2018-12-14 2019-04-23 深圳中兴飞贷金融科技有限公司 数据抓取方法及装置
CN109710407A (zh) * 2018-12-21 2019-05-03 浪潮电子信息产业股份有限公司 分布式系统实时任务调度方法、装置、设备及存储介质
CN110427265A (zh) * 2019-07-03 2019-11-08 平安科技(深圳)有限公司 人脸识别的方法、装置、计算机设备和存储介质
CN111274067A (zh) * 2018-12-04 2020-06-12 北京京东尚科信息技术有限公司 执行计算任务的方法和装置
CN113672356A (zh) * 2020-05-13 2021-11-19 北京三快在线科技有限公司 计算资源调度方法和装置、存储介质和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681902A (zh) * 2012-05-15 2012-09-19 浙江大学 一种基于多核系统任务分配的负载均衡方法
CN102710779A (zh) * 2012-06-06 2012-10-03 合肥工业大学 一种基于云计算环境下的服务资源分配的负载均衡策略
CN103617086A (zh) * 2013-11-20 2014-03-05 东软集团股份有限公司 一种并行计算方法及系统
CN104035818A (zh) * 2013-03-04 2014-09-10 腾讯科技(深圳)有限公司 多任务调度的方法及装置
CN104102544A (zh) * 2014-06-30 2014-10-15 武汉理工大学 混合云环境下多QoS约束的并行任务调度成本优化方法
US20150106819A1 (en) * 2013-10-14 2015-04-16 Electronics And Telecommunications Research Institute Task scheduling method for priority-based real-time operating system in multicore environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681902A (zh) * 2012-05-15 2012-09-19 浙江大学 一种基于多核系统任务分配的负载均衡方法
CN102710779A (zh) * 2012-06-06 2012-10-03 合肥工业大学 一种基于云计算环境下的服务资源分配的负载均衡策略
CN104035818A (zh) * 2013-03-04 2014-09-10 腾讯科技(深圳)有限公司 多任务调度的方法及装置
US20150106819A1 (en) * 2013-10-14 2015-04-16 Electronics And Telecommunications Research Institute Task scheduling method for priority-based real-time operating system in multicore environment
CN103617086A (zh) * 2013-11-20 2014-03-05 东软集团股份有限公司 一种并行计算方法及系统
CN104102544A (zh) * 2014-06-30 2014-10-15 武汉理工大学 混合云环境下多QoS约束的并行任务调度成本优化方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138391A (zh) * 2015-07-30 2015-12-09 中山大学 面向广域分布云系统公平的多任务虚拟机分配方法
CN105138391B (zh) * 2015-07-30 2018-07-31 中山大学 面向广域分布云系统公平的多任务虚拟机分配方法
CN106598707A (zh) * 2015-10-19 2017-04-26 沈阳新松机器人自动化股份有限公司 任务调度优化方法
CN105354084A (zh) * 2015-10-30 2016-02-24 浪潮(北京)电子信息产业有限公司 一种基于带宽调度的cpu任务迁移方法及系统
CN105354084B (zh) * 2015-10-30 2018-12-18 浪潮(北京)电子信息产业有限公司 一种基于带宽调度的cpu任务迁移方法及系统
CN105740077B (zh) * 2016-01-29 2020-02-07 中国联合网络通信集团有限公司 一种适用于云计算的任务分配方法
CN105740077A (zh) * 2016-01-29 2016-07-06 中国联合网络通信集团有限公司 一种适用于云计算的任务分配方法
CN106339802A (zh) * 2016-08-24 2017-01-18 深圳市讯方技术股份有限公司 任务分配的方法和装置、电子设备
CN107220780A (zh) * 2017-06-16 2017-09-29 佛山科学技术学院 众包系统中的异构任务执行序列优化方法
CN107220780B (zh) * 2017-06-16 2020-07-28 佛山科学技术学院 众包系统中的异构任务执行序列优化方法
CN107453909A (zh) * 2017-08-08 2017-12-08 北京盛华安信息技术有限公司 安全事件的处理方法
CN107565595A (zh) * 2017-10-18 2018-01-09 广东电网有限责任公司电力调度控制中心 一种按调节能力大小顺序调节的多直流频率限制器
CN111274067A (zh) * 2018-12-04 2020-06-12 北京京东尚科信息技术有限公司 执行计算任务的方法和装置
CN109670103A (zh) * 2018-12-14 2019-04-23 深圳中兴飞贷金融科技有限公司 数据抓取方法及装置
CN109710407A (zh) * 2018-12-21 2019-05-03 浪潮电子信息产业股份有限公司 分布式系统实时任务调度方法、装置、设备及存储介质
CN110427265A (zh) * 2019-07-03 2019-11-08 平安科技(深圳)有限公司 人脸识别的方法、装置、计算机设备和存储介质
CN113672356A (zh) * 2020-05-13 2021-11-19 北京三快在线科技有限公司 计算资源调度方法和装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN104793990B (zh) 2018-08-17

Similar Documents

Publication Publication Date Title
CN104793990A (zh) 一种多时序任务调度方法和系统
Chen et al. Optimizing coflow completion times with utility max-min fairness
CN103927231B (zh) 一种面向数据处理的能耗优化数据集分配方法
CN100449497C (zh) 并行计算机和定位并行计算机中硬件故障的方法
CN104657221A (zh) 一种云计算中基于任务分类的多队列错峰调度模型及方法
CN102096599A (zh) 一种多队列任务调度方法及相关系统和设备
CN103455375A (zh) Hadoop云平台下基于负载监控的混合调度方法
Muthuvelu et al. On-line task granularity adaptation for dynamic grid applications
CN104182278A (zh) 一种判定计算机硬件资源繁忙程度的方法和装置
CN103812886A (zh) 计算机集群资源分配系统和方法
CN108132840A (zh) 一种分布式系统中的资源调度方法及装置
Stavrinides et al. Orchestrating bag-of-tasks applications with dynamically spawned tasks in a distributed environment
Sharma et al. An optimal task allocation model through clustering with inter-processor distances in heterogeneous distributed computing systems
Rosemarry et al. Grouping based job scheduling algorithm using priority queue and hybrid algorithm in grid computing
Shah et al. Modified least cost method for grid resource allocation
Tan et al. Multi-resource fair sharing for multiclass workflows
Xu et al. Hybrid scheduling deadline-constrained multi-DAGs based on reverse HEFT
Sharma et al. Notice of Retraction: An improved resource scheduling approach using Job Grouping strategy in grid computing
Sun et al. Optimizing grid resource allocation by combining fuzzy clustering with application preference
Zhao et al. The dynamic delay scheduling algorithm based on task classification
Seredyński Scheduling tasks of a parallel program in two-processor systems with use of cellular automata
Wang et al. Multiple resources scheduling for diverse workloads in heterogeneous datacenter
Singla et al. Task Scheduling Algorithms for Grid Computing with Static Jobs: A Review
Shi et al. Metaflow: A better traffic abstraction for distributed applications
CN110855762B (zh) 一种电网系统中异构集群节点的数据块分配方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant