CN105260818B - 混合云环境下带截止日期约束工作流组的在线优化调度方法 - Google Patents
混合云环境下带截止日期约束工作流组的在线优化调度方法 Download PDFInfo
- Publication number
- CN105260818B CN105260818B CN201510598480.0A CN201510598480A CN105260818B CN 105260818 B CN105260818 B CN 105260818B CN 201510598480 A CN201510598480 A CN 201510598480A CN 105260818 B CN105260818 B CN 105260818B
- Authority
- CN
- China
- Prior art keywords
- workflow
- subtask
- task
- cost
- time
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种混合云环境下带截止日期约束工作流组的在线优化调度方法,该方法根据实时到达工作流的时空相关性和私有云处理能力有限特性,将最小的最长负载量工作流优先处理,增加工作流完成率并降低数据传输成本;基于工作流自身特点,将截止日期按子任务权重等权划分容忍时间,以保证满足截止日期约束和服务质量需求;利用贪心选择策略在线寻找执行子任务代价增值最低的适合实例,进一步降低执行代价;根据混合云环境特点,设计一种工作流到执行实例之间的整体映射方案,保证在线满足工作流服务质量同时降低执行代价。该在线优化调度方法能够在满足现有真实工作流组截止日期约束前提下,有效提高工作流组的完成率,并大幅度减少其执行代价。
Description
技术领域
本发明涉及并行和分布式高性能计算的工作流组在线优化调度领域,特别是一种混合云环境下带截止日期约束工作流组的在线优化调度方法。
背景技术
通过虚拟化技术将计算和存储等资源有效整合,以按需付费方式提供给用户的云计算网络是在IT产业实现资源高效利用最具前景的有效手段。云计算技术已成为近年来研究的一个热点问题,许多信息技术公司,如IBM,Amazon,Google,Microsoft等,都先后提出各自云计算系统的基本框架并提供相应的云服务。企业往往拥有具备一定计算和存储能力的私有云中心,来处理它们的应用负载。然而某些特定时刻的高峰应用负载会超过企业自身的处理能力,使其力有未逮。由于峰值罕见且企业在大部分时间里的处理能力能够满足业务需求,所以虽然通过增加服务器资源可以解决峰值问题,但增加企业运营成本。为了避免增添额外服务器容量的高昂费用,同时能有效处理罕见的业务峰值需求,企业利用公有云资源来处理资源紧张的峰值问题,而利用本地基础设施来处理大部分的业务需求。这将导致私有云与公有云之间的应用负载发生转移,形成多云交互的混合云环境。工作负载共享能够扩大资源池容量,并提供更灵活和便宜的资源。任务调度本身就是一个NP完全问题,由于不同服务提供商之间存在许多差异(如要价机制,传输带宽,实例类型等),所以终端用户需要一种良好的调度策略来保证工作流组截止日期约束前提下,有效提高工作流组的完成率,并大幅度减少其执行代价,这是一个带约束的多目标在线优化问题。虽然许多相关研究工作已在传统分布式环境中展开,但涉及云环境的工作流组调度研究工作却相对较少,特别是在IaaS混合云环境中处理带截止日期约束的复杂工作流组调度问题。
工作流调度是一个传统的优化问题,它是在满足某些给定的约束前提下,将工作流中的每个任务按序分配到对应资源中,从而获得最佳的预期结果。早期的研究工作主要基于较为传统的多机处理时代,现有研究工作大多是针对共享社区环境(如社区网格)的工作流调度问题而展开。无论是多机处理时代,还是社区网格环境,涉及工作流的研究工作主要是满足用户服务质量需求或考虑最小化工作流执行时间,并未涉及基于工作流执行代价的研究工作。
传统分布式环境的工作流调度科研成果为云环境下工作流研究提供一定的借鉴作用。然而,它们并非完全适用于按区间要价并以利益为驱动的云计算环境。现有云环境下的研究工作主要是基于代价优化目标而展开。然而许多研究工作仅仅在单云环境下考虑带约束条件的工作流代价优化调度,或者在离线环境中分析工作流组基于代价驱动的完成率情况;或者未涉及不同带宽的混合云环境对工作流执行代价影响;或者在混合云环境下追求代价最优,而忽略其他约束条件,如截止日期;或者忽略任务间的复杂依赖关系而仅考虑混合云环境下批任务调度问题;或者在降低工作流代价过程中,没有考虑云环境按需付费,按区间要价的基本性质。因此,在混合云环境中,带截止日期约束的大规模工作流组基于执行代价驱动的完成率提高在线优化调度问题仍未得到妥善解决。
发明内容
有鉴于此,本发明的目的是提供一种混合云环境下带截止日期约束工作流组的在线优化调度方法,该方法基于工作流中子任务权重等权划分,任务间的数据传输时间和压缩数据传输路径,有效整合混合云虚拟化资源,在满足工作流组截止日期约束的前提下,优化资源利用率,有效提高工作流组的完成率,并大幅度降低工作流组的执行代价。
本发明采用以下方案实现:一种混合云环境下带截止日期约束工作流组的在线优化调度方法,包括以下步骤:
步骤S1:私有云调度器周期性扫描待执行队列,检测待执行队列中的工作流组;给所有工作流添加任务t伪入任务和t伪出任务和零数据依赖边;按最小最长负载量优先的排序原则,排列扫描的工作流组,并依次调度,选取一最小最长负载量工作流Wa优先处理;
步骤S2:确认并更新混合云环境所提供的有效计算服务类型;计算当前选中的所述工作流Wa中所有任务的EST(ti),LFT(ti)和Tol(ti);
步骤S3:判断所述工作流Wa是否能在私有云中被执行完成;若是,则在私有云中直接调度可调度的任务组,并进入步骤S5;若否,则判断待执行队列中是否存在可交换工作流,并进入步骤S4;
步骤S4:若所述待执行队列中不存在可交换工作流,则在公有云中直接调度可调度的任务组,进入步骤S5;若若所述待执行队列中存在可交换工作流,则与不可行工作流交换后,间接调度可调度的任务组到对应的公有云中,进入步骤S5;
步骤S5:更新任务组对应的所有未调度后继任务的ESTs和EFTs,更新资源状态;
步骤S6:判断工作流组是否都已调度完成,若是,则输出调度方案;若否,则返回所述步骤S2。
进一步地,所述步骤S1中可使用有向无环图Gi(Vi,Ei)表示所有工作流中第i个工作流Wi,其中Vi是工作流Wi中拥有n个有限任务节点的点集{t1,t2,...,tj,...,tn},对于每个节点tj,其自身都拥有一权重值Loadtj,则对于同一个执行实例,假设权重值越大的任务,其执行时间越长;其中Ei表示工作流Wi中相邻任务之间传输数据依赖关系的有限边集{e12,e13,...,eij,...,emn},每条存在依赖的数据边eij=(ti,tj),表示子任务ti和子任务tj之间存在传输数据依赖的关系,eij的大小则表示子任务ti到子任务tj的传输数据量,且数据依赖边eij中的子任务tj为子任务ti的直接后继节点,而子任务ti是子任务tj的直接先驱节点。
进一步地,所述最小最长负载量工作流Wa的最大路径负载量Load_longest_appa为从工作流的入节点出发,到工作流的出节点结束的所有路径中,路径上所有任务负载量总和最大的那条路径的总负载量,其具体定义如下:
其中Load_max_subs(i)表示以子任务ti为根的子树s(i)的最大路径负载量,即从根任务ti到子树s(i)所有出任务的路径中,路径所有任务量总和最大的负载量,其具体定义如下:
则当子树s(i)仅含有一个任务ti时,其最大路径负载量就是任务ti的负载量,否则,则是通过迭代的方式,寻找任务ti的所有子任务中,含有最大路径负载量的子任务tj。
进一步地,所述工作流Wa进入待执行队列后被私有云预处理过程中的最长容忍时间为Tol_Ta,在静态环境下,所述Tol_Ta等同于工作流对应的截止日期D(w),在动态环境下,如果工作流Wa无需等待而被立即执行,其最长容忍时间也与截止日期D(a)相等,否则,其具体定义如下:
其中Pro_Ta表示工作流Wa的被处理时刻,Arr_Ta表示工作流Wa的到达时刻;由于每个工作流都有相应的数据依赖量,当一公有云处理工作流Wa时,则把该工作流所需的数据量Data(wa)从私有云传输到对应的公有云中,从私有云传输数据量Data(wa)到公有云所需的传输时间为TTinter(wa,sp),故工作流最长容忍时间在动态调度环境下的定义如下:
其中传输时间TTinter(wa,sp)的定义如下:
其中Binter(spj)表示从私有云到公有云服务的传输带宽速度。
进一步地,所述工作流Wa的每个子任务ti未被实际调度前,利用迭代的方式分层求解每一层子任务对应的预计最早开始时间EST(ti),预计最迟结束时间LFT(ti)和容忍时间Tol(ti),对于工作流Wa的所有的入任务,其未调度前对应的容忍时间定义如下:
即通过子任务权重等权划分的方式来分配工作流最长容忍时间;
对于入所述所有任务,其预计最早开始时间EST(ti)和预计最迟结束时间LFT(ti)的分别定义如下:
EST(ti)=Pro_Ta,
LFT(ti)=EST(ti)+Tol(ti)。
进一步地,所述迭代的方式分层求解每一层子任务具体为:当求解完第一层的所有入任务容忍时间后,依次逐步求解后续层次的子任务容忍时间;
对于已求容忍时间任务ti的直接后继任务tj而言,以tj为根的子树最长容忍时间Tol_STs(j)计算如下:
Tol_STs(j)=Tol_STs(i)-Tol(ti)
对于入任务ti,它的子树最长容忍时间Tol_STs(i)与工作流的最长容忍时间Tol_Ta相等;且由于个别中间层任务tj有两个或两个以上直接先驱子任务ti,对于此类任务tj,如果其某个先驱子任务ti与其存在以下条件:
Tol_STs(j)>Tol_STs(i)-Tol(ti)
则实时迭代更新tj子树最长容忍时间Tol_STs(j):
Tol_STs(j)=Tol_STs(i)-Tol(ti)
计算第一层入子任务的对应容忍时间后和后续入任务对应的子树最长容忍时间,假设性迭代删除第一层子入任务,则第二层子任务变成新结构工作流的入子任务,其对应的子树最长容忍时间变成新结构工作流的最长容忍时间,依次迭代求解所有子任务的容忍时间。
进一步地,所述工作流Wa中的子任务ti分配到私有云中实例sprivate,j,k的私有代价weight(private,sprivate,j,k,ti)定义如下:
weight(private,sprivate,j,k,ti)=CPUsprivate,j,k·Texe(ti,sprivate,j,k)
其中CPUsprivate,j,k是实例sprivate,j,k所含的CPU数量,Texe(ti,sprivate,j,k)是子任务ti分配到私有云中实例sprivate,j,k中的时间;
所述工作流Wa在公有云中进行处理的其潜在执行代价potential_cost(a,p)定义如下:
potential_cost(a,p)=Costdata(a,p)+Costcom(a,p)
其中Costdata(a,p)表示工作流Wa从私有云调度到公有云的数据传输代价,Costcom(a,p)表示工作流Wa在公有云上进行处理的计算代价。
进一步地,所述工作流Wa在公有云中进行处理使,所述公有云中的执行实例按区间要价,其中一具体实例被选定为某个子任务对应的适合实例,则所述具体实例需在其对应的子任务ti的截止日期前完成,即预计最迟结束时间LFT(ti)前被执行完成;子任务ti对应的公有云中的适合实例为同时满足以下三种条件的具体实例sp,j,k:
条件1:所述具体实例sp,j,k对应于子任务ti的执行代价增值Cgrow(sp,j,k,ti)最低,sp,j,k的执行代价增值包括在该ti分配到sp,j,k上时所带来新的数据传输代价和实例计算代价;执行代价增值Cgrow(sp,j,k,ti)的定义如下:
Cgrow(sp,j,k,ti)=cpj·(T2-T1)+Cdata
其中T2是在执行ti之后具体实例sp,j,k所运行的总窗口时间,T1是具体实例sp,j,k在执行ti之前已运行的窗口时间,cpj是实例sp,j,k的区间执行代价;Cdata是ti被分配到sp,j,k上所产生的数据传输代价;
条件2:对于一子任务ti,如果存在两个或两个以上具体实例满足所述条件1,则选择产生数据传输代价最小的具体实例作为适合实际的具体实例sp,j,k;
条件3:对于某个子任务ti,如果存在两个或两个以上实例同时满足所述条件1和所述条件2,则选择剩余时间最多的具体实例作为适合具体实例sp,j,k;
所述的三个选择条件均以代价驱动贪心策略为出发点,使选择的适合实例在保证能够完成相应任务前提下,提高工作流组完成率,并降低执行代价。
进一步地,所述步骤S5中,进行实时更新调度子任务组时需要输入一组带容忍时间的子任务组,更新当前混合云环境中已被安排调度的所有未调度子任务和虚拟资源的状态,调度已预分配的子任务组到相应的适合实例上,并在对应的预计最迟结束时间前执行完成相应子任务组;具体为:首先利用贪心选择策略寻找执行子任务组代价增值最低的运行中可用实例;如果不存在代价增值最低的运行中可用实例,则启动一个新的最便宜计算服务实例,该实例能够在满足该子任务预计最迟结束时间前提下执行完成;当一组子任务被调度完成后,则该组任务对应的实际开始时间和实际完成时间将被确定,相应地,它将影响其所有未调度先驱任务的预计最迟结束时间LFT(ti)和预计最早开始时间EST(ti)。因此,与该组子任务相关的这些参数,在调度完成后要进行更新操作。
较佳的,所述利用贪心选择策略寻找执行子任务组代价增值最低时的运行中可用实例,所可用实例必须满足以下两个条件时:条件4:当该子任务被调度到该实例上执行时,子任务可以在其相应的预计最迟结束时间前完成;条件5:该实例的执行代价增值,包括实例执行代价和数据传输代价,必须低于初始化一个同样计算服务实例来调度该子任务的执行代价。
综上所述,本发明采用的优化调度方法具体包含以下设计过程:
1.在算法对到达工作流组的处理先后排序过程中,对于每个工作流,加入权值为0的伪出任务和伪入任务,并连接真实出(入)任务和伪出(入)任务之间的0数据传输有向边。引入工作流最长负载量的概念,根据实时到达工作流的时空相关性和私有云处理能力有限特性,拥有较小最长负载量的工作流在混合云环境中将花费更少的时间代价被处理完成,同时其执行代价不会有所提高,所以安排最小的最长负载量工作流优先处理。
2.在算法对工作流中子任务容忍时间分配过程中,不仅考虑不同云服务提供商之间的带宽差异,同时考虑任务在不同虚拟机上的执行时间和代价。根据不同工作流的到达时间和各自结构特点,结合各自不同任务间的负载量差异情况,将截止日期按子任务权重等权划分容忍时间,保证满足截止日期约束和服务质量需求。由于工作流含有多个任务层,每个任务层的任务数不确定,所以本发明用一种迭代的方式逐步分配容忍时间。
3.在算法任务初步实例选择方案的设计过程中,考虑到私有云和公有云之间的性质差异。对于私有云实例,不计算其产生的执行代价和带宽传输花费;对于公有云,执行实例按区间要价,不同的公有云之间的通信成本需要被考虑在内。本发明利用实例代价增值概念来确定某个子任务所对应的适合实例。对于不同情况下的运行实例,如已运行任务实例和刚刚启动实例,本发明进行区别对待,确保工作流在其截止日期约束前提下,减少整体执行代价并提高工作流组完成率。
4.在算法实时调度一组子任务过程中,需要及时进行状态更新回馈处理。在执行实例处理完成某些具体子任务后,实时更新该组子任务的所有未调度后继任务节点的待执行状态信息,如预计最早开始时间。更新策略实时调整工作流内部任务的状态,为未调度任务分配更加合适的实例,保证在线满足工作流服务质量同时降低执行代价。
因此,与现有技术相比,本发明具有以下突出优点:1、根据实时到达工作流的时空相关性和私有云处理能力有限特性,将最小负载量的工作流优先处理,增加工作流完成率并降低数据传输成本;2、基于工作流自身特点,将截止日期按子任务权重等权划分容忍时间,以保证满足截止日期约束和服务质量需求;3、利用贪心选择策略在线寻找执行子任务代价增值最低的适合实例,进一步降低执行代价;4、根据混合云环境特点,设计一种工作流到执行实例之间的整体映射方案,保证在线满足工作流服务质量同时降低执行代价;该在线优化调度方法能够在满足现有真实工作流组截止日期约束前提下,有效提高工作流组的完成率,并大幅度减少其执行代价。
附图说明
图1为本发明中混合云环境下带截止日期约束工作流组的在线优化调度的流程图。
图2为本发明中混合云环境下带截止日期约束工作流组的在线优化调度的框架流图。
图3(a)为本发明实施例中工作流引入‘伪出任务’和‘伪入任务’时工作流结构图。
图3(b)为本发明实施例中工作流引入‘伪出任务’和‘伪入任务’时,还加入零代价依赖边的工作流结构图。
图4为本发明实施例中工作流组排序分配图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本实施例提供一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其调度框图流图如图2所示,如图1所示,该方法包括以下步骤:
步骤S1:私有云调度器周期性扫描待执行队列,检测待执行队列中的工作流组;给所有工作流添加任务t伪入任务和t伪出任务和零数据依赖边;按最小最长负载量优先的排序原则,排列扫描的工作流组,并依次调度,选取一最小最长负载量工作流Wa优先处理;
步骤S2:确认并更新混合云环境所提供的有效计算服务类型;计算当前选中的所述工作流Wa中所有任务的EST(ti),LFT(ti)和Tol(ti);
步骤S3:判断所述工作流Wa是否能在私有云中被执行完成;若是,则在私有云中直接调度可调度的任务组,并进入步骤S5;若否,则判断待执行队列中是否存在可交换工作流,并进入步骤S4;
步骤S4:若所述待执行队列中不存在可交换工作流,则在公有云中直接调度可调度的任务组,进入步骤S5;若若所述待执行队列中存在可交换工作流,则与不可行工作流交换后,间接调度可调度的任务组到对应的公有云中,进入步骤S5;
步骤S5:更新任务组对应的所有未调度后继任务的ESTs和EFTs,更新资源状态;
步骤S6:判断工作流组是否都已调度完成,若是,则输出调度方案;若否,则返回所述步骤S2。
在本实施例中,所述步骤S1中,对到达工作流组先后排序操作具体为:使用有向无环图Gi(Vi,Ei)表示所有工作流中第i个工作流Wi,其中Vi是工作流Wi中拥有n个有限任务节点的点集{t1,t2,...,tj,...,tn},对于每个节点tj,其自身都拥有一权重值Loadtj,则对于同一个执行实例,假设权重值越大的任务,其执行时间越长;其中Ei表示工作流Wi中相邻任务之间传输数据依赖关系的有限边集{e12,e13,...,eij,...,emn},每条存在依赖的数据边eij=(ti,tj),表示子任务ti和子任务tj之间存在传输数据依赖的关系,eij的大小则表示子任务ti到子任务tj的传输数据量,且数据依赖边eij中的子任务tj为子任务ti的直接后继(子)节点,而子任务ti是子任务tj的直接先驱(父)节点。
在本实施例中,不同云服务提供商的执行实例具有不同的特点,因此,整个混合云系统是一个异构系统。为描述执行实例计算特性之间的差异,本实施例中=使用一个三维N×P×M执行时间矩阵ETM来表示工作流Wi的N个子任务运行在P个不同云服务提供商的M种差异实例上对应的执行时间,其中Texe(ti,spj)表示子任务i在服务提供商p的类型为j的实例上执行所需的时间。在调度某个工作流Wi过程中,一个子任务必须在其所有先驱子任务全部被执行完成,该子任务才能开始被执行。在某个给定的代表工作流的有向无环图中,把没有后继节点的任务称为‘出任务’,同样地,把没有先驱节点的任务称为‘入任务’。本发明设计的工作流排序策略仅考虑唯一一个‘出任务’和‘入任务’的工作流,所以在执行排序前,本发明预先分别加入一个零代价的伪出任务’节点和‘伪入任务’‘节点,然后把真实‘出任务’与‘伪出任务’通过零依赖边相连,同理,把‘伪入任务’与真实‘入任务’通过零依赖边相连,该变化如图3(a)和图3(b)所示。
在本实施例中,默认用户提交的每个工作流都直接首先到达私有云的待执行队列,如图4所示,私有云调度器根据实际情况对到达的工作流组进行调度。由于每个工作流的到达时间并不固定,所以私有云调度器每隔Nscan秒时间对待执行队列中的工作流组进行扫描并根据实际情况排序,得到最长负载量的工作流Wr,根据实时到达工作流的时空相关性和私有云处理能力有限特性,拥有较小最长负载量的工作流在混合云环境中将花费更少的时间代价被处理完成,即明按照最小最长负载量工作流优先的原则对待执行队列中的工作流组进行排序。另外,为了说明排序原则对混合云环境下带截止日期约束工作流组在线优化调度的有效性,引入了先到先服务,即先到达的工作流优先处理;最短截止日期先服务,即截止日期短的工作流优先服务。最小最长负载量工作流优先服务的排序原则具有更高的工作流完成率,同时具备较低的平均执行代价。
在本实施例中,工作流中子任务容忍时间分配:混合云环境下包含一个私有云private和多个不同的公有云服务提供商P={p,q,...,r},每个公有云服务提供商p向终端用户提供一组含有不同CPUs数量、内存容量的计算服务Sp={sp1,sp2,...,spm},当前主要的商业云服务提供商,通常的要价区间是按1小时收费,用户按1小时的区间按需付费。
在本实施例中,所述最小最长负载量工作流Wa的最大路径负载量Load_longest_appa为从工作流的入节点出发,到工作流的出节点结束的所有路径中,路径上所有任务负载量总和最大的那条路径的总负载量,其具体定义如下:
其中Load_max_subs(i)表示以子任务ti为根的子树s(i)的最大路径负载量,即从根任务ti到子树s(i)所有出任务的路径中,路径所有任务量总和最大的负载量,其具体定义如下:
则当子树s(i)仅含有一个任务ti时,其最大路径负载量就是任务ti的负载量,否则,则是通过迭代的方式,寻找任务ti的所有子任务中,含有最大路径负载量的子任务tj。
在本实施例中,所述工作流Wa进入待执行队列后被私有云预处理过程中的最长容忍时间为Tol_Ta,在静态环境下,所述Tol_Ta等同于工作流对应的截止日期D(w),在动态环境下,如果工作流Wa无需等待而被立即执行,其最长容忍时间也与截止日期D(a)相等,否则,其具体定义如下:
其中Pro_Ta表示工作流Wa的被处理时刻,Arr_Ta表示工作流Wa的到达时刻;由于每个工作流都有相应的数据依赖量,当一公有云服务提供商p处理工作流Wa时,则把该工作流所需的数据量Data(wa)从私有云传输到对应的公有云服务提供商p中,从私有云传输数据量Data(wa)到公有云服务提供商p所需的传输时间为TTinter(wa,sp),故工作流最长容忍时间在动态调度环境下的定义如下:
其中传输时间TTinter(wa,sp)的定义如下:
其中Binter(spj)表示从私有云到公有云服务提供商p的传输带宽速度。
进一步地,所述工作流Wa的每个子任务ti未被实际调度前,利用迭代的方式分层求解每一层子任务对应的预计最早开始时间EST(ti),预计最迟结束时间LFT(ti)和容忍时间Tol(ti),对于工作流Wa的所有的入任务,其未调度前对应的容忍时间定义如下:
即通过子任务权重等权划分的方式来分配工作流最长容忍时间;
对于入所述所有任务,其预计最早开始时间EST(ti)和预计最迟结束时间LFT(ti)的分别定义如下:
EST(ti)=Pro_Ta,
LFT(ti)=EST(ti)+Tol(ti)。
进一步地,所述迭代的方式分层求解每一层子任务具体为:当求解完第一层的所有入任务容忍时间后,依次逐步求解后续层次的子任务容忍时间;
对于已求容忍时间任务ti的直接后继任务tj而言,以tj为根的子树最长容忍时间Tol_STs(j)计算如下:
Tol_STs(j)=Tol_STs(i)-Tol(ti)
对于入任务ti,它的子树最长容忍时间Tol_STs(i)与工作流的最长容忍时间Tol_Ta相等;且由于个别中间层任务tj有两个或两个以上直接先驱子任务ti,对于此类任务tj,如果其某个先驱子任务ti与其存在以下条件:
Tol_STs(j)>Tol_STs(i)-Tol(ti)
则实时迭代更新tj子树最长容忍时间Tol_STs(j):
Tol_STs(j)=Tol_STs(i)-Tol(ti)
计算第一层入子任务的对应容忍时间后和后续入任务对应的子树最长容忍时间,假设性迭代删除第一层子入任务,则第二层子任务变成新结构工作流的入子任务,其对应的子树最长容忍时间变成新结构工作流的最长容忍时间,依次迭代求解所有子任务的容忍时间。
在本实施例中,对工作流进行处理时需要进行实例选择,具体为:在混合云环境下,实例预选择过程主要包括私有云内部和公有云外部。由于私有云资源有限,如果把所有待执行队列中的工作流组都安排到私有云中执行,则大部分工作流将无法再其对应的截止日期前完成。本实施例采用公私云混合实例选择的方式对工作流进行分配处理。对于私有云实例,不计算其产生的执行代价和带宽传输花费,一个分配到某个私有云实例sprivate,j,k的子任务ti,其在满足对应的子截止日期前提下,必须同时满足私有代价最低的限制,所述工作流Wa中的子任务ti分配到私有云中实例sprivate,j,k的私有代价weight(private,sprivate,j,k,ti)定义如下:
其中CPUsprivate,j,k是实例sprivate,j,k所含的CPU数量,Texe(ti,sprivate,j,k)是子任务ti分配到私有云中实例sprivate,j,k中的时间;
由于私有云资源有限,某个子任务在私有云的实例上执行完成后,该实例资源立刻得到回收。工作流不断地消耗私有云的有限资源,会造成一部分待执行队列中的工作流无法在截止日期前完成,本实施例将此类工作流称为不可行工作流,这些不可行工作流需要直接或间接被分配到公有云上执行。
在本实施例中,当待执行队列在线扫描出不可行工作流,有两种处理方案。第一种是直接调度到可在截止日期前完成该工作流且执行代价最低的公有云中。第二种是通过与待执行队列中的可交换工作流,间接调度到可在截止日期前完成该工作流且执行代价最低的公有云中。对于第二种方案,依次扫描待执行队列中未被调度的所有工作流,找到私有代价最低,优先级排在该不可行工作流之后,且潜在执行代价最高的工作流,与该不可行工作流进行交换后再调度到公有云中;
所述工作流Wa在公有云中进行处理的其潜在执行代价
potential_cost(a,p)定义如下:
potential_cost(a,p)=Costdata(a,p)+Costcom(a,p)
其中Costdata(a,p)表示工作流Wa从私有云调度到公有云的数据传输代价,Costcom(a,p)表示工作流Wa在公有云上进行处理的计算代价;
在本实施例中,对于公有云执行实例按区间要价,不同的公有云之间的通信成本需要被考虑在内。公有云服务提供商所提供的所有计算服务中的某个实例,或者是已有任务在其上执行的,或者是刚刚启动的,如果能被选定为某个子任务对应的适合实例,它能在该子任务的截止日期前完成,即预计最迟结束时间LFT(ti)前被执行完成。因此,所述工作流Wa在公有云中进行处理使,所述公有云中的执行实例按区间要价,其中一具体实例被选定为某个子任务对应的适合实例,则所述具体实例需在其对应的子任务ti的截止日期前完成,即预计最迟结束时间LFT(ti)前被执行完成;子任务ti对应的公有云中的适合实例为同时满足以下三种条件的具体实例sp,j,k:
条件1:所述具体实例sp,j,k对应于子任务ti的执行代价增值Cgrow(sp,j,k,ti)最低,sp,j,k的执行代价增值包括在该ti分配到sp,j,k上时所带来新的数据传输代价和实例计算代价;执行代价增值Cgrow(sp,j,k,ti)的定义如下:
Cgrow(sp,j,k,ti)=cpj·(T2-T1)+Cdata
其中T2是在执行ti之后具体实例sp,j,k所运行的总窗口时间,T1是具体实例sp,j,k在执行ti之前已运行的窗口时间,cpj是实例sp,j,k的区间执行代价;Cdata是ti被分配到sp,j,k上所产生的数据传输代价;
条件2:对于一子任务ti,如果存在两个或两个以上具体实例满足所述条件1,则选择产生数据传输代价最小的具体实例作为适合实际的具体实例sp,j,k;
条件3:对于某个子任务ti,如果存在两个或两个以上实例同时满足所述条件1和所述条件2,则选择剩余时间最多的具体实例作为适合具体实例sp,j,k;
所述的三个选择条件均以代价驱动贪心策略为出发点,使选择的适合实例在保证能够完成相应任务前提下,提高工作流组完成率,并降低执行代价。
在本实施例中,所述步骤S5中,进行实时更新调度子任务组时需要输入一组带容忍时间的子任务组,更新当前混合云环境中已被安排调度的所有未调度子任务和虚拟资源的状态,调度已预分配的子任务组到相应的适合实例上,并在对应的预计最迟结束时间前执行完成相应子任务组;具体为:首先利用贪心选择策略寻找执行子任务组代价增值最低的运行中‘可用’实例;该‘可用’实例必须满足以下两个条件时:条件4:当该子任务被调度到该实例上执行时,子任务可以在其相应的预计最迟结束时间前完成;条件5:该实例的执行代价增值,包括实例执行代价和数据传输代价,必须低于初始化一个同样计算服务实例来调度该子任务的执行代价。如果不存在代价增值最低的运行中‘可用’实例,则启动一个新的最便宜计算服务实例,该实例能够在满足该子任务预计最迟结束时间前提下执行完成;当一组子任务被调度完成后,则该组任务对应的实际开始时间和实际完成时间将被确定,相应地,它将影响其所有未调度先驱任务的预计最迟结束时间LFT(ti)和预计最早开始时间EST(ti)。因此,与该组子任务相关的这些参数,在调度完成后要进行更新操作。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (10)
1.一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:包括以下步骤:
步骤S1:私有云调度器周期性扫描待执行队列,检测待执行队列中的工作流组;给所有工作流添加任务t伪入任务和t伪出任务和零数据依赖边;按最小最长负载量优先的排序原则,排列扫描的工作流组,并依次调度,选取一最小最长负载量工作流Wa优先处理;
步骤S2:确认并更新混合云环境所提供的有效计算服务类型;计算当前选中的所述工作流Wa中所有任务的EST(ti),LFT(ti)和Tol(ti);
步骤S3:判断所述工作流Wa是否能在私有云中被执行完成;若是,则在私有云中直接调度可调度的任务组,并进入步骤S5;若否,则判断待执行队列中是否存在可交换工作流,并进入步骤S4;
步骤S4:若所述待执行队列中不存在可交换工作流,则在公有云中直接调度可调度的任务组,进入步骤S5;若若所述待执行队列中存在可交换工作流,则与不可行工作流交换后,间接调度可调度的任务组到对应的公有云中,进入步骤S5;
步骤S5:更新任务组对应的所有未调度后继任务的ESTs和EFTs,更新资源状态;其中,ESTs和EFTs分别表示未调度后续任务组的预计最早开始时间和预计最迟结束时间;
步骤S6:判断工作流组是否都已调度完成,若是,则输出调度方案;若否,则返回所述步骤S2。
2.根据权利要求1所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述步骤S1中可使用有向无环图Gi(Vi,Ei)表示所有工作流中第i个工作流Wi,其中Vi是工作流Wi中拥有n个有限任务节点的点集{t1,t2,...,tj,...,tn},对于每个节点tj,其自身都拥有一权重值Loadtj,则对于同一个执行实例,假设权重值越大的任务,其执行时间越长;其中Ei表示工作流Wi中相邻任务之间传输数据依赖关系的有限边集{e12,e13,...,eij,...,emn},每条存在依赖的数据边eij=(ti,tj),表示子任务ti和子任务tj之间存在传输数据依赖的关系,eij的大小则表示子任务ti到子任务tj的传输数据量,且数据依赖边eij中的子任务tj为子任务ti的直接后继节点,而子任务ti是子任务tj的直接先驱节点。
3.根据权利要求1所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述最小最长负载量工作流Wa的最大路径负载量Load_longest_appa为从工作流的入节点出发,到工作流的出节点结束的所有路径中,路径上所有任务负载量总和最大的那条路径的总负载量,其具体定义如下:
其中Load_max_subs(i)表示以子任务ti为根的子树s(i)的最大路径负载量,即从根任务ti到子树s(i)所有出任务的路径中,路径所有任务量总和最大的负载量,其具体定义如下:
则当子树s(i)仅含有一个任务ti时,其最大路径负载量就是任务ti的负载量,否则,则是通过迭代的方式,寻找任务ti的所有子任务中,含有最大路径负载量的子任务tj。
4.根据权利要求1所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述工作流Wa进入待执行队列后被私有云预处理过程中的最长容忍时间为Tol_Ta,在静态环境下,所述Tol_Ta等同于工作流对应的截止日期D(w),在动态环境下,如果工作流Wa无需等待而被立即执行,其最长容忍时间也与截止日期D(a)相等,否则,其具体定义如下:
其中Pro_Ta表示工作流Wa的被处理时刻,Arr_Ta表示工作流Wa的到达时刻,其中D(w)表示静态环境下的截止日期,D(a)表示动态环境下的截止日期;由于每个工作流都有相应的数据依赖量,当一公有云处理工作流Wa时,则把该工作流所需的数据量Data(wa)从私有云传输到对应的公有云中,从私有云传输数据量Data(wa)到公有云所需的传输时间为TTinter(wa,sp),故工作流最长容忍时间在动态调度环境下的定义如下:
其中传输时间TTinter(wa,sp)的定义如下:
其中Binter(sp)表示从私有云到公有云的传输带宽速度。
5.根据权利要求4所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述工作流Wa的每个子任务ti未被实际调度前,利用迭代的方式分层求解每一层子任务对应的预计最早开始时间EST(ti),预计最迟结束时间LFT(ti)和容忍时间Tol(ti),对于工作流Wa的所有的入任务,其未调度前对应的容忍时间定义如下:
即通过子任务权重等权划分的方式来分配工作流最长容忍时间;
对于入所述所有任务,其预计最早开始时间EST(ti)和预计最迟结束时间LFT(ti)的分别定义如下:
EST(ti)=Pro_Ta,
LFT(ti)=EST(ti)+Tol(ti)。
6.根据权利要求5所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述迭代的方式分层求解每一层子任务具体为:当求解完第一层的所有入任务容忍时间后,依次逐步求解后续层次的子任务容忍时间;
对于已求容忍时间任务ti的直接后继任务tj而言,以tj为根的子树最长容忍时间Tol_STs(j)计算如下:
Tol_STs(j)=Tol_STs(i)-Tol(ti)
对于入任务ti,它的子树最长容忍时间Tol_STs(i)与工作流的最长容忍时间Tol_Ta相等;且由于个别中间层任务tj有两个或两个以上直接先驱子任务ti,对于此类任务tj,如果其某个先驱子任务ti与其存在以下条件:
Tol_STs(j)>Tol_STs(i)-Tol(ti)
则实时迭代更新tj子树最长容忍时间Tol_STs(j):
Tol_STs(j)=Tol_STs(i)-Tol(ti)
计算第一层入子任务的对应容忍时间后和后续入任务对应的子树最长容忍时间,假设性迭代删除第一层子入任务,则第二层子任务变成新结构工作流的入子任务,其对应的子树最长容忍时间变成新结构工作流的最长容忍时间,依次迭代求解所有子任务的容忍时间。
7.根据权利要求1所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述工作流Wa中的子任务ti分配到私有云中实例sprivate,j,k的私有代价weight(private,sprivate,j,k,ti)定义如下:
其中CPUsprivate,j,k是实例sprivate,j,k所含的CPU数量,Texe(ti,sprivate,j,k)是子任务ti分配到私有云中实例sprivate,j,k中的时间;
所述工作流Wa在公有云中进行处理的其潜在执行代价potential_cost(a,p)定义如下:
potential_cost(a,p)=Costdata(a,p)+Costcom(a,p)
其中Costdata(a,p)表示工作流Wa从私有云调度到公有云的数据传输代价,Costcom(a,p)表示工作流Wa在公有云上进行处理的计算代价。
8.根据权利要求7所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述工作流Wa在公有云中进行处理使,所述公有云中的执行实例按区间要价,其中一具体实例被选定为某个子任务对应的适合实例,则所述具体实例需在其对应的子任务ti的截止日期前完成,即预计最迟结束时间LFT(ti)前被执行完成;子任务ti对应的公有云中的适合实例为同时满足以下三种条件的具体实例sp,j,k:
条件1:所述具体实例sp,j,k对应于子任务ti的执行代价增值Cgrow(sp,j,k,ti)最低,sp,j,k的执行代价增值包括在该ti分配到sp,j,k上时所带来新的数据传输代价和实例计算代价;执行代价增值Cgrow(sp,j,k,ti)的定义如下:
Cgrow(sp,j,k,ti)=cpj·(T2-T1)+Cdata
其中T2是在执行ti之后具体实例sp,j,k所运行的总窗口时间,T1是具体实例sp,j,k在执行ti之前已运行的窗口时间,cpj是实例sp,j,k的区间执行代价;Cdata是ti被分配到sp,j,k上所产生的数据传输代价;
条件2:对于一子任务ti,如果存在两个或两个以上具体实例满足所述条件1,则选择产生数据传输代价最小的具体实例作为适合实际的具体实例sp,j,k;
条件3:对于某个子任务ti,如果存在两个或两个以上实例同时满足所述条件1和所述条件2,则选择剩余时间最多的具体实例作为适合具体实例sp,j,k。
9.根据权利要求1所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述步骤S5中,进行实时更新调度子任务组时需输入一组带容忍时间的子任务组,更新当前混合云环境中已被安排调度的所有未调度子任务和虚拟资源的状态,调度已预分配的子任务组到相应的适合实例上,并在对应的预计最迟结束时间前执行完成相应子任务组,具体为:利用贪心选择策略寻找执行子任务组代价增值最低的运行中可用实例;如果不存在代价增值最低的运行中可用实例,则启动一个新的最便宜计算服务实例,所述最便宜计算服务实例能够在满足该子任务预计最迟结束时间前提下执行完成;当一组子任务被调度完成后,则该组任务对应的实际开始时间和实际完成时间则可确定,则所述实际开始时间和实际完成时间将改变其组任务中所有未调度先驱任务的预计最迟结束时间LFT(ti)和预计最早开始时间EST(ti);则将与该组子任务相关的参数在调度完成后进行更新操作。
10.根据权利要求9所述的一种混合云环境下带截止日期约束工作流组的在线优化调度方法,其特征在于:所述利用贪心选择策略寻找执行子任务组代价增值最低时的运行中可用实例,所可用实例必须满足以下两个条件时:条件4:当该子任务被调度到该实例上执行时,子任务可以在其相应的预计最迟结束时间前完成;条件5:该实例的执行代价增值,包括实例执行代价和数据传输代价,必须低于初始化一个同样计算服务实例来调度该子任务的执行代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510598480.0A CN105260818B (zh) | 2015-09-17 | 2015-09-17 | 混合云环境下带截止日期约束工作流组的在线优化调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510598480.0A CN105260818B (zh) | 2015-09-17 | 2015-09-17 | 混合云环境下带截止日期约束工作流组的在线优化调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260818A CN105260818A (zh) | 2016-01-20 |
CN105260818B true CN105260818B (zh) | 2018-12-25 |
Family
ID=55100497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510598480.0A Active CN105260818B (zh) | 2015-09-17 | 2015-09-17 | 混合云环境下带截止日期约束工作流组的在线优化调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260818B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107040575B (zh) * | 2016-11-30 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种在混合云上的应用分配方法及装置 |
CN109298917B (zh) * | 2017-07-25 | 2020-10-30 | 沈阳高精数控智能技术股份有限公司 | 一种适用于实时系统混合任务的自适应调度方法 |
CN108052378B (zh) * | 2017-10-31 | 2021-08-31 | 北京交通大学 | 一种面向复杂仿真工作流应用的利润敏感的任务调度方法 |
CN108021435B (zh) * | 2017-12-14 | 2022-01-04 | 南京邮电大学 | 一种基于截止时间的具有容错能力的云计算任务流调度方法 |
CN108108245B (zh) * | 2017-12-18 | 2020-11-20 | 天津科技大学 | 一种云平台宽节点科学工作流的混合型调度方法及系统 |
CN108154317B (zh) * | 2018-01-25 | 2021-09-21 | 福建师范大学 | 多云环境下基于实例自适应分配整合的工作流组调度方法 |
CN109710392B (zh) * | 2018-12-21 | 2023-08-01 | 万达信息股份有限公司 | 一种基于混合云的异构资源调度方法 |
CN110033076B (zh) * | 2019-04-19 | 2022-08-05 | 福州大学 | 混合云环境下面向代价优化的工作流数据布局方法 |
CN110287011A (zh) * | 2019-06-17 | 2019-09-27 | 南通大学 | 一种基于局部路径与截止期限分配的云工作流调度算法 |
CN112114960B (zh) * | 2020-08-06 | 2022-11-01 | 河南大学 | 一种适应互联网场景的遥感影像并行集群处理的调度策略 |
CN113064711B (zh) * | 2021-04-15 | 2022-09-20 | 北京理工大学 | 一种在线多工作流动态调度方法和系统 |
CN113064710B (zh) * | 2021-04-15 | 2022-09-09 | 北京理工大学 | 一种云工作流调度方法及系统 |
CN116308220B (zh) * | 2023-05-25 | 2023-08-15 | 北京联讯星烨科技有限公司 | 一种工作流数据的在线调试优化方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799957A (zh) * | 2012-05-30 | 2012-11-28 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN103473122A (zh) * | 2013-08-21 | 2013-12-25 | 上海交通大学 | 一种云计算环境中的工作流系统资源调度方法 |
CN103914754A (zh) * | 2014-03-12 | 2014-07-09 | 中国科学院信息工程研究所 | 一种工作流的任务调度方法、多工作流调度方法及其系统 |
CN104487948A (zh) * | 2012-09-07 | 2015-04-01 | 甲骨文国际公司 | 用于与云计算环境一起使用的工作流编排的系统及方法 |
-
2015
- 2015-09-17 CN CN201510598480.0A patent/CN105260818B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799957A (zh) * | 2012-05-30 | 2012-11-28 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN104487948A (zh) * | 2012-09-07 | 2015-04-01 | 甲骨文国际公司 | 用于与云计算环境一起使用的工作流编排的系统及方法 |
CN103473122A (zh) * | 2013-08-21 | 2013-12-25 | 上海交通大学 | 一种云计算环境中的工作流系统资源调度方法 |
CN103914754A (zh) * | 2014-03-12 | 2014-07-09 | 中国科学院信息工程研究所 | 一种工作流的任务调度方法、多工作流调度方法及其系统 |
Non-Patent Citations (1)
Title |
---|
《带准备时间和截止期约束的云服务工作流调度算法》;沈虹 等;《通信学报》;20150625;第36卷(第6期);2015125-1至2015125-10 * |
Also Published As
Publication number | Publication date |
---|---|
CN105260818A (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260818B (zh) | 混合云环境下带截止日期约束工作流组的在线优化调度方法 | |
CN105068863B (zh) | 多云环境下带截止日期约束工作流的基于代价驱动调度方法 | |
CN108009023B (zh) | 混合云中基于bp神经网络时间预测的任务调度方法 | |
CN104331321B (zh) | 基于禁忌搜索和负载均衡的云计算任务调度方法 | |
CN110737529A (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
CN101237469B (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN106991006B (zh) | 支持依赖和时间平衡的云工作流任务聚类方法 | |
CN103699446A (zh) | 基于量子粒子群优化算法的多目标工作流动态调度方法 | |
CN108182109A (zh) | 一种云环境下的工作流调度与数据分配方法 | |
CN106371924B (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
CN108154317A (zh) | 多云环境下基于实例自适应分配整合的工作流组调度方法 | |
Niu et al. | GMTA: A geo-aware multi-agent task allocation approach for scientific workflows in container-based cloud | |
CN103150148B (zh) | 一种基于任务树的大尺度遥感影像并行镶嵌方法 | |
CN104793993B (zh) | 基于Levy飞行的人工蜂群粒子群算法的云计算任务调度方法 | |
CN105912390A (zh) | 云计算环境下基于模板的任务调度策略 | |
CN110308967A (zh) | 一种基于混合云的工作流成本-延迟最优化任务分配方法 | |
Thaman et al. | Green cloud environment by using robust planning algorithm | |
Du et al. | Multi-objective scheduling of cloud manufacturing resources through the integration of Cat swarm optimization and Firefly algorithm. | |
CN109684088A (zh) | 云平台资源约束的遥感大数据快速处理任务调度方法 | |
CN105005503B (zh) | 基于元胞自动机的云计算负载均衡任务调度方法 | |
Ye et al. | SHWS: Stochastic hybrid workflows dynamic scheduling in cloud container services | |
Yu et al. | A self-organized approach for scheduling semiconductor manufacturing systems | |
Rodrigues et al. | Network-aware container scheduling in multi-tenant data center | |
Chen et al. | Research on workflow scheduling algorithms in the cloud | |
CN101996105A (zh) | 可重构计算平台上的静态软硬件任务划分与调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |