CN108021435B - 一种基于截止时间的具有容错能力的云计算任务流调度方法 - Google Patents
一种基于截止时间的具有容错能力的云计算任务流调度方法 Download PDFInfo
- Publication number
- CN108021435B CN108021435B CN201711338393.7A CN201711338393A CN108021435B CN 108021435 B CN108021435 B CN 108021435B CN 201711338393 A CN201711338393 A CN 201711338393A CN 108021435 B CN108021435 B CN 108021435B
- Authority
- CN
- China
- Prior art keywords
- subtask
- subtasks
- task
- virtual machine
- deadline
- 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
Images
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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- 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
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
技术领域
本发明涉及一种基于截止时间的具有容错能力的云计算任务流调度方法,属于云计算技术领域。
背景技术
随着Internet网络技术的发展和计算机技术的不断提高,网络中传输和处理的数据的能力直线增长。人们希望获得一种直接、便捷的计算处理方式,不需要安装应用软件,只要连接互联网,就可以利用连接在网络中的空闲的计算机资源进行任务处理。
在此背景之下,云计算应运而生,所谓云计算,就是通过计算机网络去连接由大量服务器、存储设备集群构成的云计算平台,来获取远程客户端所需要的服务。而云计算服务商则是将一项复杂的运算任务分成若干个部分,通过分布在计算机网络中的计算机协同合作,最终将运算结果传输到客户端,从而实现个人数据在远程的计算资源集群的运算。
工作流调度是指将工作流中的任务映射到合适的资源并管理其运行。它不同于一般的任务调度,在调度时不仅要考虑为任务选择一个最佳资源,还要考虑各个任务之间的时序与因果的约束条件,以及协调各个任务的执行来获取最终的执行结果。
工作流调度问题是云计算中的一个重要问题,直接关系到云服务的稳定性、资源的使用效率、用户的满意程度和运营成本。
工作流调度问题可以简化为虚拟机的调度问题,来自终端的用户请求事先被分成多个子任务,这些子任务然后被分配到不同的虚拟机上。一个虚拟机从某种意义上讲可以被当成一个子任务和执行这个子任务所需要的物理资源(RAM,CPU,带宽等)的结合。所有的虚拟机最后都会被放置到特定的计算结点上执行子任务。而且,这些虚拟机可以在计算结点之间进行迁移从而能够提高计算资源的利用率。使用这种方式之后,数以千计的物理主机可以池化为巨大的资源池来服务用户的各种请求。
计算资源管理和虚拟机放置一直是云计算***中的重要问题。虚拟机放置问题是一个N维的装箱问题的变种,也是NP问题。这种问题无法在多项式级的时间内解决。研究者们在这个领域做出了巨大的努力。总的来说,当前的虚拟机放置算法大多专注于提高计算资源使用效率;使用数据管理策略或者缓存或者副本等来缩短数据访问延时;完善服务器负载均衡;减少能耗。
云用户可以部署他们自己的应用到云***上,因为受到单个计算结点的内存空间,CPU能力等因素限制,一个应用通常不能直接分配到一个计算结点上。这些应用通常被分割为多个子任务程序,而且子任务之间的代码长度和文件访问序列都可以不相同。应用的部署问题一直是云计算领域研究的重要课题。
发明内容
本发明所要解决的技术问题是提供一种基于截止时间的具有容错能力的云计算任务流调度方法,能够缩短整个应用的总体完成时间,提高云计算任务流的调度效率。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于截止时间的具有容错能力的云计算任务流调度方法,用于实现目标应用中各个子任务在云计算环境下各个虚拟机上的调度,包括如下步骤:
步骤A.根据各个子任务之间的数据依赖关系,针对所有子任务,构建有向无环图,并获得其中各条关键路径,以及确认位于关键路径上的各个节点,然后进入步骤B;
步骤B.以出口任务位于第一层作为依据,分别针对其余各个子任务,根据有向无环图,获得子任务到出口任务路径上的最大边数,作为该子任务所在的层数,进而获得各个子任务分别所在的层数,实现针对所有子任务的分层,然后进入步骤C;
步骤C.基于有向无环图,根据目标应用的截止时间,分别获得各层所对应的截止时间,然后进入步骤D;
步骤D.计算获得目标应用中所有子任务的最早开始时间,并进入步骤E;
步骤E.选择有向无环图中入度为零的各个节点分别所对应的子任务,构建待选子任务序列,并在有向无环图中删除该各个子任务分别所对应的节点,更新有向无环图,然后进入步骤F;
步骤F.根据所有子任务的最早开始时间,按各个子任务的开始时间顺序,以及关键路径上节点所对应子任务优先于非关键路径上节点所对应子任务原则,针对待选子任务序列中的各个子任务进行排序,更新待选子任务序列,然后进入步骤G;
步骤G.由待选子任务序列中依序选择第一个子任务,作为当前处理子任务,在待选子任务序列中删除该子任务,获得当前处理子任务分别对应云计算环境下各个虚拟机的实际完成时间,然后进入步骤H;
步骤H.在小于当前处理子任务所在分层截止时间的各个实际完成时间中,选择最小实际完成时间所对应的虚拟机,将当前处理子任务分配至该虚拟机上进行执行,然后进入步骤I;
步骤I.判断待选子任务序列是否为空,是则进入步骤J;否则返回步骤G;
步骤J.判断有向无环图中是否存在节点,是则返回步骤E;否则针对目标应用中各个子任务实现在云计算环境下各个虚拟机上的调度方法结束。
作为本发明的一种优选技术方案,所述步骤B中,以出口任务位于第一层作为依据,分别针对其余各个子任务,根据有向无环图,按如下公式:
获得子任务到出口任务路径上的最大边数,作为该子任务所在的层数,进而获得各个子任务分别所在的层数,实现针对所有子任务的分层;其中,N(i)表示第i个子任务到出口任务路径上的最大边数,succ(i)表示第i个子任务的后继子任务集合,N(j)表示第j个子任务到出口任务路径上的最大边数。
作为本发明的一种优选技术方案,所述步骤C包括如下步骤:
步骤C1.基于有向无环图,由入口任务开始,按预设规则顺序,依次针对各个子任务由1开始顺序编号,然后进入步骤C2;
步骤C2.计算获得所有子任务编号之和Lweight,并根据目标应用的截止时间deadline,按如下公式:
获得截止时间分配因子DF,然后进入步骤C3;
步骤C3.分别针对各层,获得层中各个子任务编号之和,作为该层的宽度,然后分别针对各层,根据如下公式:
deadlinel=DF×weightl
分别获得各层的截止时间deadlinel,其中,l={1、…、L},L表示总层数,deadlinel表示第l层的截止时间,weightl表示第l层的宽度,然后进入步骤D。
作为本发明的一种优选技术方案,所述步骤G中,针对当前处理子任务,根据如下公式:
实际完成时间=(当前处理子任务所对应指令数/虚拟机CPU频率)*(1-虚拟机故障率)+1.5*(当前处理子任务所对应指令数/虚拟机CPU频率)*虚拟机故障率
获得当前处理子任务分别对应云计算环境下各个虚拟机的实际完成时间。
本发明所述一种基于截止时间的具有容错能力的云计算任务流调度方法,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计基于截止时间的具有容错能力的云计算任务流调度方法,将截止时间按比例分配到每层上,为高优先级的任务选择虚拟机,最终选定的虚拟机要满足该任务的完成时间小于所在层的截止时间;不仅考虑到用户要求的截止时间,在任务执行过程中虚拟机出错的情况也同时被考虑进来,更加接近实际生产环境下的云计算场景,可以有效地发挥虚拟机的计算能力,缩短整个应用的完成时间。
附图说明
图1是本发明基于截止时间的具有容错能力的云计算任务流调度方法的流程图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
本发明设计了一种基于截止时间的具有容错能力的云计算任务流调度方法,用于实现目标应用中各个子任务在云计算环境下各个虚拟机上的调度,如图1所示,实际应用中,具体包括如下步骤:
步骤A.根据各个子任务之间的数据依赖关系,针对所有子任务,构建有向无环图,并获得其中各条关键路径,以及确认位于关键路径上的各个节点,然后进入步骤B。
步骤B.以出口任务位于第一层作为依据,分别针对其余各个子任务,根据有向无环图,按如下公式:
获得子任务到出口任务路径上的最大边数,作为该子任务所在的层数,进而获得各个子任务分别所在的层数,实现针对所有子任务的分层,然后进入步骤C。其中,N(i)表示第i个子任务到出口任务路径上的最大边数,succ(i)表示第i个子任务的后继子任务集合,N(j)表示第j个子任务到出口任务路径上的最大边数。
步骤C.基于有向无环图,根据目标应用的截止时间,分别获得各层所对应的截止时间,然后进入步骤D。
上述步骤C包括如下步骤:
步骤C1.基于有向无环图,由入口任务开始,按预设规则顺序,依次针对各个子任务由1开始顺序编号,然后进入步骤C2。
步骤C2.计算获得所有子任务编号之和Lweight,并根据目标应用的截止时间deadline,按如下公式:
获得截止时间分配因子DF,然后进入步骤C3。
步骤C3.分别针对各层,获得层中各个子任务编号之和,作为该层的宽度,然后分别针对各层,根据如下公式:
deadlinel=DF×weightl
分别获得各层的截止时间deadlinel,其中,l={1、...、L},L表示总层数,deadlinel表示第l层的截止时间,weightl表示第l层的宽度,然后进入步骤D。
步骤D.计算获得目标应用中所有子任务的最早开始时间,并进入步骤E。
步骤E.选择有向无环图中入度为零的各个节点分别所对应的子任务,构建待选子任务序列,并在有向无环图中删除该各个子任务分别所对应的节点,更新有向无环图,然后进入步骤F。
步骤F.根据所有子任务的最早开始时间,按各个子任务的开始时间顺序,以及关键路径上节点所对应子任务优先于非关键路径上节点所对应子任务原则,针对待选子任务序列中的各个子任务进行排序,更新待选子任务序列,然后进入步骤G。
步骤G.由待选子任务序列中依序选择第一个子任务,作为当前处理子任务,在待选子任务序列中删除该子任务,针对当前处理子任务,根据如下公式:
实际完成时间=(当前处理子任务所对应指令数/虚拟机CPU频率)*(1-虚拟机故障率)+1.5*(当前处理子任务所对应指令数/虚拟机CPU频率)*虚拟机故障率
获得当前处理子任务分别对应云计算环境下各个虚拟机的实际完成时间,然后进入步骤H。
步骤H.在小于当前处理子任务所在分层截止时间的各个实际完成时间中,选择最小实际完成时间所对应的虚拟机,将当前处理子任务分配至该虚拟机上进行执行,然后进入步骤I。
步骤I.判断待选子任务序列是否为空,是则进入步骤J;否则返回步骤G。
步骤J.判断有向无环图中是否存在节点,是则返回步骤E;否则针对目标应用中各个子任务实现在云计算环境下各个虚拟机上的调度方法结束。
上述技术方案所设计基于截止时间的具有容错能力的云计算任务流调度方法,将截止时间按比例分配到每层上,为高优先级的任务选择虚拟机,最终选定的虚拟机要满足该任务的完成时间小于所在层的截止时间;不仅考虑到用户要求的截止时间,在任务执行过程中虚拟机出错的情况也同时被考虑进来,更加接近实际生产环境下的云计算场景,可以有效地发挥虚拟机的计算能力,缩短整个应用的完成时间。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变动。
Claims (3)
1.一种基于截止时间的具有容错能力的云计算任务流调度方法,用于实现目标应用中各个子任务在云计算环境下各个虚拟机上的调度,其特征在于,包括如下步骤:
步骤A.根据各个子任务之间的数据依赖关系,针对所有子任务,构建有向无环图,并获得其中各条关键路径,以及确认位于关键路径上的各个节点,然后进入步骤B;
步骤B.以出口任务位于第一层作为依据,分别针对其余各个子任务,根据有向无环图,获得子任务到出口任务路径上的最大边数,作为该子任务所在的层数,进而获得各个子任务分别所在的层数,实现针对所有子任务的分层,然后进入步骤C;
步骤C.基于有向无环图,根据目标应用的截止时间,分别获得各层所对应的截止时间,然后进入步骤D;
上述步骤C包括如下步骤:
步骤C1.基于有向无环图,由入口任务开始,按预设规则顺序,依次针对各个子任务由1开始顺序编号,然后进入步骤C2;
步骤C2.计算获得所有子任务编号之和Lweight,并根据目标应用的截止时间deadline,按如下公式:
获得截止时间分配因子DF,然后进入步骤C3;
步骤C3.分别针对各层,获得层中各个子任务编号之和,作为该层的宽度,然后分别针对各层,根据如下公式:
deadlinel=DF×weightl
分别获得各层的截止时间deadlinel,其中,l∈{1、…、L},L表示总层数,deadlinel表示第l层的截止时间,weightl表示第l层的宽度,然后进入步骤D;
步骤D.计算获得目标应用中所有子任务的最早开始时间,并进入步骤E;
步骤E.选择有向无环图中入度为零的各个节点分别所对应的子任务,构建待选子任务序列,并在有向无环图中删除该各个子任务分别所对应的节点,更新有向无环图,然后进入步骤F;
步骤F.根据所有子任务的最早开始时间,按各个子任务的开始时间顺序,以及关键路径上节点所对应子任务优先于非关键路径上节点所对应子任务原则,针对待选子任务序列中的各个子任务进行排序,更新待选子任务序列,然后进入步骤G;
步骤G.由待选子任务序列中依序选择第一个子任务,作为当前处理子任务,在待选子任务序列中删除该子任务,获得当前处理子任务分别对应云计算环境下各个虚拟机的实际完成时间,然后进入步骤H;
步骤H.在小于当前处理子任务所在分层截止时间的各个实际完成时间中,选择最小实际完成时间所对应的虚拟机,将当前处理子任务分配至该虚拟机上进行执行,然后进入步骤I;
步骤I.判断待选子任务序列是否为空,是则进入步骤J;否则返回步骤G;
步骤J.判断有向无环图中是否存在节点,是则返回步骤E;否则针对目标应用中各个子任务实现在云计算环境下各个虚拟机上的调度方法结束。
3.根据权利要求1所述一种基于截止时间的具有容错能力的云计算任务流调度方法,其特征在于:所述步骤G中,针对当前处理子任务,根据如下公式:
实际完成时间=(当前处理子任务所对应指令数/虚拟机CPU频率)*(1-虚拟机故障率)+1.5*(当前处理子任务所对应指令数/虚拟机CPU频率)*虚拟机故障率
获得当前处理子任务分别对应云计算环境下各个虚拟机的实际完成时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338393.7A CN108021435B (zh) | 2017-12-14 | 2017-12-14 | 一种基于截止时间的具有容错能力的云计算任务流调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338393.7A CN108021435B (zh) | 2017-12-14 | 2017-12-14 | 一种基于截止时间的具有容错能力的云计算任务流调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021435A CN108021435A (zh) | 2018-05-11 |
CN108021435B true CN108021435B (zh) | 2022-01-04 |
Family
ID=62073519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711338393.7A Active CN108021435B (zh) | 2017-12-14 | 2017-12-14 | 一种基于截止时间的具有容错能力的云计算任务流调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021435B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104304B (zh) * | 2018-07-24 | 2021-06-01 | 国网山东省电力公司电力科学研究院 | 一种分布式实时故障处理方法 |
CN109062673B (zh) * | 2018-11-14 | 2019-04-05 | 中国人民解放军国防科技大学 | 动态容错弹性调度方法 |
CN109784663B (zh) * | 2018-12-20 | 2022-11-25 | 西北大学 | 一种工作流调度方法与装置 |
CN110300179B (zh) * | 2019-07-03 | 2022-03-25 | 郑州轻工业学院 | 一种混合云环境中安全性约束的任务调度方法和装置 |
CN110377411B (zh) * | 2019-07-22 | 2020-06-19 | 郑州轻工业学院 | 一种面向分布式云的工作流任务调度方法和*** |
CN110704180B (zh) * | 2019-09-10 | 2021-04-06 | 郑州轻工业学院 | 基于混合云的工作流调度方法 |
CN113722076B (zh) * | 2021-10-29 | 2022-03-29 | 华南理工大学 | 基于QoS和能耗协同优化的实时工作流调度方法 |
CN114489926B (zh) * | 2021-12-09 | 2024-06-07 | 西安邮电大学 | 一种基于截止期限制的云中微服务负载均衡方法 |
CN115840631B (zh) * | 2023-01-04 | 2023-05-16 | 中科金瑞(北京)大数据科技有限公司 | 基于raft的高可用分布式任务调度方法和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068863A (zh) * | 2015-07-16 | 2015-11-18 | 福州大学 | 多云环境下带截止日期约束工作流的基于代价驱动调度方法 |
CN105260818A (zh) * | 2015-09-17 | 2016-01-20 | 福州大学 | 混合云环境下带截止日期约束工作流组的在线优化调度方法 |
KR101643251B1 (ko) * | 2015-04-29 | 2016-07-28 | 한국과학기술원 | 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 |
CN107291536A (zh) * | 2017-05-23 | 2017-10-24 | 南京邮电大学 | 一种云计算环境下应用任务流调度方法 |
-
2017
- 2017-12-14 CN CN201711338393.7A patent/CN108021435B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101643251B1 (ko) * | 2015-04-29 | 2016-07-28 | 한국과학기술원 | 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 |
CN105068863A (zh) * | 2015-07-16 | 2015-11-18 | 福州大学 | 多云环境下带截止日期约束工作流的基于代价驱动调度方法 |
CN105260818A (zh) * | 2015-09-17 | 2016-01-20 | 福州大学 | 混合云环境下带截止日期约束工作流组的在线优化调度方法 |
CN107291536A (zh) * | 2017-05-23 | 2017-10-24 | 南京邮电大学 | 一种云计算环境下应用任务流调度方法 |
Non-Patent Citations (2)
Title |
---|
Cost-based scheduling of scientific workflow applications on utility grids;Jia Yu等;《 First International Conference on e-Science and Grid Computing (e-Science 05)》;20060110;第1-8页 * |
基于逆向分层的网格工作流调度算法;苑迎春等;《计算机学报》;20080229;第1-9页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108021435A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021435B (zh) | 一种基于截止时间的具有容错能力的云计算任务流调度方法 | |
Ge et al. | GA-based task scheduler for the cloud computing systems | |
Di et al. | Dynamic optimization of multiattribute resource allocation in self-organizing clouds | |
Masdari et al. | Efficient task and workflow scheduling in inter-cloud environments: challenges and opportunities | |
Garg et al. | Adaptive workflow scheduling in grid computing based on dynamic resource availability | |
CN107291536B (zh) | 一种云计算环境下应用任务流调度方法 | |
US8701112B2 (en) | Workload scheduling | |
Zhu et al. | A cost-effective scheduling algorithm for scientific workflows in clouds | |
Wu et al. | Optimizing the performance of big data workflows in multi-cloud environments under budget constraint | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及*** | |
Liu et al. | A survey on virtual machine scheduling in cloud computing | |
CN110321198B (zh) | 一种容器云平台计算资源与网络资源协同调度方法及*** | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
Gutierrez-Garcia et al. | Agent-based cloud bag-of-tasks execution | |
Qu et al. | Study QoS optimization and energy saving techniques in cloud, fog, edge, and IoT | |
Selvi et al. | Resource allocation issues and challenges in cloud computing | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、***、设备及介质 | |
de Souza Toniolli et al. | Resource allocation for multiple workflows in cloud-fog computing systems | |
US20120059938A1 (en) | Dimension-ordered application placement in a multiprocessor computer | |
Li et al. | Cost-efficient fault-tolerant workflow scheduling for deadline-constrained microservice-based applications in clouds | |
CN115408122B (zh) | 一种去中心化的分布式并行计算框架及计算方法 | |
Sherwani et al. | Libra: An economy driven job scheduling system for clusters | |
Cai et al. | Unequal‐interval based loosely coupled control method for auto‐scaling heterogeneous cloud resources for web applications | |
Hung et al. | A dynamic scheduling method for collaborated cloud with thick clients. | |
Vinothini et al. | Meta-heuristic firefly approach to multi-servers load balancing with independent and dependent server availability consideration |
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 |