CN114968554B - 一种基于核函数映射方式的鲸鱼算法的工作流云调度方法 - Google Patents
一种基于核函数映射方式的鲸鱼算法的工作流云调度方法 Download PDFInfo
- Publication number
- CN114968554B CN114968554B CN202210362867.6A CN202210362867A CN114968554B CN 114968554 B CN114968554 B CN 114968554B CN 202210362867 A CN202210362867 A CN 202210362867A CN 114968554 B CN114968554 B CN 114968554B
- Authority
- CN
- China
- Prior art keywords
- task
- host
- cloud
- tasks
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 241000283153 Cetacea Species 0.000 title claims abstract description 85
- 238000013507 mapping Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000006870 function Effects 0.000 claims description 41
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 4
- 238000005457 optimization Methods 0.000 description 9
- 230000000052 comparative effect Effects 0.000 description 6
- 230000001976 improved effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000006260 foam Substances 0.000 description 1
- 230000002431 foraging effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007921 spray Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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
-
- 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)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于核函数映射方式的鲸鱼算法的工作流云调度方法,包括:步骤1,创建拓扑图;步骤2,创建云环境下的云任务;步骤3,创建云环境的调度器的模型;步骤4,云环境下的目标函数;步骤5,创建基于核函数映射方式的鲸鱼算法的工作流云调度器。本发明通过结合核函数的从低维向高维的映射的映射函数,将任务映射到每个主机上通过该映射函数,该映射可以表示该任务在告诉每个主机该任务的分配主机,在鲸鱼算法进行迭代的过程中,每个主机根据相应的映射信息来计算下一次的位置,通过该方法可以有效的保留任务在主机上的信息。
Description
技术领域
本发明属于大数据技术领域,涉及大数据云环境的任务调度,具体涉及一种基于核函数映射方式的鲸鱼算法的工作流云调度方法。
背景技术
近几年的技术革新,互联网应用的种类越来越多,人类已经进入了大数据时代,互联网中的信息量以指数的速度。与其他分布式计算技术(如集群和网格计算)相比,云计算为向用户提供服务提供了一种弹性和可扩展的方式。也就是说,消费者不需要拥有基础设施,他们可以按使用次数付费使用计算资源和平台。由于云平台可以动态地提供、分配和管理虚拟机(Virtual Machine,VM),云平台中的调度问题通常可以分为两个:第一个是用户提交的任务的调度,并将其映射到一组可用的主机(Host)资源;第二个是VM和Host映射,它在合适的主机中创建或迁移VM。本文重点对前一个问题进行了优化,因为它直接影响到云计算系统的处理能力,优化的任务调度将极大地提高整个系统的效率,如任务的运行时间。然而,最优化问题的复杂性是NP-hard。这意味着解决问题的时间将是指数级的,而当问题规模增大时,算法将因为维数的增长而难以计算。
发明内容
针对现有技术存在的不足,本发明的目的在于,提供一种基于核函数映射方式的鲸鱼算法的工作流云调度方法,以解决现有技术中的工作流云调度能力有待进一步提升的技术问题。
为了解决上述技术问题,本发明采用如下技术方案予以实现:
一种基于核函数映射方式的鲸鱼算法的工作流云调度方法,该方法包括以下步骤:
步骤1,创建拓扑图:
创建模拟的云环境和云环境主机的拓扑图G(H,E),H={h1,h2,…,hm},m>2,hm表示为(id,cpu,memory,bandwidth);
式中:
H表示云环境中的主机的集合;
E表示主机到主机间的带宽;
hm表示云环境中的第m个主机;
id表示主机的id;
cpu表示主机的CPU;
memory表示主机的内存;
bandwidth表示主机的带宽;
步骤2,创建云环境下的云任务:
将云任务创建为一个Job,Job=(ts1,ts2,ts3,…,tsn),tsn表示为 (id,cpu,memory,spanTime,out);
由于job间的任务之间具有依赖性,将任务构建一个DAG图,每个节点即为一个任务;DAG图的每个边即为任务间的相互依赖,用任务间需要传输的数据量来表示;
式中:
tsn表示每个job的子任务;
id表示任务的id;
cpu表示任务所需要的CPU;
memory表示任务所需要的内存;
spanTime表示任务运行的时间;
out表示任务间的依赖;
步骤3,创建云环境的调度器的模型:
所述的调度器是将云任务分配到主机上运行即可当作任务到主机的映射:
f:Task→Host
式中:
f表示映射;
Task表示任务;
Host表示主机;
在云环境下经过调度分配后,任务的分配使用任务分配矩阵,所述的任务分配矩阵表示为:
任务分配矩阵中的每个元素表示任务分配到相应的主机上,有如下公式:
由于每个任务只会分配到一个主机,所以有i∈[1,n];
式中:
T表示任务分配矩阵;
g表示任务分配矩阵中的元素;
n表示任务的个数;
m表示主机的个数;
步骤4,云环境下的目标函数:
定义云环境模型的目标函数为fitness函数,该函数的含义为计算当前任务分配矩阵分配的任务的运行时间和理想时间的比值,量化分配方案的优劣,fitness函数为:
Atij=spantime(tsi)+waittime(tsi)
式中:
gij表示任务tsi是否分配到hj主机上,若分配到则为1,否则为0;
Atij表示任务tsi在hj主机真实的运行时间,因为任务tsi的运行需要等待其依赖的任务运行结束任务tsi才可以运行,因此每个任务都会有一个等待时间;
idealTime表示该job理想的情况下的运行时间;
spantime()表示任务的运行时间;
waittime()表示任务的等待时间;
步骤5,创建基于核函数映射方式的鲸鱼算法的工作流云调度器:
鲸鱼算法的映射方式为基于高斯核函数的映射方法,该映射的含义是:通过映射算法将每个任务映射到一个主机数目的向量上,使得每个任务和每个主机都有直接关系,使用该向量进行鲸鱼的迭代计算,该向量表示为:
[v1 v2 v3 … vm];
式中:
vm表示任务映射到第m个主机的值;
按照鲸鱼算法的位置更迭公式进行更迭,实现工作流云调度。
本发明与现有技术相比,具有如下技术效果:
本发明通过结合核函数的从低维向高维的映射的映射函数,将任务映射到每个主机上通过该映射函数,该映射可以表示该任务在告诉每个主机该任务的分配主机,在鲸鱼算法进行迭代的过程中,每个主机根据相应的映射信息来计算下一次的位置,通过该方法可以有效的保留任务在主机上的信息。
附图说明
图1为本发明设计的云环境下工作流的云调度的架构示意图;
图2为Job模型的示意图;
图3为主机的网络拓扑结构示意图;
图4为主机个数50任务个数[100,200,300,400,500,600,700,800,900,1000]的实验结果示意图,且每个实验均重复10次求其平均值;
图5为主机个数100任务个数[100,200,300,400,500,600,700,800,900,1000]的实验结果示意图,且每个实验均重复10次求其平均值;
图6为主机个数50任务个数[100,200,300,400,500,600,700,800,900,1000]的所提算法(KWC)和改变非线性因子(Non-Linear-WOA)在云调度的结果图。
图7为主机个数100任务个数[100,200,300,400,500,600,700,800,900,1000]的所提算法(KWC)和改变非线性因子(Non-Linear-WOA)在云调度的结果图。
图8为主机个数50任务个数[100,200,300,400,500,600,700,800,900,1000]的所提算法(KWC)和加入自适应权重的(Adjust-WOA)在云调度的结果图。
图9为主机个数100任务个数[100,200,300,400,500,600,700,800,900,1000]的所提算法(KWC)和加入自适应权重的(Adjust-WOA)在云调度的结果图。
图10为WOA算法的流程图。
以下结合实施例对本发明的具体内容作进一步详细解释说明。
具体实施方式
需要说明的是,本发明中的所有的算法,如无特殊说明,全部均采用现有技术中已知的算法。
需要说明的是,本发明中:
WOA,即the Whale Optimization Algorithm,指的是鲸鱼优化算法。
KWC,即BaseKernel Improve WOA for Cloud Task Scheduling,指的是基于核函数映射方式的鲸鱼算法的工作流云调度。
DAG,即Directed acyclic graph,指的是有向无环图。
VM,即Virtual Machine,指的是虚拟机。
鲸鱼算法,即鲸鱼优化算法(WOA),是最新的启发式算法之一,这种算法是根据座头鲸捕猎方法(即泡沫网捕食)的启发而产生的。由于这种独特的优化机制,WOA可以提供良好的全局搜索能力,因为WOA良好的全局搜索能力这使得它可以应用于解决各种工程问题。本发明将尝试探索WOA方法在云计算任务调度最优化问题中的应用。具体来说,本发明专注于优化给定任务在云计算系统的任务执行时间,这个目标需要确保VM和Host间的映射尽可能接近理想的映射。通常,本发明首先将任务调度方案映射到鲸鱼觅食模型,然后利用WOA算法得到一个近似最优解。基于鲸鱼算法,提出了一种改进的云任务调度算法 KWC,以提高WOA的最优解搜索能力。
本发明的整体技术构思为:本发明给出一种基于核函数映射方式的鲸鱼算法的工作流云调度方法,该方法的实施环境在一个云环境下。将用户提交的任务以一定策略的映射到合适的主机上,以使得用户提交的任务的完成时间最小化。该算法是改进最近的鲸鱼算法(the Whale Optimization Algorithm)。由于虚拟机的动态配置、分配和管理,因而云环境下的调度是一个NP-hard问题,因此随着任务和集群规模的增长,解决调度问题的时间将是指数级的,算法将因维度问题而崩溃。为了在可接受的时间范围内解决此优化问题,近年来启发式算法越来越受关注。与传统调度算法(先来先服务算法、Min-Min算法和 Max-Min算法)相比,启发式算法可以在多项式时间而非指数时间内找出近似最优解。鲸鱼算法(WOA)是一种启发式算法,它受座头鲸狩猎方式的自然启发。由于这种独特的优化机制,鲸鱼算法(WOA)可以提供良好的全局搜索能。鲸鱼算法(WOA)引用到云平台的任务调度问题上,可以得到一个近似的最优的解决方案,在此基础上,进一步提出了一种称为KWC(BaseKernel Improve WOA for Cloud Task Scheduling)的方法,进一步提高鲸鱼算法(WOA)的在云平台的任务调度的最优解搜索能力。
本发明中,WOA算法选择攻击的方式也十分简单,即生成一个随机数,用该随机数来决定选择哪种攻击方式。流程图如图10所示。
遵从上述技术方案,以下给出本发明的具体实施例,需要说明的是本发明并不局限于以下具体实施例,凡在本申请技术方案基础上做的等同变换均落入本发明的保护范围。
实施例:
本实施例给出一种基于核函数映射方式的鲸鱼算法的工作流云调度方法,该方法中模拟的云环境调度框架入图1所示,用户Client将任务提交到调度器,调度器将任务放到TaskQueue中然后由调度器Schedule将任务映射到相对应的主机(Host)上执行,该方法包括以下步骤:
步骤1,创建拓扑图:
创建模拟的云环境和云环境主机的拓扑图G(H,E),H={h1,h2,…,hm},m>2,hm表示为(id,cpu,memory,bandwidth);
式中:
H表示云环境中的主机的集合;
E表示主机到主机间的带宽;
hm表示云环境中的第m个主机;
id表示主机的id;
cpu表示主机的CPU;
memory表示主机的内存;
bandwidth表示主机的带宽;
本实施例中,步骤1的具体操作如下:
创建云环境调度器和云环境主机的拓扑图G(H,E),主机拓扑如图3所示,;
图3中的host1到其他host的边表示相应的host1到其他host的带宽,如没有则表示host1不可直接与其相连,可通过其他host进行转发。而每个主机和多少个主机连接是随机的,而且和那些主机连接也是随机,因此主机到主机的带宽因为选择的链路不同而不同。而我们采用迪杰斯特拉算法(Dijkstra's Algorithm) 选择带宽最大的的链路。
主机提交任务时候,若该主机的资源满足该任务且该任务的依赖任务也已经执行结束则会直接运行,否则任务在主机的队列中等待运行条件满足,主机调度下一个任务直至主机队列的任务运行结束。在本次实验中我们的主机个数为50和100。
步骤2,创建云环境下的云任务:
将云任务创建为一个Job,Job=(ts1,ts2,ts3,…,tsn),tsn表示为 (id,cpu,memory,spanTime,out);
由于job间的任务之间具有依赖性,将任务构建一个DAG图,每个节点即为一个任务;DAG图的每个边即为任务间的相互依赖,用任务间需要传输的数据量来表示;
式中:
tsn表示每个job的子任务;
id表示任务的id;
cpu表示任务所需要的CPU;
memory表示任务所需要的内存;
spanTime表示任务运行的时间;
out表示任务间的依赖;例如;表示该任务会向5,7,8,9,16号任务传输的数据分别为240,432,578,210,345。则表示任务5,7,8,9,16依赖该任务。任务间传输的数据量的大小会影响任务间传输的时间,相同的数据量,两个任务分配的主机不同相应的传输时间也不同。而传输时间也会影响任务的运行时间。
本实施例中,步骤2的具体操作如下:
如图2所示,整个图2表示一个Job,图中的每一圆圈表示一个任务,n1表示任务的名称,下面的数字表示任务运行的时间。任意两个任务间的边表示任务间的依赖,例如n2的运行需要依赖n1且n1还会向n2传递数据,边上的数值表示的数据量的值。
假设任务在需求资源满足的情况下运行时间相同的情况下,但任务在主机上运行时候,因为任务间的依赖关系,则实际运行时间由主机运行时所决定。
云任务的运行时间在创建是随机生成的,但在一个随机范围内,任务的依赖的任务的个数和任务间传输的数据的大小都是随机生成的。在本实验我们创建了10个云任务任务个数为[100,200,300,400,500,600,700,800,900,1000]。
步骤3,创建云环境的调度器的模型:
所述的调度器主要是将云任务分配到合理的主机上运行即可当作任务到主机的映射:
f:Task→Host
式中:
f表示映射;
Task表示任务;
Host表示主机;
在云环境下经过调度分配后,任务的分配使用任务分配矩阵,所述的任务分配矩阵表示为:
任务分配矩阵中的每个元素表示任务分配到相应的主机上,有如下公式:
由于每个任务只会分配到一个主机,所以有i∈[1,n];
式中:
T表示任务分配矩阵;
g表示任务分配矩阵中的元素;
n表示任务的个数;
m表示主机的个数;
步骤4,云环境下的目标函数:
定义云环境模型的目标函数,本发明仅考虑任务的完成时间,所以定义 fitness函数,该函数的含义为计算当前任务分配矩阵分配的任务的运行时间和理想时间的比值,量化分配方案的优劣,fitness函数为:
Atij=spantime(tsi)+waittime(tsi)
式中:
gij表示任务tsi是否分配到hj主机上,若分配到则为1,否则为0;
Atij表示任务tsi在hj主机真实的运行时间,因为任务tsi的运行需要等待其依赖的任务运行结束任务tsi才可以运行,因此每个任务都会有一个等待时间;
idealTime表示该job理想的情况下的运行时间;
spantime()表示任务的运行时间;
waittime()表示任务的等待时间;
步骤5,创建基于核函数映射方式的鲸鱼算法的工作流云调度器:
在鲸鱼算法中每一只鲸鱼表示一种分配方式,相对于传统鲸鱼算法映射方式,本发明采用一种新的基于高斯核函数的映射方法。
鲸鱼算法的映射方式为基于高斯核函数的映射方法,该映射的含义是:通过映射算法将每个任务映射到一个主机数目的向量上,使得每个任务和每个主机都有直接关系,使用该向量进行鲸鱼的迭代计算,这样可以更准确的表示主机和任务的相关性。该向量表示为:[v1 v2 v3…vm];
式中:
vm表示任务映射到第m个主机的值。
按照鲸鱼算法的位置更迭公式进行更迭,实现工作流云调度。
步骤5中,具体的,所述的鲸鱼算法的位置更迭公式为:
式中:
t表示第t代鲸鱼;
表示第t代鲸鱼的位置;
表示第t代鲸鱼的领头鲸鱼的位置,即鲸鱼群最优的位置;
表示在鲸鱼群随机选取一个鲸鱼的位置;
A表示一个系数,=2a×r-a;
a表示是一个随着迭代次数线性递减的函数,当前使用的是线性的变化:
C表示另一个系数,=2×r;
r表示一个[0,1]的随机数;
l是[-1,1]的随机值,b是一个常量,因为没有选取范围,默认为1;
p表示一个随机数即抛硬币。
步骤5中,进一步具体的,鲸鱼算法的更新新一代个体的方式为:
包围猎物:
鲸鱼在包围狩猎时候会选择向着最优位置的鲸鱼即领头鲸由头或者向一个随机的鲸鱼游走。因为会向随机的鲸鱼游走,因此会增加算法的搜索能力。
式中:
表示当前鲸鱼距离当前领头鲸的距离;
表示领头鲸的位置;
t表示第t代鲸鱼;
C表示一个系数,C=2×r;
r表示一个[0,1]的随机数;
向领头鲸游走:
式中:
A表示一个系数,A=2a×r-a;
a表示是一个随着迭代次数线性递减的函数,当前使用的是线性的变化:
tmax表示最大的迭代次数。
向随机鲸鱼游走:
式中:
表示随机选择的鲸鱼的位置。
气泡攻击:
鲸鱼在捕猎时会喷出汽包形成气泡网来驱赶猎物。鲸鱼为了使用气泡网来驱赶猎物,也会不断的更新自身的位置。使用气泡网时,鲸鱼的位置更新公式如下:
式中:
l是[-1,1]的随机值,b是一个常量,因为没有选取范围,默认为1。
步骤5中,进一步的,在更迭过程中,根据步骤4获取每次鲸鱼位置更迭的fitness函数,并重新定义鲸鱼群的领头鲸,具体过程为:
创建的50只鲸鱼,迭代100次,在初始化时候,鲸鱼的初始位置是随机的,并且经过高斯核函数的映射方法映射到主机数目的维度;
式中:
x表示需要映射的数值;
σ表示高斯函数的标准差;
因为使用了高斯核函数的映射本发明在迭代的过程中可以更好的保留任务在主机间的信息,而在迭代的过程中,因为任务信息的保留,在生成的新一代个体的时候才可以更准确。
性能测试:
创建其他启发式算法的调度器,使用的主机和任务都是步骤1和2的生成的。使用的启发式算法主要有:蚁群算法,粒子群算法和鲸鱼算法。实验结果如图4和图5所示,无论是在改变任务的个数和主机的个数,KWC算法的任务的完成时间都相对于蚁群算法,粒子群算法和鲸鱼算法都有相对较高的提升。由此可看出KWC算法就该模型的云调度算法相对于蚁群算法,粒子群算法和鲸鱼算法更适用。
对比例1:
本对比例给出了一种鲸鱼算法的改进方案。该方法的其他步骤与实例1相同,区别仅仅在步骤3中的映射方式的不同和a的选择。该对比式例,将收敛因子改为非线性变化的方式。
式中:
a表示是一个随着迭代次数线性递减的函数,当前使用的是非线性的;
t表示第t代鲸鱼;
tmax表示最大的迭代次数。
实验结果如图6和如图7所示,就实验结果来看KWC算法对鲸鱼算法的改进相比于基于改变收敛因子a的鲸鱼算法的效果更佳。不论是改变任务个数和主机个数都有着明显的提升。
对比例2:
本对比例给出了一种鲸鱼算法的改进方案。该方法的其他步骤与实例1相同,区别仅仅在步骤3中的映射方式的不同和在算法的迭代过程中加入了一种自适应权重的策略。该对比式例,自适应权重为:
式中:
w表示自适应权重
l是[-1,1]的随机值,b是一个常量,因为没有选取范围,默认为1。
表示当前鲸鱼距离当前领头鲸的距离;
表示领头鲸的位置;
C表示一个系数,C=2×r;
r表示一个[0,1]的随机数;
A表示一个系数,A=2a×r-a;
a表示是一个随着迭代次数线性递减的函数,当前使用的是线性的变化:
t表示第t代鲸鱼;
tmax表示最大的迭代次数。
其对比时间结果如图8和如图9所示,就实验结果来看KWC算法对鲸鱼算法的改进相比于基于加入自适应权重的鲸鱼算法的效果更佳。不论是改变任务个数和主机个数都有着明显的提升。
Claims (1)
1.一种基于核函数映射方式的鲸鱼算法的工作流云调度方法,其特征在于,该方法包括以下步骤:
步骤1,创建拓扑图:
创建模拟的云环境和云环境主机的拓扑图G(H,E),H={h1,h2,…,hm},m>2,hm表示为(id,cpu,memory,bandwidth);
式中:
H表示云环境中的主机的集合;
E表示主机到主机间的带宽;
hm表示云环境中的第m个主机;
id表示主机的id;
cpu表示主机的CPU;
memory表示主机的内存;
bandwidth表示主机的带宽;
步骤2,创建云环境下的云任务:
将云任务创建为一个Job,Job=(ts1,ts2,ts3,…,tsn),tsn表示为(id,cpu,memory,spanTime,out);
由于job间的任务之间具有依赖性,将任务构建一个DAG图,每个节点即为一个任务;DAG图的每个边即为任务间的相互依赖,用任务间需要传输的数据量来表示;
式中:
tsn表示每个job的子任务;
id表示任务的id;
cpu表示任务所需要的CPU;
memory表示任务所需要的内存;
spanTime表示任务运行的时间;
out表示任务间的依赖;
步骤3,创建云环境的调度器的模型:
所述的调度器是将云任务分配到主机上运行即可当作任务到主机的映射:
f:Task→Host
式中:
f表示映射;
Task表示任务;
Host表示主机;
在云环境下经过调度分配后,任务的分配使用任务分配矩阵,所述的任务分配矩阵表示为:
任务分配矩阵中的每个元素表示任务分配到相应的主机上,有如下公式:
由于每个任务只会分配到一个主机,所以有
式中:
T表示任务分配矩阵;
g表示任务分配矩阵中的元素;
n表示任务的个数;
m表示主机的个数;
步骤4,云环境下的目标函数:
定义云环境模型的目标函数为fitness函数,该函数的含义为计算当前任务分配矩阵分配的任务的运行时间和理想时间的比值,量化分配方案的优劣,fitness函数为:
Atij=spantime(tsi)+waittime(tsi)
式中:
gij表示任务tsi是否分配到hj主机上,若分配到则为1,否则为0;
Atij表示任务tsi在hj主机真实的运行时间,因为任务tsi的运行需要等待其依赖的任务运行结束任务tsi才可以运行,因此每个任务都会有一个等待时间;
idealTime表示该job理想的情况下的运行时间;
spantime()表示任务的运行时间;
waittime()表示任务的等待时间;
步骤5,创建基于核函数映射方式的鲸鱼算法的工作流云调度器:
鲸鱼算法的映射方式为基于高斯核函数的映射方法,该映射的含义是:通过映射算法将每个任务映射到一个主机数目的向量上,使得每个任务和每个主机都有直接关系,使用该向量进行鲸鱼的迭代计算,该向量表示为:
[v1 v2 v3…vm];
式中:
vm表示任务映射到第m个主机的值;
按照鲸鱼算法的位置更迭公式进行更迭,实现工作流云调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210362867.6A CN114968554B (zh) | 2022-04-07 | 2022-04-07 | 一种基于核函数映射方式的鲸鱼算法的工作流云调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210362867.6A CN114968554B (zh) | 2022-04-07 | 2022-04-07 | 一种基于核函数映射方式的鲸鱼算法的工作流云调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968554A CN114968554A (zh) | 2022-08-30 |
CN114968554B true CN114968554B (zh) | 2024-03-19 |
Family
ID=82977233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210362867.6A Active CN114968554B (zh) | 2022-04-07 | 2022-04-07 | 一种基于核函数映射方式的鲸鱼算法的工作流云调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968554B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116050196B (zh) * | 2023-04-03 | 2023-06-30 | 国家超级计算天津中心 | 多维度仿真方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902873A (zh) * | 2019-02-28 | 2019-06-18 | 长安大学 | 一种基于改进型鲸鱼算法的云制造资源配置的方法 |
WO2019196127A1 (zh) * | 2018-04-11 | 2019-10-17 | 深圳大学 | 一种云计算任务分配方法、装置、设备及存储介质 |
-
2022
- 2022-04-07 CN CN202210362867.6A patent/CN114968554B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019196127A1 (zh) * | 2018-04-11 | 2019-10-17 | 深圳大学 | 一种云计算任务分配方法、装置、设备及存储介质 |
CN109902873A (zh) * | 2019-02-28 | 2019-06-18 | 长安大学 | 一种基于改进型鲸鱼算法的云制造资源配置的方法 |
Non-Patent Citations (2)
Title |
---|
基于信息熵的改进鲸鱼优化算法;刘历波;赵廷廷;李彦苍;王斌;;数学的实践与认识;20200123(第02期);全文 * |
改进鲸鱼算法优化混合核支持向量机在径流预测中的应用;周有荣;王凯;;中国农村水利水电;20200715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114968554A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182115B (zh) | 一种云环境下的虚拟机负载均衡方法 | |
AlEbrahim et al. | Task scheduling for heterogeneous computing systems | |
Pooranian et al. | An efficient meta-heuristic algorithm for grid computing | |
Kaur et al. | Deep‐Q learning‐based heterogeneous earliest finish time scheduling algorithm for scientific workflows in cloud | |
Jayanetti et al. | Deep reinforcement learning for energy and time optimized scheduling of precedence-constrained tasks in edge–cloud computing environments | |
CN109634742B (zh) | 一种基于蚁群算法的时间约束科学工作流优化方法 | |
Khan et al. | Task scheduling in cloud computing using hybrid optimization algorithm | |
Aruna et al. | An improved load balanced metaheuristic scheduling in cloud | |
Chhabra et al. | Optimizing bag-of-tasks scheduling on cloud data centers using hybrid swarm-intelligence meta-heuristic | |
Tripathi et al. | Modified dragonfly algorithm for optimal virtual machine placement in cloud computing | |
CN109710372B (zh) | 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法 | |
Natesan et al. | Optimal task scheduling in the cloud environment using a mean grey wolf optimization algorithm | |
Bansal et al. | A multi-faceted optimization scheduling framework based on the particle swarm optimization algorithm in cloud computing | |
Godhrawala et al. | A dynamic Stackelberg game based multi-objective approach for effective resource allocation in cloud computing | |
Dubey et al. | A hybrid multi-faceted task scheduling algorithm for cloud computing environment | |
CN114968554B (zh) | 一种基于核函数映射方式的鲸鱼算法的工作流云调度方法 | |
Mangalampalli et al. | Multi objective task scheduling algorithm in cloud computing using grey wolf optimization | |
CN117032902A (zh) | 一种基于负载的改进离散粒子群算法的云任务调度方法 | |
Jangu et al. | Improved Jellyfish Algorithm-based multi-aspect task scheduling model for IoT tasks over fog integrated cloud environment | |
Chalack et al. | Resource allocation in cloud environment using approaches based particle swarm optimization | |
Ghafari et al. | An efficient task scheduling in fog computing using improved artificial hummingbird algorithm | |
Akraminejad et al. | A multi-objective crow search algorithm for optimizing makespan and costs in scientific cloud workflows (CSAMOMC) | |
CN117687759A (zh) | 一种任务调度方法、装置、处理设备及可读存储介质 | |
Gupta et al. | User-defined weight based multi objective task scheduling in cloud using whale optimization algorithm | |
Komarasamy et al. | ScHeduling of jobs and Adaptive Resource Provisioning (SHARP) approach in cloud computing |
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 |