CN106201701A - 一种带任务重复的工作流调度算法 - Google Patents

一种带任务重复的工作流调度算法 Download PDF

Info

Publication number
CN106201701A
CN106201701A CN201610569560.8A CN201610569560A CN106201701A CN 106201701 A CN106201701 A CN 106201701A CN 201610569560 A CN201610569560 A CN 201610569560A CN 106201701 A CN106201701 A CN 106201701A
Authority
CN
China
Prior art keywords
task
processor
deadline
queue
dag
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
Application number
CN201610569560.8A
Other languages
English (en)
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.)
Yangzhou University
Original Assignee
Yangzhou 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 Yangzhou University filed Critical Yangzhou University
Priority to CN201610569560.8A priority Critical patent/CN106201701A/zh
Publication of CN106201701A publication Critical patent/CN106201701A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

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

本发明涉及一种带任务重复的工作流调度算法。本发明根据用户提交的任务初始化DAG图,根据DAG图的优先级构建任务队列V,V={v1,v2,Λ,vn},计算任务队列V的首个任务vi在虚拟列表中每个处理器上的完成时间,比较查找任务vi的最小完成时间Tft(vi,Pk),构建任务队列A存储需要重复的任务,任务队列B存储已经重复过的任务,任务按照最早开始时间非递增存储,采用遗传算法迭代出最优解,将映射好的任务分配到相应的资源以获得最优调度方案。本发明克服了DAG图不具有明显的分层和清晰的优先级约束的缺陷。本发明由于在D‑IAHA和IAHA中,任务在交叉和变异阶段中的是否要选择变异的资源时考虑到了任务的出错概率,所以大大减少任务在处理器上执行时的出错次数。

Description

一种带任务重复的工作流调度算法
技术领域
本发明属于云计算中的任务调度领域,具体涉及一种带任务重复的工作流高度算法。
背景技术
异构分布式计算***是由大概数百万的异构计算节点组成;这些节点通过任意的网络体系结构互相连接,用于高吞吐的计算资源和虚拟组织的创建来满足广泛的应用领域的需求。
异构分布式***存在多种形式,云计算是其中的一个范例。随着科技的发展与进步,在以往的各种计算如并行计算、分布式计算、网格计算发展的基础上提出了云计算的概念。学术界及产业界均在积极探索云计算,全球正在步入云计算的时代。云计算以商业模式的形式展现,它通过云平台向用户展现效用计算的美好前景和一些能够吸引人的特性,比如将共享资源等作为互联网上按需形成的服务,按照使用次数及使用需求收费从而为用户提供即时、灵活、可扩展的服务。
云计算由许多的异构计算节点、虚拟化计算机和动态配置的软件服务组成。这些软件服务通过它们的可用性、性能、功能和服务质量(Quality of Service,QoS)的需求来竞争用户终端的应用程序。云计算可提供的服务一般划分为三类:基础设施即服务(Infrastructure as a Service,IaaS),平台即服务(Platform as a Service,PaaS),软件即服务(Software as a Service,SaaS)。这些服务为了满足不同消费群的需求提供不同的服务。尽管这些服务存在一些相似的功能(如计算功能,存储功能和网络功能等),但由于它们的非功能性特性不同而区别于彼此,这些功能特性我们称之为QoS参数,如:服务时间,服务开销,服务的有效性,服务的能量损耗,服务利用率等。
考虑云计算的特性,以有效的方式将任务请求映射到资源是IaaS层的主要过程。在此层中,它将虚拟机(Virtual Machines,Vms)作为调度单元从而将物理的异构资源分配给任务。每个虚拟机在云环境中都是具有计算和存储能力的一个抽象单元。因为资源的异构性和动态性,以及有不同特征和数量的任务,该任务调度问题被认为是一个NP完全问题。
因为一个好的调度方法可以大大提高云***的性能,且没有确切的方法在多项式时间内找到最优解,所以调度策略都必须依靠启发式算法来尽可能寻找解决问题的好方法。并且为了有效地将任务分配到云计算环境中的处理器上执行,工作流管理***要求详尽的调度策略来满足任务需求和任务间的优先级约束关系。综上所述,工作流调度在云计算中是一个重要的挑战。
在本发明作出之前,云计算中这些工作流调度是一个难点问题。这些问题的难点在于调度任务时需考虑许多的因素:1)各类的QoS标准2)具有异构和动态特性的弹性云服务3)服务的不同组合方法来满足任务执行4)大面积数据的传输等。
在云环境下运行的软件我们称之为应用程序。每个应用程序就是一个工作流,其由相互关联的任务组成。这些任务会被调度到云环境下的不同处理器中运行。现在存在许多的科学应用如生物信息学,化学和天文学等,这些应用包含了大量的任务且任务之间存在复杂的优先级约束关系。这些应用可以转换为DAG图(有向无环图),转换的DAG图是复杂的,不具有明显的分层和清晰的优先级约束,我们称此种DAG图为复杂的DAG图。
发明内容
本发明的目的就在于克服上述缺陷,研制一种带任务重复的工作流调度算法。
本发明的技术方案是:
一种带任务重复的工作流调度算法,其主要技术特征在于包括如下步骤:
(1)根据用户提交的任务初始化DAG图,用G=(V,E,[W],C)表示,其中,vi∈V表示DAG图中的第i个节点,E是DAG图中节点边的集合,eij∈E表示任务vi到任务vj的边,同时需注意的是任务vi必须在任务vj执行前执行完成;wik∈[W],[W]表示n×m阶任务在不同处理器上的执行时间矩阵,wik表示任务vi在处理器Pj上的执行时间;cij∈C表示vi到vj的通信开销,用边上的权值表示;
(2)根据DAG图的优先级构建任务队列V,V={v1,v2,Λ,vn};
(3)计算任务队列V的首个任务vi在虚拟列表中每个处理器上的完成时间:
(3a)计算任务vi在处理器Pk上的初始完成时间:
Tft(vi,Pk)=Tst(vi,Pk)+wik
其中,Tst(vi,Pk)为任务vi在处理器Pk上的开始时间,Tft(vi,Pk)为完成时间;
(3b)令Mj为任务vi所有任务中出度最大的父任务结点(若存在几个以上相同出度,则比较完成时间,Mj为完成时间最大的任务)。Mi为任务vi的最重要的直接父任务,在考虑重复任务后,计算任务vi在处理器Pk上的最终完成时间:
(i)若Mi和Mj均不在或均已调度到当前处理器Pk上,则返回Tft(vi,Pk)的值;
(ii)若处理器Pk上存在合适执行Mi或Mj的空闲时间隙,计算任务Mj在处理器Pk上的完成时间Tft(vj,Pk),计算任务Mi在处理器Pk上的完成时间Tft(vt,Pk):
①若Tft(vj,Pk)<Tst(vi,Pk),则在处理器Pk上重复任务Mj
②若Tft(vt,Pk)<Tst(vi,Pk),则在处理器Pk上重复任务Mi
③其他情况,则返回Tft(vi,Pk);
(iii)其他情况,则返回Tft(vi,Pk);
(4)比较查找任务vi的最小完成时间Tft(vi,Pk),若存在相同值,则将该任务调度到任务相对较少的处理器上;
(5)当任务队列为空时,构建任务队列A存储需要重复的任务,任务队列B存储已经重复过的任务,任务按照最早开始时间非递增存储;
(6)对任务队列B中的所有任务,若移除该任务对总完成时间无影响的话,则移除该任务并更新队列B;
(7)采用遗传算法迭代出最优解;
(8)将映射好的任务分配到相应的资源以获得最优调度方案。
本发明的优点和效果在于在D-IAHA和IAHA中,任务在交叉和变异阶段中的是否要选择变异的资源时考虑到了任务的出错概率,所以大大减少任务在处理器上执行时的出错次数。
附图说明
图1——本发明的实现流程示意图。
图2——本发明任务的NSL性能分析示意图。
图3——本发明任务的Efficiency性能分析示意图。
图4——本发明负载率分析示意图。
图5——本发明任务失败次数分析示意图。
具体实施方式
一、步骤描述
本发明是基于云计算的带任务重复的工作流任务调度算法。参照图1即本发明的实现流程示意图,则本发明的具体实施过程包括以下步骤:
步骤1.根据用户提交的任务初始化DAG图,用G=(V,E,[W],C)表示。其中,vi∈V表示DAG图中的第i个节点,E是DAG图中节点边的集合,eij∈E表示任务vi到任务vj的边,同时需注意的是任务vi必须在任务vj执行前执行完成;wik∈[W],[W]表示n×m阶任务在不同处理器上的执行时间矩阵,wik表示任务vi在处理器Pj上的执行时间;cij∈C表示vi到vj的通信开销,用边上的权值表示。
步骤2.根据DAG图的优先级构建任务队列V,V={v1,v2,Λ,vn}。
步骤3.计算任务队列V的首个任务vi在虚拟列表中每个处理器上的完成时间:
(3.1)计算任务vi在处理器Pk上的初始完成时间:
Tft(vi,Pk)=Tst(vi,Pk)+wik
其中,Tst(vi,Pk)为任务vi在每个处理器Pk上的开始时间,Tft(vi,Pk)为完成时间;
(3.2)令Mj为任务vi所有任务中出度最大的父任务结点(若存在几个以上相同出度,则比较完成时间,Mj为完成时间最大的任务)。Mi为任务vi的最重要的直接父任务,在考虑重复任务后,计算任务vi在处理器Pk上的最终完成时间:
(3.21)若Mi和Mj均不在或均已调度到当前处理器Pk上,则返回Tft(vi,Pk)的值;
(3.22)若处理器Pk上存在合适执行Mi或Mj的空闲时间隙,计算任务Mj在处理器Pk上的完成时间Tft(vj,Pk),计算任务Mi在处理器Pk上的完成时间Tft(vt,Pk):
①若Tft(vj,Pk)<Tst(vi,Pk),则在处理器Pk上重复任务Mj
②若Tft(vt,Pk)<Tst(vi,Pk),则在处理器Pk上重复任务Mi
③其他情况,则返回Tft(vi,Pk);
(3.23)其他情况,则返回Tft(vi,Pk)。
步骤4.比较查找任务vi的最小完成时间Tft(vi,Pk),若存在相同值,则将该任务调度到任务相对较少的处理器上。
步骤5.若不存在相同值且任务队列为空时,构建任务队列A存储需要重复的任务,任务队列B存储已经重复过的任务,任务按照最早开始时间非递增存储。
步骤6.对任务队列B中的所有任务,若移除该任务对总完成时间无影响的话,则删除冗余任务,更新任务队列。
步骤7.采用遗传算法迭代出最优解。
步骤8.将映射好的任务分配到相应的资源以获得最优调度方案。
二、仿真实验
1.实验参数设置
为了对D-IAHA算法的有效性进行测试,本文利用CloudSim平台将其与HEFT算法和IAHA算法进行比较。与HEFT进行比较是因为HEFT中也用到了在处理器空闲时间隙***任务的策略,与IAHA进行比较是因为D-IAHA是考虑了通信开销元素然后在IAHA的基础上进行了一定的改进。本算法所采用的CCR参数代表了通信运算比,在实验中CCR值发生变化,其计算公式如下:
C C R = C m C p
其中,Cm是平均通信开销;Cp是平均计算开销。
实验参数如表1所示:
表1 仿真参数
本实验采用的性能度量参数为NSL和Efficiency,其计算公式如下所示:
N S L = m a k e s p a n M S C
其中,makespan是总算法的完成时间;MSC是关键路径上的最大计算开销总和。
E f f i c i e n c y = S L U S L M × N u m × 100
其中,SLU是在单处理器***中的调度长度;SLM是在多处理器***中的调度长度;Num是处理器个数。
2.仿真结果
实验1 任务的NSL性能分析
图2是HEFT、IAHA、D-IAHA算法随CCR值的增大NSL值的变化情况。随着CCR值的增大,即任务逐渐向通信密集型进行转变,通信时间有所增长,HEFT和IAHA的总完成时间受到影响增大,则NSL值也随之增加;而D-IAHA由于采取重复任务的方法用计算代价换取通信代价,从而将任务开始时间提前,减少了通信时间并且总时间也不会有明显的增加,所以NSL值低于另两种算法。但若CCR变得越来越大,任务通信频繁,导致任务间关系变得复杂,那么如何选择重复任务就会有困难,总完成时间会有所反弹。
实验2 任务的Efficiency性能分析
图3是HEFT、IAHA、D-IAHA算法随CCR值的增大Efficiency值的变化情况。D-IAHA的Efficiency值较之其余两个算法都是较小的。由于此算法中设定的处理器个数是一定的,那么可以说明其调度长度较之其余两个算法都比较小,所以其性能提高较多。
实验3 负载率分析
图4是HEFT、IAHA、D-IAHA算法随任务个数的增多其负载率的变化情况。由于IAHA及D-IAHA中采用将任务分配到计算速度较快、性能较优的处理器上的方法,并且在交叉和变异的过程中考虑到资源负载这一概念,所以可以看出这两种算法的负载率小于HEFT;但由于D-IAHA采取了用计算代价换通信代价的方式来减少总完成时间,所以各节点上的负载率比IAHA相对高一点,但与其他算法相比还是降低了资源的负载率。
实验4 任务失败次数分析
图5是HEFT、IAHA、D-IAHA算法下任务在处理器上执行的失败次数变化情况。因为任务在处理器上执行存在一定的出错率,所以云计算***中有一定的容错机制。但如果能从根本上减少任务的出错次数就可以大大提高***的性能。D-IAHA及IAHA的出错次数小于HEFT,主要是由于在HEFT中未考虑到任务的出错概率;而在D-IAHA和IAHA中,任务在交叉和变异阶段中的是否要选择变异的资源时考虑到了任务的出错概率,所以大大减少任务在处理器上执行时的出错次数。

Claims (1)

1.一种带任务重复的工作流调度算法,其特征在于包括如下步骤:
(1)根据用户提交的任务初始化DAG图,用G=(V,E,[W],C)表示,其中vi∈V,表示DAG图中的第i个节点,E是DAG图中节点边的集合,eij∈E表示任务vi到任务vj的边,同时注意,任务vi必须在任务vj执行前执行完成;wik∈[W],[W]表示n×m阶任务在不同处理器上的执行时间矩阵,wik表示任务vi在处理器Pj上的执行时间;cij∈C表示vi到vj的通信开销,用边上的权值表示;
(2)根据DAG图的优先级构建任务队列V,V={v1,v2,Λ,vn};
(3)计算任务队列V的首个任务vi在虚拟列表中每个处理器上的完成时间:
(3a)计算任务vi在处理器Pk上的初始完成时间:
Tft(vi,Pk)=Tst(vi,Pk)+wik
其中,Tst(vi,Pk)为任务vi在处理器Pk上的开始时间,Tft(vi,Pk)为完成时间;
(3b)令Mj为任务vi所有任务中出度最大的父任务结点(若存在几个以上相同出度,则比较完成时间,Mj为完成时间最大的任务);Mi为任务vi的最重要的直接父任务,在考虑重复任务后,计算任务vi在处理器Pk上的最终完成时间:
(i)若Mi和Mj均不在或均已调度到当前处理器Pk上,则返回Tft(vi,Pk)的值;
(ii)若处理器Pk上存在合适执行Mi或Mj的空闲时间隙,计算任务Mj在处理器Pk上的完成时间Tft(vj,Pk),计算任务Mi在处理器Pk上的完成时间Tft(vt,Pk):
①若Tft(vj,Pk)<Tst(vi,Pk),则在处理器Pk上重复任务Mj
②若Tft(vt,Pk)<Tst(vi,Pk),则在处理器Pk上重复任务Mi
③其他情况,则返回Tft(vi,Pk);
(iii)其他情况,则返回Tft(vi,Pk);
(4)比较查找任务vi的最小完成时间Tft(vi,Pk),若存在相同值,则将该任务调度到任务相对较少的处理器上;
(5)若不存在相同值且任务队列为空时,构建任务队列A存储需要重复的任务,任务队列B存储已经重复过的任务,任务按照最早开始时间非递增存储;
(6)对任务队列B中的所有任务,若移除该任务对总完成时间无影响的话,则删除冗余任务,更新任务队列;
(7)采用遗传算法迭代出最优解;
(8)将映射好的任务分配到相应的资源以获得最优调度方案。
CN201610569560.8A 2016-07-14 2016-07-14 一种带任务重复的工作流调度算法 Pending CN106201701A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610569560.8A CN106201701A (zh) 2016-07-14 2016-07-14 一种带任务重复的工作流调度算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610569560.8A CN106201701A (zh) 2016-07-14 2016-07-14 一种带任务重复的工作流调度算法

Publications (1)

Publication Number Publication Date
CN106201701A true CN106201701A (zh) 2016-12-07

Family

ID=57494262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610569560.8A Pending CN106201701A (zh) 2016-07-14 2016-07-14 一种带任务重复的工作流调度算法

Country Status (1)

Country Link
CN (1) CN106201701A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107256458A (zh) * 2017-06-06 2017-10-17 华北电力大学(保定) 一种多处理器片上***的性能良品率优化方法和装置
CN107301500A (zh) * 2017-06-02 2017-10-27 北京工业大学 一种基于关键路径任务前瞻的工作流调度方法
CN109918182A (zh) * 2019-01-23 2019-06-21 中国人民解放军战略支援部队信息工程大学 虚拟化技术下的多gpu任务调度方法
CN110456737A (zh) * 2019-04-30 2019-11-15 北京云迹科技有限公司 用于机器人的任务自动部署方法及装置
CN110851263A (zh) * 2019-11-15 2020-02-28 西安石油大学 一种针对异构云数据中心的绿色云任务调度方法
CN112199177A (zh) * 2020-10-19 2021-01-08 上海交通大学 基于遗传算法和计算拓扑模型的ska任务调度***及方法
CN112492032A (zh) * 2020-11-30 2021-03-12 杭州电子科技大学 一种移动边缘环境下的工作流协作调度方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301500A (zh) * 2017-06-02 2017-10-27 北京工业大学 一种基于关键路径任务前瞻的工作流调度方法
CN107256458A (zh) * 2017-06-06 2017-10-17 华北电力大学(保定) 一种多处理器片上***的性能良品率优化方法和装置
CN109918182A (zh) * 2019-01-23 2019-06-21 中国人民解放军战略支援部队信息工程大学 虚拟化技术下的多gpu任务调度方法
CN110456737A (zh) * 2019-04-30 2019-11-15 北京云迹科技有限公司 用于机器人的任务自动部署方法及装置
CN110851263A (zh) * 2019-11-15 2020-02-28 西安石油大学 一种针对异构云数据中心的绿色云任务调度方法
CN112199177A (zh) * 2020-10-19 2021-01-08 上海交通大学 基于遗传算法和计算拓扑模型的ska任务调度***及方法
CN112199177B (zh) * 2020-10-19 2023-03-31 上海交通大学 基于遗传算法和计算拓扑模型的ska任务调度***及方法
CN112492032A (zh) * 2020-11-30 2021-03-12 杭州电子科技大学 一种移动边缘环境下的工作流协作调度方法

Similar Documents

Publication Publication Date Title
CN106201701A (zh) 一种带任务重复的工作流调度算法
Lin et al. Scheduling scientific workflows elastically for cloud computing
Blythe et al. Task scheduling strategies for workflow-based applications in grids
Ge et al. GA-based task scheduler for the cloud computing systems
CN102932422B (zh) 基于改进蚁群算法的云环境任务调度方法
Zhu et al. A cost-effective scheduling algorithm for scientific workflows in clouds
Amalarethinam et al. An Overview of the scheduling policies and algorithms in Grid Computing
CN111861412A (zh) 面向完成时间优化的科学工作流调度方法及***
Baraglia et al. A multi-criteria job scheduling framework for large computing farms
CN108737462A (zh) 一种基于图论的云计算数据中心任务调度方法
Wang et al. Scheduling online mixed-parallel workflows of rigid tasks in heterogeneous multi-cluster environments
CN107070965B (zh) 一种虚拟化容器资源下的多工作流资源供给方法
CN111309472A (zh) 一种基于虚拟机预部署的在线虚拟资源分配方法
Peng et al. A reinforcement learning-based mixed job scheduler scheme for cloud computing under SLA constraint
Qureshi et al. Grid resource allocation for real-time data-intensive tasks
CN106407007B (zh) 面向弹性分析流程的云资源配置优化方法
Stavrinides et al. Orchestrating bag-of-tasks applications with dynamically spawned tasks in a distributed environment
Lee et al. A hierarchical scheduling strategy for the composition services architecture based on cloud computing
Cui et al. Cloud workflow scheduling algorithm based on reinforcement learning
CN112306642A (zh) 一种基于稳定匹配博弈理论的工作流调度方法
Xu et al. Hybrid scheduling deadline-constrained multi-DAGs based on reverse HEFT
Singh et al. Market-inspired dynamic resource allocation in many-core high performance computing systems
Zhao et al. RAS: a task scheduling algorithm based on resource attribute selection in a task scheduling framework
Li et al. On scheduling of high-throughput scientific workflows under budget constraints in multi-cloud environments
Meddeber et al. Tasks assignment for Grid computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161207