CN118193154A - 基于可靠性分解的云计算任务调度方法 - Google Patents
基于可靠性分解的云计算任务调度方法 Download PDFInfo
- Publication number
- CN118193154A CN118193154A CN202410284712.4A CN202410284712A CN118193154A CN 118193154 A CN118193154 A CN 118193154A CN 202410284712 A CN202410284712 A CN 202410284712A CN 118193154 A CN118193154 A CN 118193154A
- Authority
- CN
- China
- Prior art keywords
- task
- setting
- current value
- virtual machine
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000000354 decomposition reaction Methods 0.000 title claims abstract description 20
- 238000011156 evaluation Methods 0.000 claims abstract description 14
- 239000002243 precursor Substances 0.000 claims description 24
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000003362 replicative effect Effects 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/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/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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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
本发明公开了一种基于可靠性分解的云计算任务调度方法,首先计算工作流中各任务的调度优先级,然后通过工作流中各任务的前驱后继关系以及数据关系,获得可靠性要求分配的评估指标,为每个任务选择恰当的可靠性要求,最后通过虚拟机加权得分为每个任务分配合适的虚拟机组,实现云计算任务调度;优点是在面向较大规模的工作流调度时完成时间较短,且成本也较低。
Description
技术领域
本发明涉及云计算任务调度优化方法,尤其是涉及一种可靠性分解的云计算任务调度方法。
背景技术
云计算是一个广泛分布的分布式计算网络,提供了一个高性能的平台,用于解决科学计算问题。在许多领域,工作流通常用于模拟大规模的科学计算问题。在云计算中执行工作流任务时,可能会发生一系列的故障,这些故障会极大地影响工作流任务的顺利执行,因此容错是确保工作流任务的可靠性和稳定性的关键因素之一。
云计算工作流任务调度问题是将工作流任务映射到云计算中的物理资源,并满足一定的约束和目标。现有的云计算调度优化方法主要有三种。第一种方法通过两阶段复制迭代算法来实现定量主动复制来实现调度优化、第二种方法通过对当前未分配的任务采用预先分配的可靠性值,并将任务副本分配给具有最大可靠性值的处理器来实现调度优化。第三种方法通过复制改进基于关键父级的聚类的调度算法来实现调度优化。上述第一种方法和第二种方法在分配过程中的可靠性要求高,导致其完成时间和成本的增加,尤其是面向较大规模的工作流调度时。上述第三种方法在较大规模的工作流调度时,需要花费大量的时间去寻找最优参数与模型,其完成时间也较长。
发明内容
本发明所要解决的技术问题是提供一种在面向较大规模的工作流调度时完成时间较短,且成本也较低的基于可靠性分解的云计算任务调度方法。
本发明解决上述技术问题所采用的技术方案为:一种基于可靠性分解的云计算任务调度方法,首先计算工作流中各任务的调度优先级,然后通过工作流中各任务的前驱后继关系以及数据关系,获得可靠性要求分配的评估指标,为每个任务选择恰当的可靠性要求,最后通过虚拟机加权得分为每个任务分配合适的虚拟机组,实现云计算任务调度。
所述的一种基于可靠性分解的云计算任务调度方法,包括以下步骤:
步骤1:获取云工作流的可靠性要求以及云工作流的任务集、任务间的依赖关系、任务相关参数、云计算环境下的虚拟机集和虚拟机相关参数,将云工作流的可靠性要求记为Rreq,将云工作流的任务集记为T,T={t1,t2,...,tn},其中n为云工作流中需要调度的任务数量,t1,t2,...,tn为云工作流的n个任务,ti表示云工作流中第i个任务,i=1,2,…,n,将i作为第i个任务的编号,将ti的前驱任务集记为V1(ti),ti的后继任务集记为V2(ti),ti需要被虚拟机处理的任务大小记为len(ti),将云计算环境下的虚拟机集记为V,V={v1,v2,...,vm},其中v1,v2,...,vm表示云计算环境下的m个虚拟机,m是云计算环境下的虚拟机的数量,vj表示第j个虚拟机,j=1,2,…,m,将j作为第j个虚拟机的编号,将vj的计算能力记为CU(vj),每个虚拟机的带宽均相等,将其记为bw,vj的单位时间成本记为price(vj);
步骤2:计算任务集T中每个任务的调度优先级,具体过程为:
S2.1、分别统计任务集T中每个任务的前驱任务集中的任务数,将ti的前驱任务集V1(ti)中的任务数记为in(ti),即in(ti)为ti的前驱任务数;
S2.2、设定优先级变量为k,先将k初始化为等于1,然后将任务集T作为任务集Tk;
S2.3、设定一个有序任务集L;
S2.4、从任务集Tk中任意选择一个前驱任务数等于0的任务,获取该任务的编号,将该任务的编号记为dk,设定的调度优先级为令
S2.5、将添加到有序任务集合L的第k个位置处,作为有序任务集合L中第k个任务;
S2.6、将从任务集TK中删除,得到更新后的任务集,将此时更新后的任务集记为任务集Tk+1;
S2.7、分别判断任务集Tk+1中每个任务的前驱任务集中是否包含有任务如果任务集Tk+1中某个任务的前驱任务集包含有任务则采用该任务的前驱任务数的当前值减1的差更新其前驱任务数,否则,该任务的前驱任务数保持其当前值不变;
S2.8、判断k的当前值是否等于n,如果不等于,则先采用k的当前值加1的和更新k的值,再返回步骤S2.4,否则直接进入步骤S2.9;
S2.9、将有序任务集合L中的第q个任务记为t(q),q为任务t(q)的编号,L={t(1),t(2),...,t(n)},q=1,2,…,n;
步骤3:计算有序任务集合L中每个任务的评估指标,具体过程为:
S3.1、设定t(q)的最早开始时间为est(t(q)),令est(t(1))=0;
S3.2、确定t(p)的最早开始时间est(t(p)),p=2,3,…,n,具体过程为:
S3.2.1、设定变量r1,将r1初始化为等于2;
S3.2.2、设定变量c1r1,将c1r1初始化为等于1;
S3.2.3、设定中间参数判断是否属于V1(t(r1)),如果属于,则令如果不属于,则令
S3.2.4、判断c1r1的当前值是否等于r1-1,如果不等于r1-1,则先采用c1r1的当前值加1的和更新c1r1的值,再返回步骤S3.2.3,如果等于,则直接进入步骤S3.2.5;
S3.2.5、采用公式(1)计算得到t(r1)的最早开始时间est(t(r1)):
est(t(r1))=max{h11,…,h1r1-1)} (1)
其中,max为取最大值符号;
S3.2.6、判断r1的当前值是否等于n,如果等于,则直接进入步骤S3.3,如果不等于,则采用r1的当前值加1的和更新r1的值后返回步骤S3.2.2;
S3.3、设定t(q)的最晚开始时间为lst(t(q)),令lst(t(n))=est(t(n));
S3.4、确定t(b)的最晚开始时间lst(t(b)),b=1,…,n-1,具体过程为:
S3.4.1、设定变量r2,将r2初始化为等于n-1;
S3.4.2、设定变量c2r2,将c2r2初始化为等于n;
S3.4.3、设定中间参数判断是否属于V2(t(r2)),如果属于,则令如果不属于,则令
S3.4.4、判断c2r2的当前值是否等于r2+1,如果不等于r2+1,则先采用c2r2的当前值减1的差更新c2r2的值,然后返回步骤S3.4.3,如果等于,则直接进入步骤S3.4.5;
S3.4.5、采用公式(2)计算得到t(r2)的最晚开始时间lst(t(r2)):
lst(t(r2))=min{h2r2+1,…,h2n} (2)
其中,min为取最小值符号;
S3.4.6、判断r2的当前值是否等于1,如果等于,则直接进入步骤S3.5,如果不等于,则先采用r2的当前值减1的差更新r2的值,然后返回步骤S3.4.2;
S3.5、将t(q)的评估指标记为s(t(q)),使用公式(3)计算得到t(q)的评估指标s(t(q)):
步骤4:根据工作流可靠性要求调度任务到虚拟机,得到云计算任务调度方案,具体过程中:
步骤S4.1、确定有序任务集合L中所有任务的可靠性要求的可取值的集合,具体过程为:
步骤S4.1.1、设定集合H;
步骤S4.1.2、设定中间变量u,将u初始化为0;
步骤S4.1.3、判断n是否为奇数,如果为奇数,那么先将添加到集合H中,并且用u的当前值加1的和更新u的值,然后直接进入步骤S4.1.4,如果不为奇数,直接进入步骤S4.1.4;
步骤S4.1.4、随机生成一个[Rreq,1]区间内的值,将其记为ru;
步骤S4.1.5、设定变量ru+1,采用公式(4)计算得到ru+1:
步骤S4.1.6、判断ru+1是否位于区间[Rreq,1],如果是,则先将ru、ru+1添加到集合H中,然后直接进入步骤S4.1.7,否则返回步骤S4.1.4;
步骤S4.1.7、判断u的当前值是否等于n-2,如果等于,将此时得到的集合H即为有序任务集合L中所有任务的可靠性要求的可取值的集合,集合H中的每个元素均作为有序任务集合L中所有任务的可靠性要求的可取值,然后直接进入步骤S4.2,否则,先采用u的当前值加2的和更新u的值,然后返回步骤S4.1.4;
步骤S4.2、对集合H中的n个元素按照从小到大顺序从第1个位置至第n个位置排序,将排在第g个位置的元素编号为g,g=1,2,3,…,n;
步骤S4.3、设定集合K,将s(t(q))添加到集合K中第q个位置,设定s(t(q))的编号为q,集合K包括s(t(1))至s(t(n))这n个元素;
步骤S4.4、对集合K的n个元素按照从小到大顺序从第1个位置至第n个位置排序,以更新集合K的n个元素的位置;
步骤S4.5、为每个任务分配具体的虚拟机组,具体过程如下:
步骤S4.5.1、设定迭代变量c,将c初始化为1,设定有序集合ω;
步骤S4.5.2、获取集合K中当前第c个位置的元素的编号,将其记为Ic;
步骤S4.5.3、采用公式(5)计算得到任务在虚拟机vj的执行时间
步骤S4.5.4、采用公式(6)计算得到任务在虚拟机vj的执行成本
步骤S4.5.5、采用公式(7)计算得到任务分配到虚拟机vj的权重值
其中,*为乘运算符号;
步骤S4.5.6、设定有序集合Fc,将作为有序集合Fc的一个元素添加到有序集合Fc中第j个位置,设定的编号为j,有序集合Fc包括至这m个元素;
步骤S4.5.7、对有序集合Fc的m个元素按照从大到小顺序从第1个位置至第m个位置排序,以更新有序集合Fc的m个元素的位置;
步骤S4.5.8、复制任务生成副本任务,并分配到虚拟机组,具体过程如下:
步骤S4.5.8.1、设定变量xc,将xc初始化为1,设定集合Gc和Ac;
步骤S4.5.8.2、获取Fc中当前第xc个位置的元素的编号,将其记为
步骤S4.5.8.3、复制任务生成任务的第xc个副本任务副本任务具有和任务相同的属性;
步骤S4.5.8.4、将任务的第xc个副本任务分配到虚拟机将作为集合Gc的第xc个元素添加到集合Gc中第xc个位置;
步骤S4.5.8.5、将作为集合Ac的第xc个元素添加到集合Ac的第xc个位置,其中e为自然常数;
步骤S4.5.8.6、采用公式(8)计算得到任务有xc个副本任务时的可靠性
其中,∏表示连乘符号;
步骤S4.5.8.7、获取集合H中编号为c的元素,将其记为 的可靠性要求值为
步骤S4.5.8.8、判断是否满足如果不满足,则先判断xc的当前值是否等于m,如果等于,则直接进入步骤S4.5.9,如果不等于,则先采用xc的当前值加1的和更新xc的值,再返回步骤S4.5.8.2,如果满足,则直接进入步骤S4.5.9;
步骤S4.5.9、将集合Gc作为一个子集放在有序集合ω中的第c个位置,设定编号为c;
步骤S4.5.10、判断c的当前值是否等于n,如果等于,则直接进入步骤S4.6,如果不等于,则先采用c的当前值加1的和更新c的值,然后返回步骤S4.5.2;
步骤S4.6、当前得到的有序集合ω包括n个子集G1至Gn,有序集合ω即为云计算任务调度方案,其中,有序集合ω中第ρ个子集Gρ代表任务t(ρ)被调度的虚拟机组,虚拟机组Gρ中每个元素分别表示被调度的虚拟机的编号,ρ=1,2,3,…,n。
所述的步骤S4.5.9与所述的S4.5.10之间还包括得到任务的资源使用执行时间传输时间以及实际执行开始时间的过程,该过程具体步骤为:
步骤A1、使用公式(9)计算得到任务资源使用
步骤A2、使用公式(10)计算得到任务的执行时间
步骤A3、采用公式(11)计算得到任务的传输时间
步骤A4、确定任务的实际执行开始时间具体过程如下:
步骤A4.1、判断c的当前值是否等于1,如果等于,则先令再直接跳转步骤S4.5.10,否则直接进入步骤A4.2;
步骤A4.2、设定变量εc,将εc初始化为等于1;
步骤A4.3、设定变量判断是否属于如果属于,则令如果不属于,则令为0;
步骤A4.4、判断εc的当前值是否等于Ic-1,如果不等于,则先采用εc的当前值加1的和更新εc的值,然后返回步骤A4.3,如果等于,则直接进入步骤A4.5;
步骤A4.5、采用公式(12)计算得到的实际执行开始时间
所述的步骤S4.6之后还存在得到工作流的完成时间X和资源使用Y的过程,具体为:
步骤S4.7、采用公式(13)计算得到工作流的完成时间X:
X=st(t(n))+Z(t(n)) (13)
步骤S4.8、采用公式(14)计算得到工作流的资源使用Y:
其中,∑累加符号。
与现有技术相比,本发明的优点在于通过工作流中各任务的前驱后继关系以及数据关系,获得选择可靠性要求的评估指标,为每个任务选择合适的可靠性要求,冗余时间更多的任务具有更高的可靠性,同时通过加权法为每个任务分配虚拟机组,实现云工作流调度优化,在面对较大规模的工作流时,通过分析工作流信息,为每个任务选择恰当的可靠性要求,加权法综合权衡虚拟机对完成时间和资源使用的影响,从而为每个任务分配合适的虚拟机组,节省计算资源开销,并降低工作流调度时完成时间,由此,本发明在面向较大规模的工作流调度时完成时间较短,且成本也较低。
附图说明
图1为本发明的基于可靠性分解的云计算任务调度方法的流程图;
图2为本发明的基于可靠性分解的云计算任务调度方法的调度任务到虚拟机组的流程图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例一:一种基于基于可靠性分解的云计算任务调度方法,首先计算工作流中各任务的调度优先级,然后通过工作流中各任务的前驱后继关系以及数据关系,获得可靠性要求分配的评估指标,为每个任务选择恰当的可靠性要求,最后通过虚拟机加权得分为每个任务分配合适的虚拟机组,实现云计算任务调度。
本实施例中,在面对较大规模的工作流时,通过分析工作流信息,为每个任务选择恰当的可靠性要求,加权法综合权衡虚拟机对完成时间和资源使用的影响,从而为每个任务分配合适的虚拟机组,节省计算资源开销,并降低工作流调度时完成时间。
实施例二:如图1和图2所示,一种基于可靠性分解的云计算任务调度方法,包括以下步骤:
步骤1:获取云工作流的可靠性要求以及云工作流的任务集、任务间的依赖关系、任务相关参数、云计算环境下的虚拟机集和虚拟机相关参数,将云工作流的可靠性要求记为Rreq,将云工作流的任务集记为T,T={t1,t2,...,tn},其中n为云工作流中需要调度的任务数量,t1,t2,...,tn为云工作流的n个任务,ti表示云工作流中第i个任务,i=1,2,…,n,将i作为第i个任务的编号,将ti的前驱任务集记为V1(ti),ti的后继任务集记为V2(ti),ti需要被虚拟机处理的任务大小记为len(ti),将云计算环境下的虚拟机集记为V,V={v1,v2,...,vm},其中v1,v2,...,vm表示云计算环境下的m个虚拟机,m是云计算环境下的虚拟机的数量,vj表示第j个虚拟机,j=1,2,…,m,将j作为第j个虚拟机的编号,将vj的计算能力记为CU(vj),每个虚拟机的带宽均相等,将其记为bw,vj的单位时间成本记为price(vj);
步骤2:计算任务集T中每个任务的调度优先级,具体过程为:
S2.1、分别统计任务集T中每个任务的前驱任务集中的任务数,将ti的前驱任务集V1(ti)中的任务数记为in(ti),即in(ti)为ti的前驱任务数;
S2.2、设定优先级变量为k,先将k初始化为等于1,然后将任务集T作为任务集Tk;
S2.3、设定一个有序任务集L;
S2.4、从任务集Tk中任意选择一个前驱任务数等于0的任务,获取该任务的编号,将该任务的编号记为dk,设定的调度优先级为令
S2.5、将添加到有序任务集合L的第k个位置处,作为有序任务集合L中第k个任务;
S2.6、将从任务集TK中删除,得到更新后的任务集,将此时更新后的任务集记为任务集Tk+1;
S2.7、分别判断任务集Tk+1中每个任务的前驱任务集中是否包含有任务如果任务集Tk+1中某个任务的前驱任务集包含有任务则采用该任务的前驱任务数的当前值减1的差更新其前驱任务数,否则,该任务的前驱任务数保持其当前值不变;
S2.8、判断k的当前值是否等于n,如果不等于,则先采用k的当前值加1的和更新k的值,再返回步骤S2.4,否则直接进入步骤S2.9;
S2.9、将有序任务集合L中的第q个任务记为t(q),q为任务t(q)的编号,L={t(1),t(2),...,t(n)},q=1,2,…,n;
步骤3:计算有序任务集合L中每个任务的评估指标,具体过程为:
S3.1、设定t(q)的最早开始时间为est(t(q)),令est(t(1))=0;
S3.2、确定t(p)的最早开始时间est(t(p)),p=2,3,…,n,具体过程为:
S3.2.1、设定变量r1,将r1初始化为等于2;
S3.2.2、设定变量c1r1,将c1r1初始化为等于1;
S3.2.3、设定中间参数判断是否属于V1(t(r1)),如果属于,则令如果不属于,则令
S3.2.4、判断c1r1的当前值是否等于r1-1,如果不等于r1-1,则先采用c1r1的当前值加1的和更新c1r1的值,再返回步骤S3.2.3,如果等于,则直接进入步骤S3.2.5;
S3.2.5、采用公式(1)计算得到t(r1)的最早开始时间est(t(r1)):
est(t(r1))=max{h11,…,h1r1-1)} (1)
其中,max为取最大值符号;
S3.2.6、判断r1的当前值是否等于n,如果等于,则直接进入步骤S3.3,如果不等于,则采用r1的当前值加1的和更新r1的值后返回步骤S3.2.2;
S3.3、设定t(q)的最晚开始时间为lst(t(q)),令lst(t(n))=est(t(n));
S3.4、确定t(b)的最晚开始时间lst(t(b)),b=1,…,n-1,具体过程为:
S3.4.1、设定变量r2,将r2初始化为等于n-1;
S3.4.2、设定变量c2r2,将c2r2初始化为等于n;
S3.4.3、设定中间参数判断是否属于V2(t(r2)),如果属于,则令如果不属于,则令
S3.4.4、判断c2r2的当前值是否等于r2+1,如果不等于r2+1,则先采用c2r2的当前值减1的差更新c2r2的值,然后返回步骤S3.4.3,如果等于,则直接进入步骤S3.4.5;
S3.4.5、采用公式(2)计算得到t(r2)的最晚开始时间lst(t(r2)):
lst(t(r2))=min{h2r2+1,…,h2n} (2)
其中,min为取最小值符号;
S3.4.6、判断r2的当前值是否等于1,如果等于,则直接进入步骤S3.5,如果不等于,则先采用r2的当前值减1的差更新r2的值,然后返回步骤S3.4.2;
S3.5、将t(q)的评估指标记为s(t(q)),使用公式(3)计算得到t(q)的评估指标s(t(q)):
步骤4:根据工作流可靠性要求调度任务到虚拟机,得到云计算任务调度方案,具体过程中:
步骤S4.1、确定有序任务集合L中所有任务的可靠性要求的可取值的集合,具体过程为:
步骤S4.1.1、设定集合H;
步骤S4.1.2、设定中间变量u,将u初始化为0;
步骤S4.1.3、判断n是否为奇数,如果为奇数,那么先将添加到集合H中,并且用u的当前值加1的和更新u的值,然后直接进入步骤S4.1.4,如果不为奇数,直接进入步骤S4.1.4;
步骤S4.1.4、随机生成一个[Rreq,1]区间内的值,将其记为ru;
步骤S4.1.5、设定变量ru+1,采用公式(4)计算得到ru+1:
步骤S4.1.6、判断ru+1是否位于区间[Rreq,1],如果是,则先将ru、ru+1添加到集合H中,然后直接进入步骤S4.1.7,否则返回步骤S4.1.4;
步骤S4.1.7、判断u的当前值是否等于n-2,如果等于,将此时得到的集合H即为有序任务集合L中所有任务的可靠性要求的可取值的集合,集合H中的每个元素均作为有序任务集合L中所有任务的可靠性要求的可取值,然后直接进入步骤S4.2,否则,先采用u的当前值加2的和更新u的值,然后返回步骤S4.1.4;
步骤S4.2、对集合H中的n个元素按照从小到大顺序从第1个位置至第n个位置排序,将排在第g个位置的元素编号为g,g=1,2,3,…,n;
步骤S4.3、设定集合K,将s(t(q))添加到集合K中第q个位置,设定s(t(q))的编号为q,集合K包括s(t(1))至s(t(n))这n个元素;
步骤S4.4、对集合K的n个元素按照从小到大顺序从第1个位置至第n个位置排序,以更新集合K的n个元素的位置;
步骤S4.5、为每个任务分配具体的虚拟机组,具体过程如下:
步骤S4.5.1、设定迭代变量c,将c初始化为1,设定有序集合ω;
步骤S4.5.2、获取集合K中当前第c个位置的元素的编号,将其记为Ic;
步骤S4.5.3、采用公式(5)计算得到任务在虚拟机vj的执行时间
步骤S4.5.4、采用公式(6)计算得到任务在虚拟机vj的执行成本
步骤S4.5.5、采用公式(7)计算得到任务分配到虚拟机vj的权重值
其中,*为乘运算符号;
步骤S4.5.6、设定有序集合Fc,将作为有序集合Fc的一个元素添加到有序集合Fc中第j个位置,设定的编号为j,有序集合Fc包括至这m个元素;
步骤S4.5.7、对有序集合Fc的m个元素按照从大到小顺序从第1个位置至第m个位置排序,以更新有序集合Fc的m个元素的位置;
步骤S4.5.8、复制任务生成副本任务,并分配到虚拟机组,具体过程如下:
步骤S4.5.8.1、设定变量xc,将xc初始化为1,设定集合Gc和Ac;
步骤S4.5.8.2、获取Fc中当前第xc个位置的元素的编号,将其记为
步骤S4.5.8.3、复制任务生成任务的第xc个副本任务副本任务具有和任务相同的属性;
步骤S4.5.8.4、将任务的第xc个副本任务分配到虚拟机将作为集合Gc的第xc个元素添加到集合Gc中第xc个位置;
步骤S4.5.8.5、将作为集合Ac的第xc个元素添加到集合Ac的第xc个位置,其中e为自然常数;
步骤S4.5.8.6、采用公式(8)计算得到任务有xc个副本任务时的可靠性
其中,∏表示连乘符号;
步骤S4.5.8.7、获取集合H中编号为c的元素,将其记为 的可靠性要求值为
步骤S4.5.8.8、判断是否满足如果不满足,则先判断xc的当前值是否等于m,如果等于,则直接进入步骤S4.5.9,如果不等于,则先采用xc的当前值加1的和更新xc的值,再返回步骤S4.5.8.2,如果满足,则直接进入步骤S4.5.9;
步骤S4.5.9、将集合Gc作为一个子集放在有序集合ω中的第c个位置,设定编号为c;
步骤S4.5.10、判断c的当前值是否等于n,如果等于,则直接进入步骤S4.6,如果不等于,则先采用c的当前值加1的和更新c的值,然后返回步骤S4.5.2;
步骤S4.6、当前得到的有序集合ω包括n个子集G1至Gn,有序集合ω即为云计算任务调度方案,其中,有序集合ω中第ρ个子集Gρ代表任务t(ρ)被调度的虚拟机组,虚拟机组Gρ中每个元素分别表示被调度的虚拟机的编号,ρ=1,2,3,…,n。
实施例三:本实施例与实施例二基本相同,区别在于:本实施例中,步骤S4.5.9与S4.5.10之间还包括得到任务的资源使用执行时间传输时间以及实际执行开始时间的过程,该过程具体步骤为:
步骤A1、使用公式(9)计算得到任务资源使用
步骤A2、使用公式(10)计算得到任务的执行时间
步骤A3、采用公式(11)计算得到任务的传输时间
步骤A4、确定任务的实际执行开始时间具体过程如下:
步骤A4.1、判断c的当前值是否等于1,如果等于,则先令再直接跳转步骤S4.5.10,否则直接进入步骤A4.2;
步骤A4.2、设定变量εc,将εc初始化为等于1;
步骤A4.3、设定变量判断是否属于如果属于,则令如果不属于,则令为0;
步骤A4.4、判断εc的当前值是否等于Ic-1,如果不等于,则先采用εc的当前值加1的和更新εc的值,然后返回步骤A4.3,如果等于,则直接进入步骤A4.5;
步骤A4.5、采用公式(12)计算得到的实际执行开始时间
本实施例中,步骤S4.6之后还存在得到工作流的完成时间X和资源使用Y的过程,具体为:
步骤S4.7、采用公式(13)计算得到工作流的完成时间X:
X=st(t(n))+Z(t(n)) (13)
步骤S4.8、采用公式(14)计算得到工作流的资源使用Y:
其中,∑累加符号。
本实施例中,通过计算任务的资源使用执行时间传输时间以及实际执行开始时间进而计算得到工作流的完成时间X和资源使用Y,从而调度人员能够直观的获取到本发明的基于可靠性分解的云计算任务调度方法的预期的完成时间与资源使用,便于后续工作安排。
为验证本发明的基于可靠性分解的云计算任务调度方法的性能,将本发明的基于可靠性分解的云计算任务调度方法(简称RDFTA)与文献《Quantitative fault-tolerancefor reliable workflows on heterogeneous IaaS clouds》中公开的QFEC和QFEC+,文献《Redundancy minimization and cost reduction for workflows with reliabilityrequirements in cloud-based services》中公开的C_GM这三种方法分别在可靠性要求Rreq取值为0.95、0.97和0.99这三种情况下进行对比。其中,任务数n为1000,n个任务的任务大小在(4,128)之间的均匀分布,随机生成有向无环图,根据有向无环图生成V1(ti)和V2(ti),虚拟机数m为20,m个虚拟机的计算能力在(1,3)之间均匀分布,每个虚拟机的带宽为1,m个虚拟机的单位时间成本在(1,60)之间均匀分布。本发明的基于可靠性分解的云计算任务调度方法与现有的三种方法在完成时间和资源使用方面的对比数据如表1所示:
表1
分析表1数据可知:本发明的基于可靠性分解的云计算任务调度方法在完成时间和资源使用方面都表现良好,综合性能优于现有的三种方法。
Claims (4)
1.一种基于可靠性分解的云计算任务调度方法,其特征在于首先计算工作流中各任务的调度优先级,然后通过工作流中各任务的前驱后继关系以及数据关系,获得可靠性要求分配的评估指标,为每个任务选择恰当的可靠性要求,最后通过虚拟机加权得分为每个任务分配合适的虚拟机组,实现云计算任务调度。
2.根据权利要求1所述的一种基于可靠性分解的云计算任务调度方法,其特征在于包括以下步骤:
步骤1:获取云工作流的可靠性要求以及云工作流的任务集、任务间的依赖关系、任务相关参数、云计算环境下的虚拟机集和虚拟机相关参数,将云工作流的可靠性要求记为Rreq,将云工作流的任务集记为T,T={t1,t2,...,tn},其中n为云工作流中需要调度的任务数量,t1,t2,...,tn为云工作流的n个任务,ti表示云工作流中第i个任务,i=1,2,…,n,将i作为第i个任务的编号,将ti的前驱任务集记为V1(ti),ti的后继任务集记为V2(ti),ti需要被虚拟机处理的任务大小记为len(ti),将云计算环境下的虚拟机集记为V,V={v1,v2,...,vm},其中v1,v2,...,vm表示云计算环境下的m个虚拟机,m是云计算环境下的虚拟机的数量,vj表示第j个虚拟机,j=1,2,…,m,将j作为第j个虚拟机的编号,将vj的计算能力记为CU(vj),每个虚拟机的带宽均相等,将其记为bw,vj的单位时间成本记为price(vj);
步骤2:计算任务集T中每个任务的调度优先级,具体过程为:
S2.1、分别统计任务集T中每个任务的前驱任务集中的任务数,将ti的前驱任务集V1(ti)中的任务数记为in(ti),即in(ti)为ti的前驱任务数;
S2.2、设定优先级变量为k,先将k初始化为等于1,然后将任务集T作为任务集Tk;
S2.3、设定一个有序任务集L;
S2.4、从任务集Tk中任意选择一个前驱任务数等于0的任务,获取该任务的编号,将该任务的编号记为dk,设定的调度优先级为令
S2.5、将添加到有序任务集合L的第k个位置处,作为有序任务集合L中第k个任务;
S2.6、将从任务集TK中删除,得到更新后的任务集,将此时更新后的任务集记为任务集Tk+1;
S2.7、分别判断任务集Tk+1中每个任务的前驱任务集中是否包含有任务如果任务集Tk+1中某个任务的前驱任务集包含有任务则采用该任务的前驱任务数的当前值减1的差更新其前驱任务数,否则,该任务的前驱任务数保持其当前值不变;
S2.8、判断k的当前值是否等于n,如果不等于,则先采用k的当前值加1的和更新k的值,再返回步骤S2.4,否则直接进入步骤S2.9;
S2.9、将有序任务集合L中的第q个任务记为t(q),q为任务t(q)的编号,L={t(1),t(2),...,t(n)},q=1,2,…,n;
步骤3:计算有序任务集合L中每个任务的评估指标,具体过程为:
S3.1、设定t(q)的最早开始时间为est(t(q)),令est(t(1))=0;
S3.2、确定t(p)的最早开始时间est(t(p)),p=2,3,…,n,具体过程为:
S3.2.1、设定变量r1,将r1初始化为等于2;
S3.2.2、设定变量c1r1,将c1r1初始化为等于1;
S3.2.3、设定中间参数判断是否属于V1(t(r1)),如果属于,则令如果不属于,则令
S3.2.4、判断c1r1的当前值是否等于r1-1,如果不等于r1-1,则先采用c1r1的当前值加1的和更新c1r1的值,再返回步骤S3.2.3,如果等于,则直接进入步骤S3.2.5;
S3.2.5、采用公式(1)计算得到t(r1)的最早开始时间est(t(r1)):
est(t(r1))=max{h11,…,h1r1-1)} (1)
其中,max为取最大值符号;
S3.2.6、判断r1的当前值是否等于n,如果等于,则直接进入步骤S3.3,如果不等于,则采用r1的当前值加1的和更新r1的值后返回步骤S3.2.2;
S3.3、设定t(q)的最晚开始时间为lst(t(q)),令lst(t(n))=est(t(n));
S3.4、确定t(b)的最晚开始时间lst(t(b)),b=1,…,n-1,具体过程为:
S3.4.1、设定变量r2,将r2初始化为等于n-1;
S3.4.2、设定变量c2r2,将c2r2初始化为等于n;
S3.4.3、设定中间参数判断是否属于V2(t(r2)),如果属于,则令如果不属于,则令
S3.4.4、判断c2r2的当前值是否等于r2+1,如果不等于r2+1,则先采用c2r2的当前值减1的差更新c2r2的值,然后返回步骤S3.4.3,如果等于,则直接进入步骤S3.4.5;
S3.4.5、采用公式(2)计算得到t(r2)的最晚开始时间lst(t(r2)):
lst(t(r2))=min{h2r2+1,…,h2n} (2)
其中,min为取最小值符号;
S3.4.6、判断r2的当前值是否等于1,如果等于,则直接进入步骤S3.5,如果不等于,则先采用r2的当前值减1的差更新r2的值,然后返回步骤S3.4.2;
S3.5、将t(q)的评估指标记为s(t(q)),使用公式(3)计算得到t(q)的评估指标s(t(q)):
步骤4:根据工作流可靠性要求调度任务到虚拟机,得到云计算任务调度方案,具体过程中:
步骤S4.1、确定有序任务集合L中所有任务的可靠性要求的可取值的集合,具体过程为:
步骤S4.1.1、设定集合H;
步骤S4.1.2、设定中间变量u,将u初始化为0;
步骤S4.1.3、判断n是否为奇数,如果为奇数,那么先将添加到集合H中,并且用u的当前值加1的和更新u的值,然后直接进入步骤S4.1.4,如果不为奇数,直接进入步骤S4.1.4;
步骤S4.1.4、随机生成一个[Rreq,1]区间内的值,将其记为ru;
步骤S4.1.5、设定变量ru+1,采用公式(4)计算得到ru+1:
步骤S4.1.6、判断ru+1是否位于区间[Rreq,1],如果是,则先将ru、ru+1添加到集合H中,然后直接进入步骤S4.1.7,否则返回步骤S4.1.4;
步骤S4.1.7、判断u的当前值是否等于n-2,如果等于,将此时得到的集合H即为有序任务集合L中所有任务的可靠性要求的可取值的集合,集合H中的每个元素均作为有序任务集合L中所有任务的可靠性要求的可取值,然后直接进入步骤S4.2,否则,先采用u的当前值加2的和更新u的值,然后返回步骤S4.1.4;
步骤S4.2、对集合H中的n个元素按照从小到大顺序从第1个位置至第n个位置排序,将排在第g个位置的元素编号为g,g=1,2,3,…,n;
步骤S4.3、设定集合K,将s(t(q))添加到集合K中第q个位置,设定s(t(q))的编号为q,集合K包括s(t(1))至s(t(n))这n个元素;
步骤S4.4、对集合K的n个元素按照从小到大顺序从第1个位置至第n个位置排序,以更新集合K的n个元素的位置;
步骤S4.5、为每个任务分配具体的虚拟机组,具体过程如下:
步骤S4.5.1、设定迭代变量c,将c初始化为1,设定有序集合ω;
步骤S4.5.2、获取集合K中当前第c个位置的元素的编号,将其记为Ic;
步骤S4.5.3、采用公式(5)计算得到任务在虚拟机vj的执行时间
步骤S4.5.4、采用公式(6)计算得到任务在虚拟机vj的执行成本
步骤S4.5.5、采用公式(7)计算得到任务分配到虚拟机vj的权重值
其中,*为乘运算符号;
步骤S4.5.6、设定有序集合Fc,将作为有序集合Fc的一个元素添加到有序集合Fc中第j个位置,设定的编号为j,有序集合Fc包括至这m个元素;
步骤S4.5.7、对有序集合Fc的m个元素按照从大到小顺序从第1个位置至第m个位置排序,以更新有序集合Fc的m个元素的位置;
步骤S4.5.8、复制任务生成副本任务,并分配到虚拟机组,具体过程如下:
步骤S4.5.8.1、设定变量xc,将xc初始化为1,设定集合Gc和Ac;
步骤S4.5.8.2、获取Fc中当前第xc个位置的元素的编号,将其记为
步骤S4.5.8.3、复制任务生成任务的第xc个副本任务副本任务具有和任务相同的属性;
步骤S4.5.8.4、将任务的第xc个副本任务分配到虚拟机将作为集合Gc的第xc个元素添加到集合Gc中第xc个位置;
步骤S4.5.8.5、将作为集合Ac的第xc个元素添加到集合Ac的第xc个位置,其中e为自然常数;
步骤S4.5.8.6、采用公式(8)计算得到任务有xc个副本任务时的可靠性
其中,∏表示连乘符号;
步骤S4.5.8.7、获取集合H中编号为c的元素,将其记为 的可靠性要求值为
步骤S4.5.8.8、判断是否满足如果不满足,则先判断xc的当前值是否等于m,如果等于,则直接进入步骤S4.5.9,如果不等于,则先采用xc的当前值加1的和更新xc的值,再返回步骤S4.5.8.2,如果满足,则直接进入步骤S4.5.9;
步骤S4.5.9、将集合Gc作为一个子集放在有序集合ω中的第c个位置,设定编号为c;
步骤S4.5.10、判断c的当前值是否等于n,如果等于,则直接进入步骤S4.6,如果不等于,则先采用c的当前值加1的和更新c的值,然后返回步骤S4.5.2;
步骤S4.6、当前得到的有序集合ω包括n个子集G1至Gn,有序集合ω即为云计算任务调度方案,其中,有序集合ω中第ρ个子集Gρ代表任务t(ρ)被调度的虚拟机组,虚拟机组Gρ中每个元素分别表示被调度的虚拟机的编号,ρ=1,2,3,…,n。
3.根据权利要求2所述的一种基于可靠性分解的云计算任务调度方法,其特征在于所述的步骤S4.5.9与所述的S4.5.10之间还包括得到任务的资源使用执行时间传输时间以及实际执行开始时间的过程,该过程具体步骤为:
步骤A1、使用公式(9)计算得到任务资源使用
步骤A2、使用公式(10)计算得到任务的执行时间
步骤A3、采用公式(11)计算得到任务的传输时间
步骤A4、确定任务的实际执行开始时间具体过程如下:
步骤A4.1、判断c的当前值是否等于1,如果等于,则先令再直接跳转步骤S4.5.10,否则直接进入步骤A4.2;
步骤A4.2、设定变量εc,将εc初始化为等于1;
步骤A4.3、设定变量判断是否属于如果属于,则令如果不属于,则令为0;
步骤A4.4、判断εc的当前值是否等于Ic-1,如果不等于,则先采用εc的当前值加1的和更新εc的值,然后返回步骤A4.3,如果等于,则直接进入步骤A4.5;
步骤A4.5、采用公式(12)计算得到的实际执行开始时间
4.根据权利要求2所述的一种基于可靠性分解的云计算任务调度方法,其特征在于所述的步骤S4.6之后还存在得到工作流的完成时间X和资源使用Y的过程,具体为:
步骤S4.7、采用公式(13)计算得到工作流的完成时间X:
X=st(t(n))+Z(t(n)) (13)
步骤S4.8、采用公式(14)计算得到工作流的资源使用Y:
其中,∑累加符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410284712.4A CN118193154A (zh) | 2024-03-13 | 2024-03-13 | 基于可靠性分解的云计算任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410284712.4A CN118193154A (zh) | 2024-03-13 | 2024-03-13 | 基于可靠性分解的云计算任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118193154A true CN118193154A (zh) | 2024-06-14 |
Family
ID=91397457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410284712.4A Pending CN118193154A (zh) | 2024-03-13 | 2024-03-13 | 基于可靠性分解的云计算任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118193154A (zh) |
-
2024
- 2024-03-13 CN CN202410284712.4A patent/CN118193154A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800936B (zh) | 基于树状搜寻的调度方法与使用该方法的电子装置 | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
US20030192028A1 (en) | System and method for determining software object migration sequences | |
CN111984426B (zh) | 任务调度方法、装置、电子设备及存储介质 | |
CN113467944B (zh) | 面向复杂软件系统的资源部署装置及方法 | |
CN115292016A (zh) | 基于人工智能的任务调度方法及相关设备 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
CN111400010B (zh) | 任务调度方法及装置 | |
US20070195356A1 (en) | Job preempt set generation for resource management | |
CN113807046A (zh) | 一种测试激励优化回归验证方法、系统及介质 | |
CN110825526B (zh) | 基于er关系的分布式调度方法及装置、设备以及存储介质 | |
CN113157421A (zh) | 一种基于用户作业流程的分布式集群资源调度方法 | |
CN116701001B (zh) | 目标任务分配方法、装置、电子设备及存储介质 | |
CN106897199A (zh) | 一种基于大数据处理框架共有特征的批作业执行时间预测方法 | |
CN111736959B (zh) | 异构集群下考虑数据亲和性的Spark任务调度方法 | |
CN110084507A (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN112016797B (zh) | 基于knn的资源配额调整方法、装置和电子设备 | |
CN117455222A (zh) | 基于分布式异构流水车间组调度问题的求解方法 | |
CN118193154A (zh) | 基于可靠性分解的云计算任务调度方法 | |
CN116909751A (zh) | 一种云计算系统中的资源分配方法 | |
CN111488313B (zh) | 基于Tribon的模型名称的批处理方法和系统 | |
CN111796934B (zh) | 任务下发方法、装置、存储介质和电子设备 | |
JPH1139340A (ja) | データベース検索システム、マルチプロセッサシステム及びデータベース検索方法 | |
CN101794417A (zh) | 基于序号的工作流调度和业务流程建模方法 | |
CN111274009A (zh) | 云环境下基于阶段划分的数据密集型工作流调度方法 |
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 |