CN110321208A - 一种求解云任务调度的进化计算方法 - Google Patents
一种求解云任务调度的进化计算方法 Download PDFInfo
- Publication number
- CN110321208A CN110321208A CN201910566106.0A CN201910566106A CN110321208A CN 110321208 A CN110321208 A CN 110321208A CN 201910566106 A CN201910566106 A CN 201910566106A CN 110321208 A CN110321208 A CN 110321208A
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- current
- demand
- individual
- 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
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于智能制造云计算领域,具体涉及一种求解云任务调度的进化计算方法。本发明首先构建了云任务调度的数学模型,然后设计了改进的遗传算法对其求解。本发明重新设计了交叉算子,并结合局部贪婪算法的思想,在保证有效解的同时,实现子代中每个任务集所对应的三种指标的尽量均衡。本发明中的适应度值描述为S个虚拟机CPU占用资源、内存占用资源以及带宽占用资源方差之和的倒数以及总执行时间的倒数的归一化处理后的评价函数。本算法将有助于各个虚拟机的负载均衡以及每个虚拟机CPU利用率、内存以及带宽资源占用之间的均衡,从而保证资源的较高利用率,进而减少能源消耗、增加云计算的运行效率并提升客户的满意度。
Description
技术领域
本发明属于智能制造云计算领域,具体涉及一种求解云任务调度的进化计 算方法。
背景技术
在云资源分配中,一个关键问题就是怎样合理的分配任务使每个虚拟机尽 可能的达到负载均衡,进而使一批任务的完成时间跨度最短。现有的云任务调 度方法有贪婪策略、MIN-MIN、MAX-MIN等经典算法,这些方法大都没有考 虑负载均衡的问题,进而导致云资源的浪费或者虚拟机过载等情况的出现。随 着群智能算法的出现,越来越多的研究人员将其运用到云任务的调度问题中来 进一步解决负载均衡问题。然而这些算法虽然考虑到了每个虚拟机之间的负载 均衡,但是大都没有考虑在虚拟机占用的云资源中,内存占用需求、CPU占用 需求以及带宽资源占用需求之间的均衡问题。所以依旧有不小的资源浪费问题 的出现。为了解决云任务调度中两方方面的均衡问题,进而减少资源浪费以及 缩短任务完成时间跨度,需要对现有的调度算法进行适当的创新改进,这就产 生了对云任务调度的改进遗传算法的研究。
发明内容
本发明所要解决的技术问题,是智能制造中云任务调度方法的设计,即改 进的遗传算法。本算法的目标是实现各个虚拟机的负载均衡以及任务完成时间 较短,从而保证资源的较高利用率以及客户较好的使用体验。本发明首先构建 了云任务调度的数学模型,然后设计了改进的遗传算法对其求解。本发明中对 遗传算法的改进主要是对其交叉变异方法以及评价函数的改进。
本发明技术方案如下:
一种求解云任务调度的进化计算方法,步骤如下:
第一步:建立模型
现有在智能制造中,设有一批N个数据任务需要处理,有S个虚拟机可以 供使用。虚拟机默认为总的资源以及执行速度是相同的。现将N个数据任务划 分成S个任务集,每个任务集对应一个虚拟机。
目标是得到每个虚拟机之间负载均衡以及用户等待时间较短的一种解决方 案。
N:任务的个数;
S:任务集的个数;
T:所有任务集所组成的有效解的集合,T={T1,T2...TS);
SVM:所有虚拟机拥有的三种资源集合,SVM={SVM1i,SVM2i,SVM3i},其中SVM1i表示每个被占用的虚拟机所拥有的CPU资源,SVM2i表示每个被占用的虚拟机 所拥有的内存资源,SVM3i表示每个被占用的虚拟机所拥有的带宽资源;
Q1i:每个任务集所需要的CPU占用需求,(0<i<=S);
Q2i:每个任务集所需要的内存占用需求,(0<i<=S);
Q3i:每个任务集所需要的带宽资源占用需求,(0<i<=S);
E1:当前分配方案CPU占用需求的均值
E2:当前分配方案内存资源占用需求的均值
E3:当前分配方案带宽资源占用需求的均值
MIi:任务i的指令长度;
MIPSj:虚拟机j的执行速度;
TTimeij:任务i在虚拟机j上的执行时间,TTimeij=MIi/MIPSj;
STj:每个任务集所需要的总的时间,l为该任务集所包含的任务的个数,
STj=TTime1j+TTime2j+TTime3j+...+TTimelj;
TotalTime:当前分配方案执行所需要的时间,u为该分配方案所包含的任务集 的个数,TotalTime=max(ST1,ST2,...,STu);
DTime:客户对这一批任务的最大允许执行时长。
α:表示该分配方案下,虚拟机的负载均衡指标;
β:表示该分配方案下,用户等待时长指标;
评价函数:用于评价当前分配方案的优劣;
f=λ1α+λ2β (1)
其中λ1、λ2表示负载平衡和完成时间的权重,且有λ1+λ2=1,可以通过手动 调整λ1、λ2的值来调节优化函数。
约束:
Q1i/SVM1i<=1 (i=1,2,3,...,S) (2)
Q2i/SVM2i<=1 (i=1,2,3,...,S) (3)
Q3i/SVM3i<=1 (i=1,2,3,...,S) (4) TotalTime<=DTime (5)
该模型中,公式(1)用于评价当前分配方案的优劣。
约束(2)(3)和(4)保证每个任务集三个指标都不超过每个虚拟机拥有 的最大资源。
约束(5)保证每个分配方案总的执行时长满足客户最大等待时长的需求约 束。
第二步:求解模型
本发明提出一种改进的遗传算法来求解云任务调度问题。该方法在交叉因 子中引入判断因子,可以有效的避免无效解。该方法使用评价函数(1)来判断任 务分配方案的优劣。
具体步骤:
定义1:初始解:随机生成的不考虑约束的解。
定义2:有效解:具备不重复任务的所有任务集的解称作是有效解。
步骤1:问题编码
问题编码首先用一条含有从1到N不重复的整数来表示一个初始解,如图1所示。然后通过虚拟机三个指标的约束以及总的执行时间约束,将N个任务 划分成S个任务集,进而得到一个有效解,如图2所示。
步骤1.1:随机产生一个包含有从1到N不重复的整数的数组。每一个整数 表示一个任务的标号,并令h=0表示该数组中排在第0位的任务标号的位置, 令T为一个的空数组,来存储产生的任务集,令i=0,1<=i<=S表示任务集所对 应的标号;
步骤1.2:令Q1=0,Q2=0,Q3=0,ST=0,Q1、Q2、Q3、ST分别表示当 前任务集CPU、内存、带宽资源占用以及任务集的执行时间,并从第h位所对 应的任务开始,在集合Q中检索并记录其对应的CPU资源q1、内存资源q2、 带宽资源q3以及任务所需执行时间TTime。Q表示每个任务所对应的CPU占用 需求、内存占用需求以及带宽资源占用需求的集合, Q=((q11,q21,q31),(q12,q22,q32),...,(q1N,q2N,q3N));
步骤1.3:计算并得到Q1=Q1+q1,Q2=Q2+q2,Q3=Q3+q3,ST=ST+TTime, h=h+1;
步骤1.4:判断当前Q1、Q2、Q3、ST是否同时满足约束(2)、(3)、(4)、 (5),如果满足,则令h=h+1,转到步骤1.5,否则记录当前任务的组成的集合, 存入数组T,得到Ti,i=i+1,并令h=h+1,转到步骤1.2;
步骤1.5:判断h的大小,如果h≤N-1,转到步骤1.3,否则转到步骤1.6;
步骤1.6:得到并输出S个任务集所组成的有效解T。
步骤2:遗传算法求解
步骤2.1:种群初始化
种群初始化指的是在遗传算法中,一次性产生P个从1到N的无序整数列。 然后将该整数列按照步骤1中的编码方式生成P个有效解{T1,T2,...,Tp}。
步骤2.2:交叉过程
本发明重新设计了交叉算子,并结合局部贪婪算法的思想,在保证有效解 的同时,实现子代中每个任务集所对应的三种指标的尽量均衡。随机选择步骤 2.1中产生的初始解Ti、Tj(i≠j),随机生成0到1之间的随机数,如果该随机数 小于交叉概率Pc,则进行交叉操作,交叉算子如图3所示。
具体过程如下:
其交叉算子由删除和添加两个过程组成。
步骤2.2.1:删除过程
步骤2.2.1.1:在当前种群P中随机选择出的两个父代,Ti和Tj(i≠j);
步骤2.2.1.2:从Ti和Tj中各随机选出一个任务集合r1,r2,然后将Ti选择的 任务集合r1所包含的任务从Tj中删除。同理,将Tj选择的任务集合r2所包含的 任务从Ti中删除。
步骤2.2.2:添加过程
步骤2.2.2.1:首先从r2中选择插入父代Ti中的任务,令h=0;
步骤2.2.2.2:在Ti当前的任务集中添加任务r2[h];
步骤2.2.2.3:判断Ti当前的任务集是否同时满足三个指标的约束,若满足, 转到步骤2.2.2.4,否则在Ti中顺序转入下一个任务集,并转到步骤2.2.2.2;
步骤2.2.2.4:由公式(6)计算并存储在添加了该任务以后的每个任务集所 对应的方差d;
其中
步骤2.2.2.5:选择d值最小的任务集作为该节点的添加对象,并令h=h+1;
步骤2.2.2.6:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.2,否则转到2.2.2.7;
步骤2.2.2.7:首先从r1中选择插入父代Tj中的任务,令h=0;
步骤2.2.2.8:在Tj当前的任务集中添加任务r1[h];
步骤2.2.2.9:判断Tj当前的任务集是否同时满足三个指标的约束,若满足, 转到步骤2.2.2.10,否则在Tj中顺序转入下一个任务集,并转到步骤2.2.2.8;
步骤2.2.2.10:由公式(6)计算并存储在添加了该任务以后的每个任务集 所对应的方差d;
步骤2.2.2.11:选择d值最小的任务集作为该节点的添加对象,并令h=h+1;
步骤2.2.2.12:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.8,否则转到2.2.2.13;
步骤2.2.2.13:得到添加过程后的两个子代,并将Ti、Tj放回原始种群中;
步骤2.2.3:重复2.2.1-2.2.2共P次;
步骤2.2.4:得到P个交叉后的子代替换原始种群,得到新的父代{T1,T2,...,Tp}。
步骤2.3:变异过程
本发明的变异过程是为了局部微调,所以本发明采用的变异算子是先随机 从任意一个有效解的一个任务集中选择一个任务,然后再分别计算该任务相对 于该有效解中另一个任务集中的任务的欧式距离,欧式距离最小的作为变异的 另外一个任务选择对象。交换两个任务所在的任务集位置,然后判断是否满足 约束(2)、(3)、(4)、(5)。如果满足,保留变异后的子代,否则保留父代,如 图4所示。
步骤2.3.1:令h=0;
步骤2.3.2:从P个个体中随机选择一个个体;
步骤2.3.3:随机生成0到1之间的随机数,如果该随机数小于变异概率Pm, 则转到步骤2.3.4,否则令h=h+1,转到步骤2.3.;
步骤2.3.4:随机选择该有效解的一个任务集ri,然后随机选择该任务集的一 个任务ti(q1i,q2i,q3i);
步骤2.3.5:从该有效解中另选一个任务集rj(i≠j),并比较t1与rj中所有任 务三个指标的欧式距离。计算方法如公式(7)所示,其中(q1k,q2k,q3k)表示rj中 第k个任务的资源占用情况:
选择o值最小的任务作为另外一个变异点,并将两个变异点所对应的任务相 互交换所在的任务集;
步骤2.3.6:判断h的大小,如果h≤2P-1,转到步骤2.3.2,否则转到步骤 2.3.7;
步骤2.3.7:输出变异后的P个个体。
步骤2.4:选择过程
选择过程通过适应度值选择部分个体作为下一次迭代的父代。适应度值用 来评价个体优劣的程度,适应度值越大表示个体越好。本发明中的适应度值描 述为S个虚拟机CPU占用资源、内存占用资源以及带宽占用资源方差之和的倒 数以及总执行时间的倒数的归一化处理后的评价函数,即公式(1)得到的结果。 选择过程采用基于锦标赛的选择策略,具体步骤如下:
步骤2.4.1:在P个变异后的个体中随机选择两个个体,分别计算两个个体 的适应度值,选择适应度较大的个体进入下一代,并将这两个个体重新放回种 群中;
步骤2.4.2:重复步骤2.4.1共P次,即从P个个体中有放回的比较选择出P 个新个体进行下一次迭代。
步骤2.5:重复2.2-2.4共k次,k表示最大迭代代数,记录下k次迭代中评 价函数(1)f最大的个体作为最后输出的调度方案。
本发明的有益效果:
本发明首先构建了云任务调度的数学模型,然后设计了改进的遗传算法对 其求解。本发明中对遗传算法的改进主要是对其交叉变异方法以及评价函数的 改进。本算法将有助于各个虚拟机的负载均衡以及每个虚拟机CPU利用率、内 存以及带宽资源占用之间的均衡,从而保证资源的较高利用率,进而减少能源 消耗、增加云计算的运行效率并提升客户的满意度。
附图说明
图1遗传算法编码方式。
图2按照三种资源以及任务集执行时间约束划分的任务集。
图3交叉算子示意图。
图4变异算子示意图。
具体实施方式
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附 图,对本发明作进一步详细的说明。
第一步:建立模型
有一批200个数据任务需要处理,有5台虚拟机可以供使用。虚拟机默认 为总的资源以及执行速度是相同的。现200个数据任务划分成5个任务集,每 个任务集对应一个虚拟机。目标是得到每个虚拟机之间负载均衡以及用户等待 时间较短的一种解决方案。
T:所有任务集所组成的有效解的集合,T={T1,T2...TS);
目标函数:得到每个虚拟机之间负载均衡以及用户等待时间较短的双目标 优化值最大的结果,即f值最大;maxf=λ1α+λ2β(1)
其中α表示该分配方案下,虚拟机的负载均衡指标;β表示该分配方案下, 用户等待时长指标;λ1、λ2表示负载平衡和完成时间的权重,且有λ1+λ2=1,可 以通过手动调整λ1、λ2的值来调节优化函数,本案例中λ1为0.8、λ2为0.2。
约束:
Q1i/SVM1i<=1 (i=1,2,3,...,S) (2)
Q2i/SVM2i<=1 (i=1,2,3,...,S) (3)
Q3i/SVM3i<=1 (i=1,2,3,...,S) (4)
TotalTime<=DTime (5)
该模型中,公式(1)用于评价当前分配方案的优劣;约束(2)(3)和(4) 保证每个任务集三个指标都不超过每个虚拟机拥有的最大资源。约束(5)保证 每个分配方案总的执行时长满足客户最大等待时长的需求约束。其中SVM1i、 SVM2i、SVM3i分别表示每个被占用的虚拟机所拥有的CPU资源、内存资源以及 带宽资源;Q1i、Q2i、Q3i(0<i<=S)分别表示每个任务集所需要的CPU占用需求, 本案例中为3067、内存占用需求,本案例中为1024,以及带宽资源占用需求, 本案例中为1000;TotalTime表示当前分配方案执行所需要的时长;DTime表示客 户对这一批任务的最大允许执行时长,本案例中为10。
第二步:求解模型
步骤1:问题编码
步骤1.1:随机产生一个包含有从1到200不重复的整数的数组。每一个整 数表示一个任务的标号,并令h=0表示该数组中排在第0位的任务标号的位置, 令T为一个的空数组,来存储产生的任务集,令i=0,1<=i<=S表示任务集所对 应的标号;
步骤1.2:令Q1=0,Q2=0,Q3=0,ST=0,Q1、Q2、Q3、ST分别表示当 前任务集CPU、内存、带宽资源占用以及任务集的执行时间,并从第h位所对 应的任务开始,在集合Q中检索并记录其对应的CPU资源q1、内存资源q2、 带宽资源q3以及任务所需执行时间TTime。Q表示每个任务所对应的CPU占用 需求、内存占用需求以及带宽资源占用需求的集合, Q=((q11,q21,q31),(q12,q22,q32),...,(q1N,q2N,q3N));
步骤1.3:计算并得到Q1=Q1+q1,Q2=Q2+q2,Q3=Q3+q3,ST=ST+TTime, h=h+1;
步骤1.4:判断当前Q1、Q2、Q3、ST是否同时满足约束(2)、(3)、(4)、 (5),如果满足,则令h=h+1,转到步骤1.5,否则记录当前任务的组成的集合, 存入数组T,得到Ti,i=i+1,并令h=h+1,转到步骤1.2;
步骤1.5:判断h的大小,如果199,转到步骤1.3,否则转到步骤1.6;
步骤1.6:得到并输出5个任务集所组成的有效解T。
步骤2:遗传算法求解
步骤2.1:种群初始化
按照步骤1中的编码方式生成100个有效解{T1,T2,...,Tp}。
步骤2.2:交叉
步骤2.2.1:在当前种群100中随机选择出的两个父代,Ti和Tj(i≠j),并随机 生成0到1之间的随机数,如果该随机数小于变异概率0.9;
步骤2.2.2:从Ti和Tj中各随机选出一个任务集合r1,r2,然后将Ti选择的任 务集合r1所包含的任务从Tj中删除。同理,将Tj选择的任务集合r2所包含的任 务从Ti中删除。
步骤2.2.3:首先从r2中选择插入父代Ti中的任务,令h=0;
步骤2.2.4:在Ti当前的任务集中添加任务r2[h];
步骤2.2.5:判断Ti当前的任务集是否同时满足三个指标的约束,若满足, 转到步骤2.2.6,否则在Ti中顺序转入下一个任务集,并转到步骤2.2.2.2;
步骤2.2.7:由公式(6)计算并存储在添加了该任务以后的每个任务集所对 应的方差d;
其中
步骤2.2.8:选择d值最小的任务集作为该节点的添加对象,并令h=h+1;
步骤2.2.9:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.2,否则转到2.2.2.7;
步骤2.2.10:首先从r1中选择插入父代Tj中的任务,令h=0;
步骤2.2.11:在Tj当前的任务集中添加任务r1[h];
步骤2.2.12:判断Tj当前的任务集是否同时满足三个指标的约束,若满足, 转到步骤2.2.13,否则在Tj中顺序转入下一个任务集,并转到步骤2.2.2.8;
步骤2.2.14:由公式(6)计算并存储在添加了该任务以后的每个任务集所 对应的方差d;
步骤2.2.15:选择d值最小的任务集作为该节点的添加对象,并令h=h+1;
步骤2.2.16:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.8,否则转到2.2.2.13;
步骤2.2.17:得到添加过程后的两个子代,并将Ti、Tj放回原始种群中;
步骤2.2.3:重复交叉过程共100次;
步骤2.2.4:得到100个交叉后的子代替换原始种群,得到新的父代 {T1,T2,...,Tp}。
步骤2.3:变异过程
步骤2.3.1:令h=0;
步骤2.3.2:从100个个体中随机选择一个个体;
步骤2.3.3:随机生成0到1之间的随机数,如果该随机数小于变异概率0.1, 则转到步骤2.3.4,否则令h=h+1,转到步骤2.3.;
步骤2.3.4:随机选择该有效解的一个任务集ri,然后随机选择该任务集的一 个任务ti(q1i,q2i,q3i);
步骤2.3.5:从该有效解中另选一个任务集rj(i≠j),并比较t1与rj中所有任 务三个指标的欧式距离。计算方法如公式(7)所示,其中(q1k,q2k,q3k)表示rj中 第k个任务的资源占用情况:
选择o值最小的任务作为另外一个变异点,并将两个变异点所对应的任务相 互交换所在的任务集;
步骤2.3.6:判断h的大小,如果h≤P-1,转到步骤2.3.2,否则转到步骤2.3.7;
步骤2.3.7:输出变异后的100个个体。
步骤2.4:选择过程
步骤2.4.1:在100个变异后的个体中随机选择两个个体,分别计算两个个 体的适应度值,选择适应度较大的个体进入下一代,并将这两个个体重新放回 种群中;
步骤2.4.2:重复步骤2.4.1共100次,即从100个个体中有放回的比较选择 出100个新个体进行下一次迭代。
步骤2.5:重复2.2-2.4共100次,100表示最大迭代代数,记录下100次迭 代中评价函数(1)f最大的个体作为最后输出的调度方案。
上述参数具体设置如下:
SVM1:3067、SVM2:1024、SVM3:1000、DTime:10、MIPS:1000.0、N: 200、S:5、λ1:0.8、λ2 0.2、k:100、pc:0.9、pm:0.1、P:100。
任务长度MI取值范围为:200~1000
经计算得出:任务规模为200时,计算耗时1.883s,最优基因适应度值为0.0252,相对于MAX-MIN算法负载均衡度较高。
Claims (2)
1.一种求解云任务调度的进化计算方法,其特征在于,步骤如下:
第一步:建立模型
设有一批N个数据任务需要处理,有S个虚拟机可以供使用;虚拟机默认为总的资源以及执行速度是相同的;现将N个数据任务划分成S个任务集,每个任务集对应一个虚拟机;
目标是得到每个虚拟机之间负载均衡以及用户等待时间较短的一种解决方案;
N:任务的个数;
S:任务集的个数;
T:所有任务集所组成的有效解的集合,T={T1,T2...TS);
SVM:所有虚拟机拥有的三种资源集合,SVM={SVM1i,SVM2i,SVM3i},其中SVM1i表示每个被占用的虚拟机所拥有的CPU资源,SVM2i表示每个被占用的虚拟机所拥有的内存资源,SVM3i表示每个被占用的虚拟机所拥有的带宽资源;
Q1i:每个任务集所需要的CPU占用需求,(0<i<=S);
Q2i:每个任务集所需要的内存占用需求,(0<i<=S);
Q3i:每个任务集所需要的带宽资源占用需求,(0<i<=S);
E1:当前分配方案CPU占用需求的均值
E2:当前分配方案内存资源占用需求的均值
E3:当前分配方案带宽资源占用需求的均值
MIi:任务i的指令长度;
MIPSj:虚拟机j的执行速度;
TTimeij:任务i在虚拟机j上的执行时间,TTimeij=MIi/MIPSj;
STj:每个任务集所需要的总的时间,l为该任务集所包含的任务的个数,
STj=TTime1j+TTime2j+TTime3j+...+TTimelj;
TotalTime:当前分配方案执行所需要的时间,u为该分配方案所包含的任务集的个数,TotalTime=max(ST1,ST2,...,STu);
DTime:客户对这一批任务的最大允许执行时长;
α:表示该分配方案下,虚拟机的负载均衡指标;
β:表示该分配方案下,用户等待时长指标;
评价函数:用于评价当前分配方案的优劣;
f=λ1α+λ2β (1)
其中λ1、λ2表示负载平衡和完成时间的权重,且有λ1+λ2=1;
约束:
Q1i/SVM1i<=1(i=1,2,3,...,S) (2)
Q2i/SVM2i<=1(i=1,2,3,...,S) (3)
Q3i/SVM3i<=1(i=1,2,3,...,S) (4)
TotalTime<=DTime (5)
第二步:求解模型
定义1:初始解:随机生成的不考虑约束的解;
定义2:有效解:具备不重复任务的所有任务集的解称作是有效解;
步骤1:问题编码
步骤1.1:随机产生一个包含有从1到N不重复的整数的数组;每一个整数表示一个任务的标号,并令h=0表示该数组中排在第0位的任务标号的位置,令T为一个的空数组,来存储产生的任务集,令i=0,1<=i<=S表示任务集所对应的标号;
步骤1.2:令Q1=0,Q2=0,Q3=0,ST=0,Q1、Q2、Q3、ST分别表示当前任务集CPU、内存、带宽资源占用以及任务集的执行时间,并从第h位所对应的任务开始,在集合Q中检索并记录其对应的CPU资源q1、内存资源q2、带宽资源q3以及任务所需执行时间TTime;Q表示每个任务所对应的CPU占用需求、内存占用需求以及带宽资源占用需求的集合,Q=((q11,q21,q31),(q12,q22,q32),...,(q1N,q2N,q3N));
步骤1.3:计算并得到Q1=Q1+q1,Q2=Q2+q2,Q3=Q3+q3,ST=ST+TTime,h=h+1;
步骤1.4:判断当前Q1、Q2、Q3、ST是否同时满足约束(2)、(3)、(4)、(5),如果满足,则令h=h+1,转到步骤1.5,否则记录当前任务的组成的集合,存入数组T,得到Ti,i=i+1,并令h=h+1,转到步骤1.2;
步骤1.5:判断h的大小,如果h≤N-1,转到步骤1.3,否则转到步骤1.6;
步骤1.6:得到并输出S个任务集所组成的有效解T;
步骤2:遗传算法求解
步骤2.1:种群初始化
种群初始化指的是在遗传算法中,一次性产生P个从1到N的无序整数列;然后将该整数列按照步骤1中的编码方式生成P个有效解{T1,T2,...,Tp};
步骤2.2:交叉过程
随机选择步骤2.1中产生的初始解Ti、Tj(i≠j),随机生成0到1之间的随机数,如果该随机数小于交叉概率Pc,则进行交叉操作;重复交叉操作共P次;得到P个交叉后的子代替换原始种群,得到新的父代{T1,T2,...,Tp};
步骤2.3:变异过程
步骤2.3.1:令h=0;
步骤2.3.2:从P个个体中随机选择一个个体;
步骤2.3.3:随机生成0到1之间的随机数,如果该随机数小于变异概率Pm,则转到步骤2.3.4,否则令h=h+1,转到步骤2.3.;
步骤2.3.4:随机选择该有效解的一个任务集ri,然后随机选择该任务集的一个任务ti(q1i,q2i,q3i);
步骤2.3.5:从该有效解中另选一个任务集rj(i≠j),并比较t1与rj中所有任务三个指标的欧式距离;计算方法如公式(7)所示,其中(q1k,q2k,q3k)表示rj中第k个任务的资源占用情况:
选择o值最小的任务作为另外一个变异点,并将两个变异点所对应的任务相互交换所在的任务集;
步骤2.3.6:判断h的大小,如果h≤P-1,转到步骤2.3.2,否则转到步骤2.3.7;
步骤2.3.7:输出变异后的P个个体;
步骤2.4:选择过程
步骤2.4.1:在P个变异后的个体中随机选择两个个体,分别计算两个个体的适应度值,选择适应度较大的个体进入下一代,并将这两个个体重新放回种群中;
步骤2.4.2:重复步骤2.4.1共P次,即从P个个体中有放回的比较选择出P个新个体进行下一次迭代;
步骤2.5:重复2.2-2.4共k次,k表示最大迭代代数,记录下k次迭代中评价函数(1)f最大的个体作为最后输出的调度方案。
2.如权利要求1所述的求解云任务调度的进化计算方法,其特征在于,所述的步骤2.2中,交叉操作由删除和添加两个过程组成;
步骤2.2.1:删除过程
步骤2.2.1.1:在当前种群P中随机选择出的两个父代,Ti和Tj(i≠j);
步骤2.2.1.2:从Ti和Tj中各随机选出一个任务集合r1,r2,然后将Ti选择的任务集合r1所包含的任务从Tj中删除;同理,将Tj选择的任务集合r2所包含的任务从Ti中删除;
步骤2.2.2:添加过程
步骤2.2.2.1:首先从r2中选择插入父代Ti中的任务,令h=0;
步骤2.2.2.2:在Ti当前的任务集中添加任务r2[h];
步骤2.2.2.3:判断Ti当前的任务集是否同时满足三个指标的约束,若满足,转到步骤2.2.2.4,否则在Ti中顺序转入下一个任务集,并转到步骤2.2.2.2;
步骤2.2.2.4:由公式(6)计算并存储在添加了该任务以后的每个任务集所对应的方差d;
其中
步骤2.2.2.5:选择d值最小的任务集作为该节点的添加对象,并令h=h+1;
步骤2.2.2.6:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.2,否则转到2.2.2.7;
步骤2.2.2.7:首先从r1中选择插入父代Tj中的任务,令h=0;
步骤2.2.2.8:在Tj当前的任务集中添加任务r1[h];
步骤2.2.2.9:判断Tj当前的任务集是否同时满足三个指标的约束,若满足,转到步骤2.2.2.10,否则在Tj中顺序转入下一个任务集,并转到步骤2.2.2.8;
步骤2.2.2.10:由公式(6)计算并存储在添加了该任务以后的每个任务集所对应的方差d;
步骤2.2.2.11:选择d值最小的任务集作为该节点的添加对象,并令h=h+1;
步骤2.2.2.12:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.8,否则转到2.2.2.13;
步骤2.2.2.13:得到添加过程后的两个子代,并将Ti、Tj放回原始种群中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910566106.0A CN110321208B (zh) | 2019-06-27 | 2019-06-27 | 一种求解云任务调度的进化计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910566106.0A CN110321208B (zh) | 2019-06-27 | 2019-06-27 | 一种求解云任务调度的进化计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321208A true CN110321208A (zh) | 2019-10-11 |
CN110321208B CN110321208B (zh) | 2022-10-14 |
Family
ID=68120445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910566106.0A Active CN110321208B (zh) | 2019-06-27 | 2019-06-27 | 一种求解云任务调度的进化计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110321208B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818119A (zh) * | 2020-05-04 | 2020-10-23 | 国网浙江省电力有限公司 | 基于改进的蜘蛛集群的数据服务资源优化调度方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591712A (zh) * | 2011-12-30 | 2012-07-18 | 大连理工大学 | 一种云计算中依赖任务的解耦并行调度方法 |
CN103024048A (zh) * | 2012-12-17 | 2013-04-03 | 南京邮电大学 | 一种云环境下的资源调度方法 |
CN103902375A (zh) * | 2014-04-11 | 2014-07-02 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
US20150052250A1 (en) * | 2013-08-14 | 2015-02-19 | International Business Machines Corporation | Adaptive algorithm for cloud admission policies |
CN104811491A (zh) * | 2015-04-17 | 2015-07-29 | 华南理工大学 | 一种基于遗传算法的云计算资源调度方法 |
CN104883388A (zh) * | 2015-04-17 | 2015-09-02 | 大连理工大学 | 一个基于遗传算法的车联网路边单元部署方法 |
CN105005501A (zh) * | 2015-07-02 | 2015-10-28 | 中国地质大学(武汉) | 一种面向云数据中心的二阶任务优化调度方法 |
CN105704255A (zh) * | 2016-04-29 | 2016-06-22 | 浙江理工大学 | 一种基于遗传算法的服务器负载均衡方法 |
CN105740051A (zh) * | 2016-01-27 | 2016-07-06 | 北京工业大学 | 基于改进的遗传算法的云计算资源调度实现方法 |
CN105975342A (zh) * | 2016-04-29 | 2016-09-28 | 广东工业大学 | 基于改进布谷鸟搜索算法的云计算任务调度方法及系统 |
CN108108228A (zh) * | 2018-01-05 | 2018-06-01 | 安徽师范大学 | 一种基于差分进化算法的资源分配方法 |
CN108182243A (zh) * | 2017-12-28 | 2018-06-19 | 大连理工大学 | 一种基于Spark的分布式进化算法岛模型并行化方法 |
CN108804227A (zh) * | 2018-05-23 | 2018-11-13 | 大连理工大学 | 基于移动云计算的计算密集型任务卸载和最佳资源配置的方法 |
CN109213595A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | 负载均衡调度方法、装置及计算机可读存储介质 |
-
2019
- 2019-06-27 CN CN201910566106.0A patent/CN110321208B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591712A (zh) * | 2011-12-30 | 2012-07-18 | 大连理工大学 | 一种云计算中依赖任务的解耦并行调度方法 |
CN103024048A (zh) * | 2012-12-17 | 2013-04-03 | 南京邮电大学 | 一种云环境下的资源调度方法 |
US20150052250A1 (en) * | 2013-08-14 | 2015-02-19 | International Business Machines Corporation | Adaptive algorithm for cloud admission policies |
CN103902375A (zh) * | 2014-04-11 | 2014-07-02 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN104811491A (zh) * | 2015-04-17 | 2015-07-29 | 华南理工大学 | 一种基于遗传算法的云计算资源调度方法 |
CN104883388A (zh) * | 2015-04-17 | 2015-09-02 | 大连理工大学 | 一个基于遗传算法的车联网路边单元部署方法 |
CN105005501A (zh) * | 2015-07-02 | 2015-10-28 | 中国地质大学(武汉) | 一种面向云数据中心的二阶任务优化调度方法 |
CN105740051A (zh) * | 2016-01-27 | 2016-07-06 | 北京工业大学 | 基于改进的遗传算法的云计算资源调度实现方法 |
CN105704255A (zh) * | 2016-04-29 | 2016-06-22 | 浙江理工大学 | 一种基于遗传算法的服务器负载均衡方法 |
CN105975342A (zh) * | 2016-04-29 | 2016-09-28 | 广东工业大学 | 基于改进布谷鸟搜索算法的云计算任务调度方法及系统 |
CN109213595A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | 负载均衡调度方法、装置及计算机可读存储介质 |
CN108182243A (zh) * | 2017-12-28 | 2018-06-19 | 大连理工大学 | 一种基于Spark的分布式进化算法岛模型并行化方法 |
CN108108228A (zh) * | 2018-01-05 | 2018-06-01 | 安徽师范大学 | 一种基于差分进化算法的资源分配方法 |
CN108804227A (zh) * | 2018-05-23 | 2018-11-13 | 大连理工大学 | 基于移动云计算的计算密集型任务卸载和最佳资源配置的方法 |
Non-Patent Citations (9)
Title |
---|
JINHUA HU 等: "A Scheduling Strategy on Load Balancing of Virtual Machine Resources in Cloud Computing Environment", 《2010 3RD INTERNATIONAL SYMPOSIUM ON PARALLEL ARCHITECTURES, ALGORITHMS AND PROGRAMMING》 * |
TINGTING WANG 等: "Load Balancing Task Scheduling Based on Genetic Algorithm in Cloud Computing", 《2014 IEEE 12TH INTERNATIONAL CONFERENCE ON DEPENDABLE,AUTONOMIC AND SECURE COMPUTING》 * |
张芳磊: "云计算环境下任务调度算法的研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
李超等: "云计算环境下基于改进遗传算法的多维约束任务调度研究", 《小型微型计算机系统》 * |
王贝: "云计算环境下任务调度优化算法的研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
石慧等: "NSGAⅡ多目标均值聚类的云计算虚拟资源调度研究", 《计算机与数字工程》 * |
邹大力 等: "基于修正模态的混合遗传算法结构损伤识别", 《大连理工大学学报》 * |
郭丽娇 等: "云环境下的虚拟资源调度智能优化策略", 《计算机应用与软件》 * |
陈静临: "基于Hadoop异构集群的动态作业调度研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818119A (zh) * | 2020-05-04 | 2020-10-23 | 国网浙江省电力有限公司 | 基于改进的蜘蛛集群的数据服务资源优化调度方法 |
CN111818119B (zh) * | 2020-05-04 | 2023-10-24 | 国网浙江省电力有限公司 | 基于改进的蜘蛛集群的数据服务资源优化调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110321208B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489229B (zh) | 一种多目标任务调度方法及系统 | |
CN108829501B (zh) | 一种基于改进遗传算法的批处理科学工作流任务调度算法 | |
CN105704255A (zh) | 一种基于遗传算法的服务器负载均衡方法 | |
CN106484512B (zh) | 计算单元的调度方法 | |
CN109636011A (zh) | 一种基于改进的变邻域遗传算法的多班制计划排程法 | |
CN108009003A (zh) | 一种多目标虚拟机自适应位置选择方法、分布式云系统 | |
CN104077634B (zh) | 基于多目标优化的主动‑反应式动态项目调度方法 | |
CN105550033A (zh) | 私有云环境下基于遗传禁忌混合算法的资源调度策略方法 | |
CN107862404B (zh) | 基于服务相关性的制造服务供应链优化方法 | |
CN111813500B (zh) | 一种多目标云工作流调度方法及装置 | |
WO2019154215A1 (zh) | 机器人运行路径生成方法、计算设备及存储介质 | |
CN102708404A (zh) | 一种基于机器学习的多核下mpi最优运行时的参数预测方法 | |
Lim et al. | New meta-heuristics for the resource-constrained project scheduling problem | |
CN110909787A (zh) | 基于聚类的进化算法进行多目标批调度优化的方法和系统 | |
Ren et al. | A branch-and-bound embedded genetic algorithm for resource-constrained project scheduling problem with resource transfer time of aircraft moving assembly line | |
CN109255513A (zh) | 一种电力通信网现场运维工单调度方法 | |
Boukhelef et al. | Optimizing the cost of DBaaS object placement in hybrid storage systems | |
CN112685138A (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
He | Optimization of edge delay sensitive task scheduling based on genetic algorithm | |
Djedović et al. | Optimization of business processes by automatic reallocation of resources using the genetic algorithm | |
Shen et al. | An improved genetic algorithm for 0-1 knapsack problems | |
CN110321208A (zh) | 一种求解云任务调度的进化计算方法 | |
Peng et al. | A novel non-dominated sorting genetic algorithm for solving the triple objective project scheduling problem | |
CN115599522A (zh) | 一种云计算平台任务调度方法、装置和设备 | |
Wu et al. | A genetic-ant-colony hybrid algorithm for task scheduling in cloud system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |