CN105094970A - 一种求解分布式系统下可分任务多趟调度模型的方法 - Google Patents

一种求解分布式系统下可分任务多趟调度模型的方法 Download PDF

Info

Publication number
CN105094970A
CN105094970A CN201510408090.2A CN201510408090A CN105094970A CN 105094970 A CN105094970 A CN 105094970A CN 201510408090 A CN201510408090 A CN 201510408090A CN 105094970 A CN105094970 A CN 105094970A
Authority
CN
China
Prior art keywords
sigma
task
individual
processor
rule
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
CN201510408090.2A
Other languages
English (en)
Other versions
CN105094970B (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201510408090.2A priority Critical patent/CN105094970B/zh
Publication of CN105094970A publication Critical patent/CN105094970A/zh
Application granted granted Critical
Publication of CN105094970B publication Critical patent/CN105094970B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种求解分布式系统下可分任务多趟调度模型的方法,通过建立可分任务多趟调度新模型,并利用遗传算法求解该模型,得到任务的最短完成时间。本发明推导得到了任务分配方案关于处理机调度顺序,调度趟数和参与计算的处理机数目的函数表达式,从而建立了以任务完成时间最短为目标的可分任务多趟调度模型。本发明提出的求解该模型的遗传算法能够高效准确地求出最优的处理机调度顺序、调度趟数和参与计算的处理机数目,从而得到最优的任务分配方案和任务的最短完成时间。

Description

一种求解分布式系统下可分任务多趟调度模型的方法
技术领域
本发明属于信息技术相关领域,涉及一种求解分布式系统下可分任务多趟调度模型的方法。
背景技术
现有的可分任务调度模型分为两类:单趟调度和多趟调度。对于单趟调度,主处理机将任务分成与从处理机个数相同的子任务,主处理机依次为从处理机传输任务,每个处理机仅接收并计算一次任务。由于后分配任务的处理机存在较长的空闲等待时间,因此,单趟调度并不适合大规模的数据应用问题。对于多趟调度,任务被划分为大于处理机数目的子任务,并由主处理机分多趟逐一发送给各从处理机完成计算。由于处理机的空闲等待时间变短,因此相比于单趟调度,多趟调度可以缩短整个任务的完成时间。对于多趟调度,难点在于确定最优的处理机调度顺序、最优的调度趟数、参与计算的最优处理机数目和最优的任务分配方案。
Hsu等人[1]提出将gi/(gi+wi)递增的顺序作为处理机的调度顺序,其中gi为通信链路传输单位任务所需的时间,wi为处理机计算单位任务所需的时间。Shokripour等人[2]提出了两种处理机调度顺序:按照通信链路传输单位任务所需时间gi渐增的顺序作为调度顺序,以及按照处理机计算单位任务所需时间wi渐增的顺序作为调度顺序。Suresh等人[3]提出了一种混合实数编码遗传算法用于求解处理机的调度顺序和任务分配方案。而且随着处理机数目的增加,该算法的复杂度以指数形式增加。当处理机数目很大时,算法很难收敛到全局最优解。
综上所述,现有的可分任务多趟调度算法并未找到最优的处理机调度顺序、最优调度趟数、参与计算的最优处理机数目,导致任务的完成时间没有达到全局最优解。为达到这一目的,本发明所设计的一种求解分布式系统下可分任务多趟调度模型的方法显得尤为重要。
发明内容
针对上述现有技术存在的缺陷或不足,本发明的目的在于,提出了一种求解分布式系统下可分任务多趟调度模型的方法。
为实现上述目的,本发明采用以下技术方案:
一种求解分布式系统下可分任务多趟调度模型的方法,包括以下步骤:
步骤1,构建任务分配方案A=(aij)n×m关于处理机调度顺序调度趟数m和参与计算的处理机数目n的函数表达式:
αij=γijijαnm,i=1,2,...,n,j=1,2,...,m式19
其中,
α nm = W total - Σ i = 1 n Σ j = 1 m γ ij Σ i = 1 n Σ j = 1 m η ij 式22
其中,P0为主处理机,{Pi|i∈{1,2,...,N}}为从处理机;(σ12,...,σN)为1,2,...N的排列,为处理机的调度顺序;αij为主处理机P0在第j趟调度分配给从处理机的任务大小,其中,i=1,2,...,n,j=1,2,...,m;为从处理机的计算启动开销,为从处理机计算单位任务所需的时间;为P0到从处理机的通信链路,为链路的通信启动开销,为链路传输单位任务所花费的时间,其中,i=1,2,...,N;m为调度趟数,n为参与计算的从处理机的数目,其中,n=1,2,...,N;Wtotal为总任务量;
步骤2,构建任务完成时间T关于任务分配方案A=(aij)n×m的函数表达式:
T ( A ) = max { T i | i = 1 , 2 , ... , n } = T 1 = T 2 = ... = T n = m Σ i = 1 n o σ i + Σ i = 1 n Σ j = 1 m g σ i α i j + s σ n + w σ n α n m 式23
其中,T为总的任务完成时间,Ti为处理机Pi的任务完成时间;
步骤3,以任务完成时间最短为目标,以处理机调度顺序、调度趟数和处理机数目为变量,建立可分任务的多趟调度模型:
min m , n , σ T = min m , n , σ ( m Σ i = 1 n o σ i + Σ i = 1 n Σ j = 1 m g σ i α i j + s σ n + w σ n α n m )
此模型的约束条件为:
(I)0<n≤N;
(II)m≥2;
(III)αij=γijijαnm,其中,γij、ηij和αnm分别满足式20、式21和式22;
(IV)0<αij≤Wtotal,i=1,2,...,n,j=1,2,...,m;
步骤4,利用遗传算法求解可分任务多趟调度模型
利用遗传算法求解可分任务多趟调度模型,得到最优的处理机调度顺序、最优调度趟数、参与计算的最优处理机数目和任务的最短完成时间。
具体地,所述的步骤4的具体实现步骤如下:
步骤4.1:初始化
确定种群大小PopSize,交叉概率pcros、变异概率pmut和最大进化代数;个体用N+2维的整数向量(n,m,a1,a2,...,aN)来标识;根据个体初始化规则产生PopSize个个体,根据个体修正规则修正所有个体组成初始种群P(t),令进化代数t=0;
步骤4.2:交叉
以概率pcros从P(t)之中选择父代个体,按照交叉规则进行交叉,交叉获得的全部后代个体定义为集合O1
步骤4.3:变异
以概率pmut从集合O1中选择个体,按照变异规则进行变异,新的后代个体定义为集合O2
步骤4.4:局部搜索
对集合O1∪O2中的每个个体,先按照个体修正规则进行修正,然后按照局部搜索规则进行局部搜索,优化后的个体定义为集合O3
步骤4.5:选择
对集合P(t)∪O3中每个个体求其适应度值,选择适应度值最大的E个个体直接保留到下一代种群P(t+1)中以加快收敛速度;使用轮盘赌选择操作从集合P(t)∪O3中选择PopSize-E个个体保留到下一代种群P(t+1)中,令t=t+1;
步骤4.6:终止条件
若未达到最大进化代数,则转向步骤4.2;否则终止算法,并将适应度值最大的个体作为最优解。对最优解进行解码得到最优的处理机调度顺序,以及最优解对应的最优调度趟数、参与计算的最优处理机数目和任务的最短完成时间。
具体地,所述的步骤4.1的个体初始化编码规则如下:
输出:初始化后的个体I=(n,m,a1,a2,...,aN)
步骤4.1.1:令n=N,m=2;令临时变量i=1;
步骤4.1.2:随机生成一个整数k满足0≤k≤j-1,令ai=k;
步骤4.1.3:令i=i+1;若i>n,算法终止;否则转到步骤4.1.2。
具体地,所述的步骤4.1的个体修正规则如下:
步骤4.1.4:按照解码规则对个体I=(n,m,a1,a2,...,aN)进行解码得到排列σ=(σ12,...,σN);
步骤4.1.5:将n、m和σ带入式20、式21和式22,分别求得γij、ηij、αnm,其中,i=1,2,...,n,j=1,2,...,m;
步骤4.1.6:将γij、ηij、αnm代入式19,计算任务分配方案A=(aij)n×m
步骤4.1.7:若i=1,2,...,n,j=1,2,...,m,则令n=n-1,转向步骤4.1.5;否则算法终止。
具体地,所述的步骤4.1.4的解码规则如下:
输入:个体I=(n,m,a1,a2,...,aN)
输出:排列σ=(σ12,...,σN)
步骤4.1.4.1:令临时变量i=N;
步骤4.1.4.2:从排列σ=(σ12,...,σN)的最后一位向前寻找第ai+1个未被赋值的位,将其赋值为i;
步骤4.1.4.3:令i=i-1,若i≥1,转到步骤4.1.4.2;否则,算法终止。
具体地,所述的步骤4.2的交叉规则如下:
输入:父代个体 I 1 = ( n 1 , m 1 , a 1 1 , a 2 1 , ... , a N 1 ) I 2 = ( n 2 , m 2 , a 1 2 , a 2 2 , ... , a N 2 )
输出:后代个体 I 3 = ( n 3 , m 3 , a 1 3 , a 2 3 , ... , a N 3 ) I 4 = ( n 4 , m 4 , a 1 4 , a 2 4 , ... , a N 4 )
步骤4.2.1:令I3=I1,I4=I2,n3=n4=N,m3=m4=2;
步骤4.2.2:随机生成两个整数p和q满足3≤p<q≤N+2,将其作为交叉点;
步骤4.2.3:将后代个体I3和I4交叉点之间的基因进行交换。
具体地,所述的步骤4.3的变异规则如下:
输入:父代个体I=(n,m,a1,a2,...,aN)
输出:后代个体I′=(n′,m′,a1′,a2′,...,a′N)
步骤4.3.1:令I′=I,n′=N,m′=2;
步骤4.3.2:随机生成一个整数j满足3≤j≤N+2,并将其作为变异点;
步骤4.3.3:随机生成一个整数k满足0≤k≤j-1,令aj′=k。
具体地,所述的步骤4.4的局部搜索规则如下:
输入:父代个体I=(n,m,a1,a2,...,aN)
输出:优化后的个体I′=(n′,m′,a1′,a2′,...,a′N)
步骤4.4.1:根据适应度值求解规则,计算个体I=(n,m,a1,a2,...,aN)的适应度值f;令I′=I;
步骤4.4.2:令m′=m′+1,n′=N;
步骤4.4.3:根据个体修正规则修正个体I′=(n′,m′,a1,a2,...,aN),然后根据适应度值求解规则,计算个体I′的适应度值f′;若f′<f,则令I=I′,并转向步骤4.4.2;否则,令I′=I,算法终止。
具体地,所述的步骤4.4.1中的适应度值求解规则如下:
输入:个体I=(n,m,a1,a2,...,aN)
输出:个体的适应度值f
步骤4.4.1.1:按照解码规则对个体I=(n,m,a1,a2,...,aN)进行解码得到排列σ=(σ12,...,σN);
步骤4.4.1.2:将n、m和σ代入式20、式21和式22,分别求得γij、ηij、αnm,其中,i=1,2,...,n,j=1,2,...,m;
步骤4.4.1.3:将γij、ηij、αnm代入式19,计算任务分配方案A=(aij)n×m
步骤4.4.1.4:将任务分配方案A=(aij)n×m代入式23,计算任务的完成时间T;
步骤4.4.1.5:令f=1/T,输出适应度值f。
与现有技术相比,本发明具有以下技术效果:
1、本发明针对可分任务的多趟调度问题,推导得到任务分配方案关于处理机调度顺序、调度趟数和参与计算的处理机数目的函数表达式。
2、本发明针对推导得到的任务分配方案,建立了以任务完成时间最短为目标,以处理机调度顺序、调度趟数和处理机数目为变量的可分任务多趟调度新模型。相比现有技术,该模型更加合理且有效。
3、本发明针对建立的可分任务多趟调度模型,设计了遗传算法对该模型进行求解。求解该模型的遗传算法能够高效准确地求出最优的处理机调度顺序、调度趟数和参与计算的处理机数目,从而得到最优的任务分配方案和任务的最短完成时间。
附图说明
图1为满足问题描述的星型网络示意图;
图2为本发明方法的流程图;
图3为满足约束的可分任务多趟调度图;
图4为五种算法的任务完成时间关于不同任务量的实验结果图;
下面结合附图和实施例对本发明的方案作进一步详细地解释和说明。
具体实施方式
实施例一
遵从上述技术方案,本实施例的一种求解分布式系统下可分任务多趟调度模型的方法,参见图2,具体包括以下步骤:
步骤1,构建任务分配方案A=(aij)n×m关于处理机调度顺序调度趟数m和参与计算的从处理机数目n的函数表达式。
参见图1,N+1个处理机按星型拓扑网络相互连接,其中,P0为主处理机,{Pi|i∈{1,2,...,N}}为从处理机。参见图3,(σ12,...,σN)为1,2,...N的排列,为处理机的调度顺序;αij为主处理机P0在第j趟调度分配给从处理机的任务大小,其中,i=1,2,...,n,j=1,2,...,m。为从处理机的计算启动开销,为从处理机计算单位任务所需的时间,所述的单位任务的大小可根据需要确定,本发明中设为1MB。为P0到从处理机的通信链路,为链路的通信启动开销,为链路传输单位任务所花费的时间,其中,i=1,2,...,N;m为调度趟数,n为参与计算的从处理机的数目,其中,n=1,2,...,N;Wtotal为总任务量。则任务分配方案αij满足下式:
Σ i = 1 n Σ j = 1 m α i j = W t o t a l , α i j > 0. - - - ( 1 )
对于给定的处理机调度顺序为使任务的完成时间最短,最后一趟调度中所有参与调度的处理机必须同时完成计算。因此可得:
s σ i + w σ i α i m = o σ i + 1 + s σ i + 1 + ( g σ i + 1 + w σ i + 1 ) α i + 1 , m , i = 1 , 2 , ... , n - 1 - - - ( 2 )
整理式(2),可得:
α i m = o σ i + 1 + s σ i + 1 - s σ i w σ i + g σ i + 1 + w σ i + 1 w σ i α i + 1 , m . - - - ( 3 )
μ i = o σ i + 1 + s σ i + 1 - s σ i w σ i , λ i = g σ i + 1 + w σ i + 1 w σ i + 1 . 则公式(3)可以表示为:
αim=μiiαi+1,m,i=1,2,...,n-1.(4)
由公式(4)可得,每个处理机在最后一趟调度所分配的任务量αim可以用αnm来表示,即:
αim=γimimαnm,i=1,2,...,n-1.(5)
其中,
γ i m = Σ h = i n - 1 ( μ h Π k = i h - 1 λ k ) = Σ h = i n - 1 ( o σ h + 1 +s σ h + 1 - s σ h w σ h × g σ k + 1 +w σ k + 1 w σ k ) - - - ( 6 )
η i m = Π h = i n - 1 λ j = Π h = i n - 1 ( g σ h + 1 + w σ h + 1 w σ h ) - - - ( 7 )
为使任务完成时间最短,除了最后一趟调度,每个处理机在任意相邻的两趟调度之间都不能存在时间间隔。因此可以得到:
s σ i + w σ i α i j = Σ k = i + 1 n ( o σ k + g σ k α k j ) + Σ k = 1 i - 1 ( o σ k + g σ k α k , j + 1 ) - - - ( 8 )
其中,i=1,2,...,n,j=1,2,m-1。
将i=n和j=m-1代入公式(8),可以得到:
s σ n + w σ n α n , m - 1 = Σ k = 1 n - 1 ( o σ k + g σ k α k m ) - - - ( 9 )
整理公式(9),可得αn,m-1可以重新表示为:
α n , m - 1 = 1 w σ n [ Σ k = 1 n - 1 ( o σ k + g σ k α km ) - s σ n ] - - - ( 10 )
将公式(5)代入公式(10),可得:
α n , m - 1 = 1 w σ n { Σ k = 1 n - 1 ( o σ k + g σ k ( γ k m + η k m α n m ) ] - s σ n } = Σ k = 1 n - 1 ( o σ k + g σ k γ k m ) - s σ n w σ n + Σ k = 1 n - 1 ( g σ k η k m ) w σ n α n m - - - ( 11 )
γ n , m - 1 = Σ k = 1 n - 1 ( o σ k + g σ k γ k m ) - s σ n w σ n , η n , m - 1 = Σ k = 1 n - 1 ( g σ k η k m ) w σ n . 则公式(11)可以表示为:
αn,m-1=γn,m-1n,m-1αnm(12)
同理,将i=n-1和j=m-1代入公式(8),可以得到:
s σ n - 1 + w σ n - 1 α n - 1 , m - 1 = o σ n + g σ n α n , m - 1 + Σ k = 1 n - 2 ( o σ k + g σ k α k m ) - - - ( 13 )
将公式(5)和公式(11)代入公式(13)得:
α n - 1 , m - 1 = o σ n + g σ n γ n , m - 1 + Σ k = 1 n - 2 ( o σ k + g σ k γ k m ) - s σ n - 1 w σ n - 1 + g σ n η n , m - 1 + Σ k = 1 n - 2 ( g σ k η k m ) w σ n - 1 α n m - - - ( 14 )
γ n - 1 , m - 1 = o σ n + g σ n γ n , m - 1 + Σ k = 1 n - 2 ( o σ k + g σ k γ k m ) - s σ n - 1 w σ n - 1 , η n - 1 , m - 1 = g σ n η n , m - 1 + Σ k = 1 n - 2 ( g σ k η k m ) w σ n - 1 .
则公式(14)可以重新表示为:
αn-1,m-1=γn-1,m-1n-1,m-1αnm(15)
因此,处理机在第m-1趟调度分配的任务量αi,m-1可以用αnm表示为:
αi,m-1=γi,m-1i,m-1αnm,i=1,2,...,n-1(16)
其中, γ i , m - 1 = Σ k = i + 1 n ( o σ k + g σ k γ k , m - 1 ) + Σ k = 1 i - 1 ( o σ k + g σ k γ k m ) - s σ i w σ i , η i , m - 1 = Σ k = i + 1 n ( g σ k η k , m - 1 ) + Σ k = 1 i - 1 ( g σ k η k m ) w σ i .
同样地,处理机在第m-2趟调度分配的任务量αi,m-2可以用αnm表示为:
αi,m-2=γi,m-2i,m-2αnm,i=1,2,...,n-1(17)
其中, γ i , m - 2 = Σ k = i + 1 n ( o σ k + g σ k γ k , m - 1 ) + Σ k = 1 i - 1 ( o σ k + g σ k γ k m ) - s σ i w σ i , η i , m - 2 = Σ k = i + 1 n ( g σ k η k , m - 1 ) + Σ k = 1 i - 1 ( g σ k η k m ) w σ i .
递推下去,处理机(i=n-1,n-2,...,1)在第j趟调度(j=m-1,m-2,...,1)分配的任务量可以用αnm表示为:
αij=γijijαnm(18)
其中 γ i j = Σ k = i + 1 n ( o σ k + g σ k γ k j ) + Σ k = 1 i - 1 ( o σ k + g σ k γ k , j + 1 ) - s σ i w σ i , η i j = Σ k = i + 1 n ( g σ k η k j ) + Σ k = 1 i - 1 ( g σ k η k , j + 1 ) w σ i .
结合公式(5)和公式(18),当i=1,2,...,n,j=1,2,...,m时,任务分配方案αij可以表示为:
αij=γijijαnm(19)
其中,
α n m = W t o t a l - Σ i = 1 n Σ j = 1 m γ i j Σ i = 1 n Σ j = 1 m η i j - - - ( 22 )
步骤2,构建任务完成时间T关于任务分配方案A=(aij)n×m的函数表达式。
任务完成时间T关于任务分配方案A=(aij)n×m可以表示为:
T ( A ) = max { T i | i = 1 , 2 , ... , n } = T 1 = T 2 = ... = T n = m Σ i = 1 n o σ i + Σ i = 1 n Σ j = 1 m g σ i α i j + s σ n + w σ n α n m - - - ( 23 )
其中,T为总的任务完成时间,Ti为处理机Pi的任务完成时间,为使得任务完成时间最短,所有处理机同时完成计算,即T1=T2=...=Tn
步骤3,以任务完成时间最短为目标,以处理机调度顺序、调度趟数m和参与计算的处理机数目n为变量,建立可分任务的多趟调度模型如下:
min m , n , σ T = min m , n , σ ( m Σ i = 1 n o σ i + Σ i = 1 n Σ j = 1 m g σ i α i j + s σ n + w σ n α n m )
此模型的约束条件为:
(I)0<n≤N;
(II)m≥2;
(III)αij=γijijαnm,其中,γij、ηij和αnm分别满足公式(20)、公式(21)和公式(22);
(IV)0<αij≤Wtotal,i=1,2,...,n,j=1,2,...,m;
步骤4,利用遗传算法求解可分任务多趟调度模型
利用遗传算法求解可分任务多趟调度模型,得到最优的处理机调度顺序、最优调度趟数、参与计算的最优处理机数目和任务的最短完成时间。
步骤4.1:初始化
确定种群大小PopSize,交叉概率pcros、变异概率pmut和最大进化代数。个体用N+2维的整数向量(n,m,a1,a2,...,aN)来标识。根据个体初始化编码规则产生PopSize个个体,根据个体修正规则修正所有个体组成初始种群P(t),令进化代数t=0;
个体初始化编码规则如下:
输出:初始化后的个体I=(n,m,a1,a2,...,aN)
步骤4.1.1:令n=N,m=2。令临时变量i=1;
步骤4.1.2:随机生成一个整数k满足0≤k≤j-1,令ai=k;
步骤4.1.3:令i=i+1。若i>n,算法终止;否则转到步骤4.1.2。
个体修正规则如下:
步骤4.1.4:按照解码规则对个体I=(n,m,a1,a2,...,aN)进行解码得到排列σ=(σ12,...,σN)。
解码规则如下:
输入:个体I=(n,m,a1,a2,...,aN)
输出:排列σ=(σ12,...,σN)
步骤4.1.4.1:令临时变量i=N;
步骤4.1.4.2:从排列σ=(σ12,...,σN)的最后一位向前寻找第ai+1个未被赋值的位,将其赋值为i;
步骤4.1.4.3:令i=i-1,若i≥1,转到步骤4.1.4.2;否则,算法终止。
步骤4.1.5:将n、m和σ代入式20、式21和式22,分别求得γij、ηij、αnm,其中,i=1,2,...,n,j=1,2,...,m;
步骤4.1.6:将γij、ηij、αnm代入式19,计算任务分配方案A=(aij)n×m
步骤4.1.7:若i=1,2,...,n,j=1,2,...,m,则令n=n-1,转向步骤4.1.5;否则算法终止。
步骤4.2:交叉
以概率pcros从P(t)之中选择父代个体,按照交叉规则进行交叉,交叉获得的全部后代个体定义为集合O1
交叉规则如下:
输入:父代个体 I 1 = ( n 1 , m 1 , a 1 1 , a 2 1 , ... , a N 1 ) I 2 = ( n 2 , m 2 , a 1 2 , a 2 2 , ... , a N 2 )
输出:后代个体 I 3 = ( n 3 , m 3 , a 1 3 , a 2 3 , ... , a N 3 ) I 4 = ( n 4 , m 4 , a 1 4 , a 2 4 , ... , a N 4 )
步骤4.2.1:令I3=I1,I4=I2,n3=n4=N,m3=m4=2;
步骤4.2.2:随机生成两个整数p和q满足3≤p<q≤N+2,将其作为交叉点;
步骤4.2.3:将后代个体I3和I4交叉点之间的基因进行交换。
步骤4.3:变异
以概率pmut从集合O1中选择个体,按照变异规则进行变异,新的后代个体定义为集合O2
变异规则如下:
输入:父代个体I=(n,m,a1,a2,...,aN)
输出:后代个体I′=(n′,m′,a1′,a2′,...,a′N)
步骤4.3.1:令I′=I,n′=N,m′=2;
步骤4.3.2:随机生成一个整数j满足3≤j≤N+2,并将其作为变异点;
步骤4.3.3:随机生成一个整数k满足0≤k≤j-1,令aj′=k。
步骤4.4:局部搜索
对集合O1∪O2中的每个个体,先按照的个体修正规则进行修正,然后按照局部搜索规则进行局部搜索,优化后的个体定义为集合O3
局部搜索规则如下:
输入:父代个体I=(n,m,a1,a2,...,aN)
输出:优化后的个体I′=(n′,m′,a1′,a2′,...,a′N)
步骤4.4.1:根据适应度值求解规则,计算个体I=(n,m,a1,a2,...,aN)的适应度值f;令I′=I;
适应度值求解规则如下:
输入:个体I=(n,m,a1,a2,...,aN)
输出:个体的适应度值f
步骤4.4.1.1:按照解码规则对个体I=(n,m,a1,a2,...,aN)进行解码得到排列σ=(σ12,...,σN);
步骤4.4.1.2:将n、m和σ代入式20、式21和式22,分别求得γij、ηij、αnm,其中,i=1,2,...,n,j=1,2,...,m;
步骤4.4.1.3:将γij、ηij、αnm代入式19,计算任务分配方案A=(aij)n×m
步骤4.4.1.4:将任务分配方案A=(aij)n×m代入式23,计算任务的完成时间T;
步骤4.4.1.5:令f=1/T,输出适应度值f。
步骤4.4.2:令m′=m′+1,n′=N;
步骤4.4.3:根据个体修正规则修正个体I′=(n′,m′,a1,a2,...,aN),然后根据适应度值求解规则,计算个体I′的适应度值f′;若f′<f,则令I=I′,并转向步骤4.4.2;否则,令I′=I,算法终止。
步骤4.5:选择
对集合P(t)∪O3中每个个体求其适应度值,选择适应度值最大的E个个体直接保留到下一代种群P(t+1)中以加快收敛速度。使用轮盘赌选择操作从集合P(t)∪O3中选择PopSize-E个个体保留到下一代种群P(t+1)中,令t=t+1;
步骤4.6:终止条件
若未达到最大进化代数,则转向步骤4.2;否则终止算法,并将适应度值最大的个体作为最优解。对最优解进行解码得到最优的处理机调度顺序,以及最优解对应的最优调度趟数、参与计算的最优处理机数目和任务的最短完成时间。
实验结果
针对提出的可分任务多趟调度模型和算法,进行了多组对比实验。实验参数设置如下:从处理机总数N=15。表1给出了异构并行与分布式系统下从处理机的相关参数,包括链路的通信启动开销o,处理机的计算启动开销s,链路传输单位任务所需时间g,以及处理机计算单位任务所需时间w。遗传算法的实验参数如下:种群大小PopSize=100,交叉概率pcros=0.6,变异概率pmut=0.02,精英保留个数E=5,终止条件为进化代数T=200。
表1.异构并行与分布式系统下从处理机的相关参数
P o s g w
p1 14.11 11.59 0.44 4.82
p2 6.04 1.28 0.65 12.48
p3 16.29 1.91 0.59 6.90
p4 17.25 7.47 0.66 15.04
p5 17.43 18.99 0.16 6.06
p6 10.50 2.07 0.64 9.90
p7 9.37 12.45 0.25 10.80
p8 5.28 16.60 0.23 13.64
p9 11.78 18.22 0.82 3.78
p10 13.90 5.88 0.82 9.92
p11 3.13 13.52 0.83 2.62
p12 11.50 3.06 0.18 13.12
p13 5.69 5.92 0.14 6.36
p14 6.02 19.60 0.79 6.68
p15 5.57 4.26 0.19 10.48
表2给出五种算法的任务完成时间关于不同任务量的实验结果。其中,Hsu’salgorithm代表了参考文献[1]中提出的算法,即处理机按照gi/(gi+wi)递增的顺序作为调度顺序。IG和IW代表了文献[2]中提出的算法,IG表示处理机按照传输单位任务所需时间gi渐增的顺序作为调度顺序,IW表示处理机按照其计算单位任务所需时间wi渐增的顺序作为调度顺序。RCGA代表了参考文献[3]中提出的多趟调度混合实数编码遗传算法,DLS-GA代表了本发明提出的一种求解分布式系统下可分任务多趟调度模型的方法。
表2.五种算法的任务完成时间关于不同任务量的实验结果
通过表2可以看出,对于同样大小的任务,五种调度算法求得的参与计算的处理机数目、调度趟数和处理机调度顺序各不相同,因此对应的任务完成时间也不相同。为方便观察,图4给出了五种调度算法的任务完成时间随任务大小的变化趋势。从图4可以看出,对于同样大小的任务,本发明求得的任务完成时间要明显小于所有其他调度算法,而且随着任务量的增大,任务完成时间逐渐增大,各种算法之间的差异也越来越大。可见,参与计算的处理机数目、调度趟数和处理机调度顺序会较大程度地影响任务的最短完成时间。本发明通过构建可分任务多趟调度的优化模型,并设计了相应的遗传算法对模型进行求解,得到了比已有调度算法更短的任务完成时间。因此,本发明提出的算法在求解可分任务的多趟调度问题上比现有算法更加有效。
参考文献
[1]C.H.Hsu,T.L.Chen,andJ.H.Park.Onimprovingresourceutilizationandsystemthroughputofmasterslavejobschedulinginheterogeneoussystems.TheJournalofSupercomputing,vol.45,no.1,pp.129-150,2008.
[2]A.Shokripour,M.Othman,H.Ibrahim,S.Subramaniam.Newmethodforschedulingheterogeneousmulti-installmentsystems.FutureGenerationComputerSystems,vol.28,no.8,pp.1205-1216,2012.
[3]S.Suresh,H.Huang,H.J.Kim.Hybridreal-codedgeneticalgorithmfordatapartitioninginmulti-roundloaddistributionandschedulinginheterogeneoussystems.AppliedSoftComputing,vol.24,pp.500-510,2014.

Claims (9)

1.一种求解分布式系统下可分任务多趟调度模型的方法,其特征在于,包括以下步骤:
步骤1,构建任务分配方案A(aij)n×m关于处理机调度顺序调度趟数m和参与计算的处理机数目n的函数表达式:
αij=γijijαnm,i=1,2,...,n,j=1,2,...,m式19
其中,
α n m = W t o t a l - Σ i = 1 n Σ j = 1 m γ i j Σ i = 1 n Σ j = 1 m η i j 式22
其中,P0为主处理机,{Pi|i∈{1,2,...,N}}为从处理机;(σ12,...,σN)为1,2,...N的排列,为处理机的调度顺序;αij为主处理机P0在第j趟调度分配给从处理机的任务大小,其中,i=1,2,...,n,j=1,2,...,m;为从处理机的计算启动开销,为从处理机计算单位任务所需的时间;为P0到从处理机的通信链路,为链路的通信启动开销,为链路传输单位任务所花费的时间,其中,i=1,2,...,N;m为调度趟数,n为参与计算的从处理机的数目,其中,n=1,2,...,N;Wtotal为总任务量;
步骤2,构建任务完成时间T关于任务分配方案A=(aij)n×m的函数表达式:
T ( A ) = max { T i | i = 1 , 2 , ... , n } = T 1 = T 2 = ... = T n = m Σ i = 1 n o σ i + Σ i = 1 n Σ j = 1 m g σ i α i j + s σ n + w σ n α n m 式23
其中,T为总的任务完成时间,Ti为处理机Pi的任务完成时间;
步骤3,以任务完成时间最短为目标,以处理机调度顺序、调度趟数和处理机数目为变量,建立可分任务的多趟调度模型:
min m , n , σ T = min m , n , σ ( m Σ i = 1 n o σ i + Σ i = 1 n Σ j = 1 m g σ i α i j + s σ n + w σ n α n m )
此模型的约束条件为:
(I)0<n≤N;
(II)m≥2;
(III)αij=γijijαnm,其中,γij、ηij和αnm分别满足式20、式21和式22;
(IV)0<αij≤Wtotal,i=1,2,...,n,j=1,2,...,m;
步骤4,利用遗传算法求解可分任务多趟调度模型
利用遗传算法求解可分任务多趟调度模型,得到最优的处理机调度顺序、最优调度趟数、参与计算的最优处理机数目和任务的最短完成时间。
2.如权利要求1所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4的具体实现步骤如下:
步骤4.1:初始化
确定种群大小PopSize,交叉概率pcros、变异概率pmut和最大进化代数;个体用N+2维的整数向量(n,m,a1,a2,...,aN)来标识;根据个体初始化规则产生PopSize个个体,根据个体修正规则修正所有个体组成初始种群P(t),令进化代数t=0;
步骤4.2:交叉
以概率pcros从P(t)之中选择父代个体,按照交叉规则进行交叉,交叉获得的全部后代个体定义为集合O1
步骤4.3:变异
以概率pmut从集合O1中选择个体,按照变异规则进行变异,新的后代个体定义为集合O2
步骤4.4:局部搜索
对集合O1∪O2中的每个个体,先按照个体修正规则进行修正,然后按照局部搜索规则进行局部搜索,优化后的个体定义为集合O3
步骤4.5:选择
对集合P(t)∪O3中每个个体求其适应度值,选择适应度值最大的E个个体直接保留到下一代种群P(t+1)中以加快收敛速度;使用轮盘赌选择操作从集合P(t)∪O3中选择PopSize-E个个体保留到下一代种群P(t+1)中,令t=t+1;
步骤4.6:终止条件
若未达到最大进化代数,则转向步骤4.2;否则终止算法,并将适应度值最大的个体作为最优解;对最优解进行解码得到最优的处理机调度顺序,以及最优解对应的最优调度趟数、参与计算的最优处理机数目和任务的最短完成时间。
3.如权利要求2所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.1的个体初始化编码规则如下:
输出:初始化后的个体I=(n,m,a1,a2,...,aN)
步骤4.1.1:令n=N,m=2;令临时变量i=1;
步骤4.1.2:随机生成一个整数k满足0≤k≤j-1,令ai=k;
步骤4.1.3:令i=i+1;若i>n,算法终止;否则转到步骤4.1.2。
4.如权利要求2所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.1的个体修正规则如下:
步骤4.1.4:按照解码规则对个体I=(n,m,a1,a2,...,aN)进行解码得到排列σ=(σ12,...,σN);
步骤4.1.5:将n、m和σ带入式20、式21和式22,分别求得γij、ηij、αnm,其中,i=1,2,...,n,j=1,2,...,m;
步骤4.1.6:将γij、ηij、αnm代入式19,计算任务分配方案A=(aij)n×m
步骤4.1.7:若i=1,2,...,n,j=1,2,...,m,则令n=n-1,转向步骤4.1.5;否则算法终止。
5.如权利要求4所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.1.4的解码规则如下:
输入:个体I=(n,m,a1,a2,...,aN)
输出:排列σ=(σ12,...,σN)
步骤4.1.4.1:令临时变量i=N;
步骤4.1.4.2:从排列σ=(σ12,...,σN)的最后一位向前寻找第ai+1个未被赋值的位,将其赋值为i;
步骤4.1.4.3:令i=i-1,若i≥1,转到步骤4.1.4.2;否则,算法终止。
6.如权利要求2所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.2的交叉规则如下:
输入:父代个体 I 1 = ( n 1 , m 1 , a 1 1 , a 2 1 , ... , a N 1 ) I 2 = ( n 2 , m 2 , a 1 2 , a 2 2 , ... , a N 2 )
输出:后代个体 I 3 = ( n 3 , m 3 , a 1 3 , a 2 3 , ... , a N 3 ) I 4 = ( n 4 , m 4 , a 1 4 , a 2 4 , ... , a N 4 )
步骤4.2.1:令I3=I1,I4=I2,n3=n4=N,m3=m4=2;
步骤4.2.2:随机生成两个整数p和q满足3≤p<q≤N+2,将其作为交叉点;
步骤4.2.3:将后代个体I3和I4交叉点之间的基因进行交换。
7.如权利要求2所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.3的变异规则如下:
输入:父代个体I=(n,m,a1,a2,...,aN)
输出:后代个体I′=(n′,m′,a′1,a′2,...,a′N)
步骤4.3.1:令I′=I,n′=N,m′=2;
步骤4.3.2:随机生成一个整数j满足3≤j≤N+2,并将其作为变异点;
步骤4.3.3:随机生成一个整数k满足0≤k≤j-1,令a′j=k。
8.如权利要求2所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.4的局部搜索规则如下:
输入:父代个体I=(n,m,a1,a2,...,aN)
输出:优化后的个体I′=(n′,m′,a′1,a′2,...,a′N)
步骤4.4.1:根据适应度值求解规则,计算个体I=(n,m,a1,a2,...,aN)的适应度值f;令I′=I;
步骤4.4.2:令m′=m′+1,n′=N;
步骤4.4.3:根据个体修正规则修正个体I′=(n′,m′,a1,a2,...,aN),然后根据适应度值求解规则,计算个体I′的适应度值f′;若f′<f,则令I=I′,并转向步骤4.4.2;否则,令I′=I,算法终止。
9.如权利要求8所述的求解分布式系统下可分任务多趟调度模型的方法,其特征在于,所述的步骤4.4.1中的适应度值求解规则如下:
输入:个体I=(n,m,a1,a2,...,aN)
输出:个体的适应度值f
步骤4.4.1.1:按照解码规则对个体I=(n,m,a1,a2,...,aN)进行解码得到排列σ=(σ12,...,σN);
步骤4.4.1.2:将n、m和σ代入式20、式21和式22,分别求得γij、ηij、αnm,其中,i=1,2,...,n,j=1,2,...,m;
步骤4.4.1.3:将γij、ηij、αnm代入式19,计算任务分配方案A=(aij)n×m
步骤4.4.1.4:将任务分配方案A=(aij)n×m代入式23,计算任务的完成时间T;
步骤4.4.1.5:令f=1/T,输出适应度值f。
CN201510408090.2A 2015-07-13 2015-07-13 一种求解分布式系统下可分任务多趟调度模型的方法 Active CN105094970B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510408090.2A CN105094970B (zh) 2015-07-13 2015-07-13 一种求解分布式系统下可分任务多趟调度模型的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510408090.2A CN105094970B (zh) 2015-07-13 2015-07-13 一种求解分布式系统下可分任务多趟调度模型的方法

Publications (2)

Publication Number Publication Date
CN105094970A true CN105094970A (zh) 2015-11-25
CN105094970B CN105094970B (zh) 2018-07-10

Family

ID=54575478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510408090.2A Active CN105094970B (zh) 2015-07-13 2015-07-13 一种求解分布式系统下可分任务多趟调度模型的方法

Country Status (1)

Country Link
CN (1) CN105094970B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920206A (zh) * 2018-06-13 2018-11-30 北京交通大学 一种插件调度方法及装置
CN109118112A (zh) * 2018-08-29 2019-01-01 南京航空航天大学 跨区域尾随间隔限制及离场时隙分配综合策略计算方法
CN110570681A (zh) * 2018-06-06 2019-12-13 奇点无限有限公司 基于车位协商的自动停车方法
CN110689155A (zh) * 2019-10-15 2020-01-14 上海海事大学 一种考虑拥堵和排放的集卡预约系统多约束调度方法
CN111124629A (zh) * 2019-11-12 2020-05-08 周口师范学院 一种带结果收集的多趟调度模型的求解方法及系统
CN111262940A (zh) * 2020-01-17 2020-06-09 中南大学 一种车载边缘计算应用缓存方法、装置及系统
CN114610462A (zh) * 2022-03-21 2022-06-10 中国电子科技集团公司第二十研究所 无冲突的周期性多趟调度模型的求解方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002516003A (ja) * 1996-10-04 2002-05-28 ビービーエヌ コーポレイション 遺伝的アルゴリズムスケジュール作成装置及び方法
CN102122251A (zh) * 2011-03-21 2011-07-13 北京航空航天大学 一种基于遗传算法的多航天器并行测试任务调度方法
US8069127B2 (en) * 2007-04-26 2011-11-29 21 Ct, Inc. Method and system for solving an optimization problem with dynamic constraints
US20110307899A1 (en) * 2010-06-11 2011-12-15 Gunho Lee Computing cluster performance simulation using a genetic algorithm solution
CN103345657A (zh) * 2013-04-02 2013-10-09 江苏大学 云计算环境下基于遗传和蚁群的任务调度方法
CN103902375A (zh) * 2014-04-11 2014-07-02 北京工业大学 一种基于改进遗传算法的云任务调度方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002516003A (ja) * 1996-10-04 2002-05-28 ビービーエヌ コーポレイション 遺伝的アルゴリズムスケジュール作成装置及び方法
US8069127B2 (en) * 2007-04-26 2011-11-29 21 Ct, Inc. Method and system for solving an optimization problem with dynamic constraints
US20110307899A1 (en) * 2010-06-11 2011-12-15 Gunho Lee Computing cluster performance simulation using a genetic algorithm solution
CN102122251A (zh) * 2011-03-21 2011-07-13 北京航空航天大学 一种基于遗传算法的多航天器并行测试任务调度方法
CN103345657A (zh) * 2013-04-02 2013-10-09 江苏大学 云计算环境下基于遗传和蚁群的任务调度方法
CN103902375A (zh) * 2014-04-11 2014-07-02 北京工业大学 一种基于改进遗传算法的云任务调度方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110570681A (zh) * 2018-06-06 2019-12-13 奇点无限有限公司 基于车位协商的自动停车方法
CN108920206A (zh) * 2018-06-13 2018-11-30 北京交通大学 一种插件调度方法及装置
CN108920206B (zh) * 2018-06-13 2022-01-18 北京交通大学 一种插件调度方法及装置
CN109118112A (zh) * 2018-08-29 2019-01-01 南京航空航天大学 跨区域尾随间隔限制及离场时隙分配综合策略计算方法
CN110689155A (zh) * 2019-10-15 2020-01-14 上海海事大学 一种考虑拥堵和排放的集卡预约系统多约束调度方法
CN111124629A (zh) * 2019-11-12 2020-05-08 周口师范学院 一种带结果收集的多趟调度模型的求解方法及系统
CN111124629B (zh) * 2019-11-12 2023-05-26 周口师范学院 一种带结果收集的多趟调度模型的求解方法及系统
CN111262940A (zh) * 2020-01-17 2020-06-09 中南大学 一种车载边缘计算应用缓存方法、装置及系统
CN114610462A (zh) * 2022-03-21 2022-06-10 中国电子科技集团公司第二十研究所 无冲突的周期性多趟调度模型的求解方法及系统
CN114610462B (zh) * 2022-03-21 2024-05-14 中国电子科技集团公司第二十研究所 无冲突的周期性多趟调度模型的求解方法及系统

Also Published As

Publication number Publication date
CN105094970B (zh) 2018-07-10

Similar Documents

Publication Publication Date Title
CN105094970A (zh) 一种求解分布式系统下可分任务多趟调度模型的方法
CN101777990B (zh) 多目标免疫优化组播路由路径选择方法
WO2016169287A1 (zh) 一种混流生产线产能分配方法
CN106203893A (zh) 一种众包环境下的基于遗传算法的任务分配方法
Tun et al. Federated learning based energy demand prediction with clustered aggregation
CN110298589A (zh) 基于遗传-蚁群融合算法的动态服务资源调度方法
CN110221585B (zh) 一种用于混合流水车间考虑设备维护的节能调度控制方法
CN113671987B (zh) 基于非死锁合同网算法的多机分布式时序任务分配方法
CN105959401A (zh) 一种基于超网络的制造服务供需匹配与动态调度方法
CN114548546A (zh) 一种调水工程水量的优化调度方法
CN104636871A (zh) 一种基于数据的单阶段多产品批处理的控制方法
CN105930944A (zh) 一种基于dec-pomdp的多卫星协同优化决策方法及装置
CN109635510A (zh) 铁路货车并行检修线设置方法
CN107346469A (zh) 云制造环境下多地运输多目标综合调度方法
CN110322149B (zh) 时间银行中基于多指标评价的一对多双边匹配方法
CN106451431B (zh) 一种混合交易模式下的网损分摊方法
CN115952896A (zh) 一种基于物料过程齐套的柔性作业车间调度方法
CN104915255B (zh) 一种可分任务多趟调度模型的求解方法及系统
CN104461720B (zh) 一种可分任务调度模型的求解方法及系统
CN108418211B (zh) 一种基于Dijlstra算法和遗传算法的供电路径优化方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN111047071A (zh) 基于深度迁移学习和Stackelberg博弈的电力系统实时供需互动方法
CN111090510A (zh) 混合启发式和遗传算法的两阶段云工作流调度优化方法
CN115220477A (zh) 一种基于量子遗传算法的异构无人机联盟形成方法
CN112506644B (zh) 基于云边端混合计算模式系统的任务调度方法和系统

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