基于云计算的工作流双向调度方法

文档序号:8512847阅读:397来源:国知局
基于云计算的工作流双向调度方法
【技术领域】
[0001] 本发明涉及云计算的领域,具体地,涉及一种基于云计算的工作流双向调度方法。
【背景技术】
[0002] 工作流调度是一种多约束满足问题,例如对于工作流中的任务之间相互依赖关 系、任务与任务之间的传输时间、任务类型的约束满足。云资源提供商往往会基于租赁的 销售模式以及基于使用量和性能标准的计费模式对用户应用所提供的计算服务进行收费。 不同的调度算法直接关系到云计算的整体稳定性,并且在保证整个工作流按时完成的情况 下,尽可能为用户节省成本。从云服务供应商角度出发,既要保证云端服务质量(QoS),又要 考虑到负载均衡问题,以及利益最大化问题。因此,需要设计良好的调度算法,以实现云计 算资源更好地共享。另外,在调度过程中,往往需要考虑到用户偏好问题。
[0003] 工作流任务调度是一个NP-hard问题,目前大多数调度算法从云服务商角度出 发,最大化地使用云端的固定资源数量,从而产生最大效益,面临着把工作流中的任务理 想化成同一种类型任务、没有考虑到云端虚拟机按小时收费的策略、没有把云中资源想 象成同构资源、没有考虑到预算的限制以及未考虑到任务之间的通讯量等问题,容易造 成在实际执行过程中用户成本的增加。此外,现有技术认为云资源是单一化的,而这与现 实是不相符,因为在云端其资源总量、类别数量都比较多,不可能单一化;另外也有采用 deadline-assignment策略,将整个工作流的最终时间(deadline)约束到各个子任务中, 存在着资源利用率不高的问题;现有技术还研宄了关于云计算的资源动态分配与共享技 术,主要集中在无用户差别情况下的资源动态分配策略,但云计算最终对象是不同的用户, 而用户不同的行为习惯决定了不同的服务质量要求。此外,由于云计算环境下按小时收费 的策略,但是用户面临着如何减少因剩余时间(partial hour)统计不合理而额外花费的问 题。例如,用户的某任务总共需要调度执行1. 2小时,但云端服务提供商要按2小时收取费 用,额外的〇. 8小时的收费给用户造成了不少损失,如果云端避免这0. 8小时的使用,既可 以避免用户的额外损失,又可以实现云端服务提供商的自身利益的最大化。因此,需要设计 合理的调度算法。

【发明内容】

[0004] 本发明的目的是提供一种基于云计算的工作流双向调度方法,该基于云计算的工 作流双向调度方法克服了现有技术中的虚拟机资源利用效率不高、没有考虑到用户差别化 的问题,节约了用户成本,满足用户灵活调度的个性化需求。
[0005] 为了实现上述目的,本发明提供了一种基于云计算的工作流双向调度方法,该工 作流双向调度方法包括:
[0006] 步骤1,满足工作流在最终时间准时完成的情况下,采用backward算法从工作流 的多个任务节点V i的尾节点开始分配调度,得到经过backward算法之后的工作流;
[0007] 步骤2,在满足所述多个任务节点\的依赖关系和不超过所述工作流的最终时间 的情况下,根据所述多个任务节点Vi最早开始时间EST,采用forward算法从经过backward 算法之后的工作流的多个任务节点\的头节点开始对每个任务节点V 1进行向前调度。
[0008] 优选地,所述步骤1包括:
[0009] 步骤S101,计算得到所有任务节点\的多个工作区间,根据所述工作区间的最迟 结束时间LFT将多个所述工作区间从大到小进行排序,从所述任务节点\的尾节点开始依 次执行步骤S102 ;
[0010] 步骤S102,当所述任务节点\的所有直接后继节点所分配的虚拟机的类型相同于 所述任务节点\所映射的虚拟机的类型,且该虚拟机在所述任务节点V ^勺工作区间内空 闲,则将所述任务节点Vi分配到该虚拟机上,否则,执行步骤S103 ;
[0011] 步骤S103,求出任务节点Vi与所述任务节点V i的直接后继节点的传输时间,比较 所述任务节点\的多个直接后继节点的最迟结束时间和所述传输时间之和,得出所述和的 最小值所对应的直接后继节点;
[0012] 步骤S104,当所述和的最小值所对应的直接后继节点所分配的虚拟机的类型与所 述任务节点V i所映射的虚拟机的类型相同,且该虚拟机在所述任务节点V i的工作区间内空 闲,则将所述任务节点Vi分配到该虚拟机上,否则,执行步骤S105 ;
[0013] 步骤S105,当所述任务节点Vi所在类型的已经分配的虚拟机在所述任务节点^的 工作区间内空闲,则将所述任务节点V i分配到该虚拟机中,否则,执行步骤S106 ;
[0014] 步骤S106,重新租用所述任务节点Vi所在类型的虚拟机,则将所述任务节点V 配到所述虚拟机中。
[0015] 优选地,所述工作区间从所述任务节点\的最迟开始时间LST至传输到该任务节 点Vi的直接后继节点的完成时间之间的区间。
[0016] 优选地,在所述步骤S102和步骤S103中,当所述直接后继节点为所述任务节点Vi 的唯一直接后继节点,且所述直接后继节点所分配的虚拟机的类型相同于所述任务节点Vi 所映射的虚拟机的类型,则所述工作区间省去相邻节点的传输完成时间。
[0017] 优选地,所述步骤2包括,
[0018] 步骤S201,将经过backward算法之后的工作流中的头节点放入集合SET中;
[0019] 步骤S202,分别计算集合SET中的任务节点Vi在步骤1中所分配到的虚拟机以及 与所述虚拟机同类的虚拟机的多个空闲时间戳;
[0020] 步骤S203,根据所述多个空闲时间戳计算得到每个空闲时间所对应的以下因素: 最早开始时间影响因素 ESTF、浪费时间影响因素 WTF和额外租用的费用影响因素 ACF ;
[0021] 步骤S204,通过如下公式得到任务最优放置指数:
[0022] Index = ESTF X a+WTF X b+ACF X c,
[0023] 其中,a、b、c是权重,且a、b、c的范围都为[0,1];
[0024] 步骤S205,比较多个所述空闲时间戳所对应的任务最优放置指数的大小得到最小 的最优放置指数,将集合SET中的任务节点\放入所述最小的最优放置指数所对应的空闲 时间戳得到FeasibleSet集合;
[0025] 步骤S206,当所述任务节点Vi有直接后继节点时,将集合SET中的任务节点V 1替 换成所述任务节点\的直接后继节点,否则,返回执行步骤S202。
[0026] 优选地,在所述步骤S203中,计算最早开始时间影响因素 ESTF的方法包括:
[0027] 最早开始时间影响因素 ESTF等于实际开始时间AST与最早开始时间之差LST除 以最迟开始时间EST。
[0028] 优选地,在所述步骤S203中,计算浪费时间影响因素 WTF的方法包括:
[0029] 浪费时间影响因素 WTF等于在预设周期的时间内左
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1