CN109783189A - 一种静态工作流调度方法与装置 - Google Patents
一种静态工作流调度方法与装置 Download PDFInfo
- Publication number
- CN109783189A CN109783189A CN201811492446.5A CN201811492446A CN109783189A CN 109783189 A CN109783189 A CN 109783189A CN 201811492446 A CN201811492446 A CN 201811492446A CN 109783189 A CN109783189 A CN 109783189A
- Authority
- CN
- China
- Prior art keywords
- current layer
- module
- virtual machine
- budget
- total
- 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.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种静态工作流调度方法与装置。本发明根据工作流的结构进行层次的划分,对于每一层的工作流模块,基于预算考虑虚拟机的类型并分配虚拟机,然后针对已分配的虚拟机进行物理机的映射调度。解决了异构多云环境下工作流的性能瓶颈,改进了异构云环境下工作流吞吐量不足的缺陷。
Description
技术领域
本发明属于大数据与云计算领域,特别是针对多云环境下的静态工作流 调度方法与装置。
背景技术
当前,许多自然科学领域的应用正在以稳定的速率产生越来越多的数据, 对于这些大量数据的处理问题,云计算中的工作流技术常常是解决的基本方 法,然而要以及时有效地方案分析与处理如此大规模的数据仍然存在着挑战。 尤其是随着数据维度与规模的快速增长,传统的高性能计算HPC (High-Performance Computing)***由于其结构的复杂,已很难满足不同 程度的资源需求。
随着云计算的出现与日渐成熟,计算资源可以根据需求进行弹性分配, 用户只需要关心对应应用需要的资源量与该类型的资源价格即可,因此许多 应用工作流都迁移到了云环境中。当前的云服务模式主要有三种:基础设施 即服务(IaaS),软件及服务(SaaS),和平台即服务(PaaS)。由于IaaS的资源 部署灵活性,通常用来服务科学工作流。
但是,传统的云服务供应商并没有考虑到随着硬件设备的增加所带来的 资源使用异构性,这大大降低了工作流的运行效率,对于规模更大的工作流 结构,必须面临的一个问题就是在多云多数据中心中进行处理,而数据中心 的硬件异构特性与数据中心之间的数据传输情况都大大限制了整个工作流 的性能,对于科学计算领域的高吞吐量***来说,限制了整体的***性能。 另一方面,从云消费者的角度考虑,不同的运行实例需要不同的价格,因此, 如何在一定的预算约束下尽可能快的完成所需处理的数据也是需要考虑的问题之一,传统的方法不考虑预算的约束,常常为了最大化减小整体完成时 间而造成了更多的经济资源浪费。
现有的解决办法或者是增加运行实例的性能,随之产生更高的经济成本, 要么是降低运行实例的性能,随之影响整个***的工作效率。
发明内容
针对现有技术的缺陷或不足,本发明提供了一种静态工作流调度方法。
本发明提供的方法对多个云数据中心环境下的虚拟机分配与物理机选 择,方法包括:
步骤一,工作流分层
对工作流Gw(Vw,Ew)进行分层,同一层中的模块不存在依赖关系,Vw为模 块集合,Ew为所有模块依赖关系的集合;分层后第l层中所有模块工作量和 为CRl;l=1,2,3...L,L≥2,第l层的预算为CR为工作流 中所有模块的工作量和;
步骤二,虚拟机和物理机分配
对工作流逐层进行虚拟机和物理机分配:
(1)对当前层进行虚拟机分配包括:按照多个云中心的虚拟机类别性 能的最差级到最优级对当前层内的模块分配虚拟机类别,每分配一次,比较 一次当前层的总计算花费与当前层的预算大小,若当前层的总计算花费小于 当前层的预算,则继续对当前层内的模块分配新一级的虚拟机类别,若当前 层的总计算花费大于当前层的预算,则给当前层内的模块分配上一次分配的 虚拟机类别并完成分配,若当前层的总计算花费等于当前层的预算,则完成 分配;所述当前层的总计算花费为当前层内各模块利用各自当前的虚拟机类型完成计算所需花费之和;
(2)对当前层进行物理机选择包括:根据对当前层分配的虚拟机方案 将所有模块分配至相应的云数据中心的物理机中,根据多个云数据中心的带 宽性能的最差级到最优级对当前层选择带宽,每选择一次,比较当前层的总 花费与当前层的预算大小,若当前层的总花费小于当前层的预算,则继续对 当前层内的模块选择新一级的带宽;若当前层的总花费大于当前层的预算, 则给当前层内的模块选择上一次的带宽并完成选择,若当前层的总花费等于 当前层的预算,则完成选择;所述当前层的总花费为当前层中每个依赖关系利用当前所选择带宽传输数据所需的花费之和。
优选的,本发明所述多个云中心的虚拟机类别性能的最差级到最优级是 依次按照Disk、Memory、CPU的顺序进行排序分级,并且是同一参数比较 排序,同一参数值越大越性能优。
优选的,本发明所述多个云数据中心的带宽性能的最差级到最优级是按 照带宽数值大小进行排序分级。
优选的,对当前层进行虚拟机分配过程包括:
2.1对当前层的增加一个虚拟输出模块,该虚拟输出模块的工作量与传输 数据大小均为0;
2.2对当前层的自有模块均分配最差虚拟机类型的虚拟机实例,计算当前 层中任一个模块wi到虚拟输出模块的完成时间Ti,i大于等于1,Ti=Time+Tidt, Time为模块wi工作量与最差虚拟机类型的计算力的比值,Tidt为模块wi输入 数据传输的时间;当前层的所有模块中完成时间最长的模块为关键模块;
2.3对当前层中的模块进行优先级排序,其中关键模块优先级最高,其余 模块依次排序,其中工作量越大优先级越高;
2.4计算当前层所有模块利用最差虚拟机类型计算所需的总完成时间Tl并计算总计算花费Cl;
2.5若当前层的总计算花费Cl小于当前层的预算,则对关键模块进行虚 拟机类型升级,若升级后当前层的总计算花费小于当前层的预算,则根据当 前层中各模块工作量与各自当前的虚拟机类型的计算力的比值大小更新关 键模块,其中比值最大的模块为新的关键模块;接着对新的关键模块进行虚 拟机类型升级,接着再次比较升级后当前层的总计算花费与当前层的预算大 小,若升级后当前层的总计算花费仍然小于当前层的预算,继续更新关键模 块,直至当前层的总计算花费大于当前层给定的预算时,对当前关键模块进行降级虚拟机类型;完成虚拟机分配,或者直至当前层的总计算花费等于当 前层给定的预算时,完成虚拟机分配。
优选的,对当前层进行物理机选择过程包括:
2.6根据选定的虚拟机分配方案将所有模块分配至相应的云数据中心的 物理机中;
2.7计算当前层中每个依赖关系利用最差性能带宽传输数据所需的花费, 得到当前层的总花费;
2.8比较当前层的总花费与当前层的预算的大小,若当前层的总花费小 于当前层的预算,则对当前层选择新一级的带宽后继续比较两者的大小,若 当前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽 并完成选择,若当前层的总花费等于当前层的预算,则完成选择。
优选的,本发明在物理机选择过程中,在云数据中心资源满足的情况下, 将有依赖关系的模块放至同一个云中。
一些实施方案中,步骤2.5中,若虚拟机类型升级至最高级,当前层的 总计算花费仍小于当前层给定的预算时,对当前非关键模块进行虚拟机类型 升级,所述当前非关键模块首次选择当前关键模块的下一级模块,升级后若 当前层的总计算花费小于当前层的预算,则对于该当前非关键模块继续进行 虚拟机类型升级,比较升级后当前层的总计算花费与当前层给定的预算大小, 若当前层的总计算花费仍然小于当前层的预算,继续进行升级、比较,直至 当前层的总计算花费等于或大于当前层给定的预算。
一些实施方案中,步骤2.8中,若花费在用最差带宽进行传输时都超过 预算,则在步骤2.5所得结果的基础上对非关键模块进行优先虚拟机类型降 级,首先降级非关键模块中优先级最低模块的虚拟机类型并及时更新模块优 先级,直至降到虚拟机类型最差级或满足预算要求为止,接着执行步骤2.8。
优选的,本发明的方法包括:
步骤一,工作流分层
对工作流Gw(Vw,Ew)进行分层,同一层中的模块不存在依赖关系,Vw为模 块集合,Ew为所有模块依赖关系的集合;分层后第l层中所有模块工作量和 为CRl;l=1,2,3...L,L≥2,第l层的预算为CR为工作流 中所有模块的工作量和;
步骤二,虚拟机类型排序
对多云数据中心的虚拟机类型按照CPU、Memory和Disk的优先级和取 值大小进行排序;
步骤三,分配虚拟机和物理机
对工作流逐层进行虚拟机和物理机分配:
3.1对当前层的增加一个虚拟输出模块,该虚拟输出模块的工作量与传输 数据大小均为0;
3.2对当前层的自有模块均分配最差虚拟机类型的虚拟机实例,计算当前 层中任一个模块wi到虚拟输出模块的完成时间Ti,i大于等于1,Ti=Time+Tidt, Time为模块wi工作量与最差虚拟机类型的计算力的比值,Tidt为模块wi输入 数据传输的时间;当前层的所有模块中完成时间最长的模块为关键模块;
3.3对当前层中的模块进行优先级排序,其中关键模块优先级最高,其余 模块依次排序,其中工作量越大优先级越高;
3.4计算当前层所有模块利用最差虚拟机类型计算所需的总完成时间Tl和总计算花费Cl;
3.5若当前层的总计算花费Cl小于当前层的预算,则对关键模块进行虚 拟机类型升级,若升级后当前层的总计算花费小于当前层的预算,则根据当 前层中各模块工作量与各自当前的虚拟机类型的计算力的比值大小更新关 键模块,其中比值最大的模块为新的关键模块;接着对新的关键模块进行虚 拟机类型升级,接着再次比较升级后当前层的总计算花费与当前层的预算大 小,若升级后当前层的总计算花费仍然小于当前层的预算,继续更新关键模 块,直至当前层的总计算花费大于当前层给定的预算时,对当前关键模块进行降级虚拟机类型;完成虚拟机分配,或者直至当前层的总计算花费等于当 前层给定的预算时,完成虚拟机分配;
3.6根据步骤3.5选定的虚拟机分配方案将所有模块分配至相应的云数 据中心的物理机中;在云数据中心资源满足的情况下,尽量将有依赖关系的 模块放至同一个云中;
3.7对多个云数据中心的可用带宽进行性能排序;为当前层的所有模块 间的数据传输安排最差带宽;
3.8计算当前层中每个依赖关系利用最差带宽传输数据所需的花费,得到 当前层的总花费;
3.9比较当前层的总花费与当前层的预算的大小,若当前层的总花费小于 当前层的预算,则对当前层选择新一级的带宽后继续比较两者的大小,若当 前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽并 完成选择,若当前层的总花费等于当前层的预算,则完成选择。
本发明还提供了一种静态工作流调度装置,所提供的装置包括:
对工作流Gw(Vw,Ew)进行分层,同一层中的模块不存在 工作流分层模块, 依赖关系,Vw为模块集合,Ew为所有模块依赖关系的集合;分层后第l层中 所有模块工作量和为CRl;l=1,2,3...L,L≥2,第l层的预算为 CR为工作流中所有模块的工作量和;
虚拟机和物理机分配模块,用于对对工作流逐层进行虚拟机和物理机分 配:
对当前层进行虚拟机分配过程中,按照多个云中心的虚拟机类别性能的 最差级到最优级对当前层内的模块分配虚拟机类别,每分配一次,比较一次 当前层的总计算花费与当前层的预算大小,若当前层的总计算花费小于当前 层的预算,则继续对当前层内的模块分配新一级的虚拟机类别,若当前层的 总计算花费大于当前层的预算,则给当前层内的模块分配上一次分配的虚拟 机类别并完成分配,若当前层的总计算花费等于当前层的预算,则完成分配; 所述当前层的总计算花费为当前层内各模块利用各自当前的虚拟机类型完 成计算所需花费之和;
对当前层进行物理机选择过程中,根据对当前层分配的虚拟机方案将 所有模块分配至相应的云数据中心的物理机中,根据多个云数据中心的带宽 性能的最差级到最优级对当前层选择带宽,每选择一次,比较当前层的总花 费与当前层的预算大小,若当前层的总花费小于当前层的预算,则继续对当 前层内的模块选择新一级的带宽;若当前层的总花费大于当前层的预算,则 给当前层内的模块选择上一次的带宽并完成选择,若当前层的总花费等于当 前层的预算,则完成选择;所述当前层的总花费为当前层中每个依赖关系利用当前所选择带宽传输数据所需的花费之和。
本发明的基于多云环境下的工作流映射调度策略优点如下:
(1)本发明按照工作流模块的依赖性进行工作流的分层,使得每个模 块之间不存在相互影响的情形,减少了大规模科学计算的模块计算等待阶段 的时间,提高了每一层工作流的工作效率。
(2)对于整个工作流而言,本发明结合考虑多云情形与数据中心中的 物理机异构特性,根据关键模块进行虚拟机与物理机的选择,降低了异构性 能对工作流的效率带来的影响。
(3)本发明通过考虑不同虚拟机和带宽的性能与价格,降低了超预算 情形的发生概率,并提高了整个工作流在该预算情形下的吞吐量值,进一步 提高了整个高吞吐量***的性能。
附图说明
图1是本发明工作流模块划分图;
图2是本发明对比现有算法的固定预算情况下吞吐量提高值示意图。
图3是本发明对比现有算法的吞吐量提高值示意图。其中(a)为在20种 不同问题规模与20种不同预算约束情形下的,本发明相对于B-RATE方法 的吞吐量提高量;(b)为在20种不同问题规模与20种不同预算约束情形下的, 本发明相对于Greedy-LDP方法的吞吐量提高量;(c)为在20种不同问题 规模与20种不同预算约束情形下的,本发明相对于MCWM方法的吞吐量 提高量。
具体实施方式
本文所用的所有科技术语的含义与本发明所属领域的技术人员通常理 解是一样的。另外,除非特殊情况有其他限制,否则下列定义适用于本说明 书中使用的术语。
本领域工作流通常表示为一种有向无环图DAG,其中的每条边代表的是 前一个节点与后一个节点的联系或者说是一种依赖关系,前一节点执行完毕 后,根据边的权重即传输数据的大小传输数据给下一个节点,下一个节点开 始执行。具体可根据用户或者云供应商提交的具体应用需求与数据放置位置, 产生一个由有向无环图表示的工作流Gw(Vw,Ew),工作流中的模块具体指程序、 代码段等基本数据操作。
工作流Gw(Vw,Ew)分层是在工作流中形成多层,同一层中的模块不存在依 赖关系。例如对工作流Gw(Vw,Ew)中有依赖关系(即有边相连的模块)用虚线 进行分割,并将不存在相邻边的模块放置在同一层中,产生如图1所示的结 构,使得同一层中的模块不存在依赖关系,而下一层中的模块需要等到上一 层以及之前层的模块运行完毕后才会开始运行(即存在依赖关系)。
虚拟机类型是指多云供应商提供的可运行虚拟机实例的可选项,本发明 适用于现有的虚拟机类型。虚拟机类型性能的最差级到最优级可依次按照 Disk、Memory、CPU的顺序和各自的取值大小进行排序分级,并且是同一 参数比较排序,同一参数值越大越性能优。也就是说,首先按照CPU资源的 大小排序,若CPU资源相同则顺序按照Memory资源的指标排序,若前两者 相同则顺序按照Disk的可用空间大小排序,结束排序后依据相应的价格得 到虚拟机类型与价格表。
带宽是指是指多云供应商提供的可运行虚拟机实例的可选项,带宽的性 能差与优可根据带宽数值大小进行排序分级。
本发明虚拟机分配方案采用对给定的虚拟机类型按照性能排序,基于关 键模块的优先级最高原则,通过不断选择当前层的模块与虚拟机类型,得到 不超过预算情况下的虚拟机选择方案。过程中所述的更新是指对当前层中的 关键模块依据本发明的方法进行重新选择;过程中所述的升级是指对虚拟机 类型从性能差的级别升级到性能优的级别,优选从性能差的级别升级至其上 一级优级;过程中所述的比较是指对方法中当前层的总计算花费与当前层的 预算进行比较。其中前层的总计算花费为当前层内各模块利用各自当前的虚 拟机类型完成计算所需花费之和,“各模块利用各自当前的虚拟机类型完成 计算所需花费”为“各模块利用各自当前的虚拟机类型完成计算所需时间乘 以相应虚拟机类型的价格”,其中虚拟机类型的价格由云供应商提供。
本发明物理机选择是根据每一层的虚拟机的类型,选择物理机产生虚拟 机实例,根据当前层的预算,选择云的位置与该云中具体的物理机,基于同 一云与最小带宽增加的原则,选出当前成本下的最有方案。过程中所述的 升级是指对带宽从性能差的级别升级至性能优的级别,优选从性能差的级别 升级至其上一优级;过程中所述的比较是指对当前层的总花费与当前层的预 算进行比较。
以下是发明人提供的具体实施例,以对本发明的技术方案做进一步解释 说明。
实施例1:
步骤1:工作流分层
根据用户或者云供应商提交的具体应用需求与数据放置位置,产生一个 由有向无环图表示的工作流结构Gw(Vw,Ew),其中Vw表示工作流中的模块集 合,Ew表示由于数据放置与应用需求而产生的计算依赖关系集合;对工作流 进行分层,同一层内模块不存在依赖关系,第l层的工作总量为CRl,预算为
步骤2:虚拟机类型排序
对于多云供应商提供的n(n大于等于1)种虚拟机类型,表示为 VT={vt0,vt1,...,vtn-1},按照CPU,Memory,Disk的优先级大小对虚拟机性能 进行排序,即首先按照CPU资源的大小排序,若CPU资源相同则按照 Memory资源的指标排序,若前两者相同则按照Disk的可用空间大小排序;
步骤3:分配虚拟机
为每层的工作流模块选择合适的虚拟机实例,考虑成本与性能的约束, 实时更新当前层的性能指标,具体方法如下:
1)为当前层的增加一个虚拟输出模块,该虚拟输出模块的工作量与传输 数据大小都为0(即为假定的模块);
2)为当前层的自有模块(即不包括虚拟输出模块)均分配最差虚拟机类 型的虚拟机实例,计算当前层中任意一个模块wi到虚拟输出模块的完成时间 Ti,i大于等于1,Ti=Time+Tidt,且Time为模块工作量与所选最差虚拟机类型 的计算力的比值,Tidt为模块wi输入数据传输的时间,所有模块中完成时间 最长的模块定义为关键模块;
3)关键模块优先级最高,根据工作量大小对该层中剩余模块分配优先 级,工作量越大优先级越高;
4)计算当前层在最差虚拟机类型下的完成时间Tl、该层每个模块的计 算花费Ci、该层总计算花费Cl(计算方法为时间与对应虚拟机类型价格的乘 积);
5)若当前层的总计算花费CL小于当前层给定的预算,则对于关键模块 进行虚拟机类型升级(最差级的上一级,即第二级),比较升级后当前层的 总计算花费与当前层给定的预算大小,若升级后当前层的总计算花费小于当 前层给定的预算,则根据当前层所有模块工作量与当前各自虚拟机类型的计 算力的比值大小更新关键模块,其中比值最大的模块为新的关键模块;接着 对新的关键模块进行虚拟机类型升级为第三级,继续比较当前层的总计算花 费与当前层给定的预算大小,如还是小于的情况继续更新比较,直至当前层的总计算花费大于当前层给定的预算时,对当前关键模块进行降级虚拟机类 型;完成虚拟机分配,或者当前层的总计算花费等于当前层给定的预算时, 完成虚拟机分配;
6)根据步骤5)选定的模块与虚拟机的映射关系,进一步考虑多云环境 与云数据中心间的数据传输选择物理机,根据步骤5)选定的虚拟机分配方 案将所有模块分配至相应的云数据中心的物理机中;在云数据中心资源满足 的情况下,尽量将有依赖关系的模块放至同一个云中;
7)对多云环境提供的可用带宽进行性能排序,为当前层所需要的云间 传输安排最差性能的带宽;
8)计算每个边(模块与模块之间的依赖与数据传输)利用最差带宽所 需的单位花费,求和得到当前层的总花费;
9)比较当前层的总花费与当前层的预算的大小,若当前层的总花费小 于当前层的预算,则对当前层选择新一级的带宽后继续比较两者的大小,若 当前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽 并完成选择,若当前层的总花费等于当前层的预算,则完成选择。
为了验证本发明的可实施性,对提出的多云环境工作流调度方法进行软 件编程仿真实验验证:
首先是模拟现实中的云供应厂商的云数据中心,设定了虚拟机类型,其 中虚拟机类型的具体参数为Cpu频率在[1Ghz,4Ghz]范围内,I/O设定为 20M/s,硬盘空间在[500MB,40GB]之间随机定值;随机假定了数据中心之间 的数据传输带宽可用类型,范围为[10M,100M]。
并且根据下表所示的参数产生随机的工作流结构,定义了20种不同规 模的问题,为了保证能合理的调度工作流,预算值的设置根据相应的问题规 模而定。下限为虚拟机与带宽里类型全为最差时的所需费用,上限为虚拟机 与带宽里类型全为最优时的所需费用。具体如表1所示。
表1问题规模实际参数
表中m代表的是模块的数量,|Ew|代表的是数据依赖的关系的具体数据 传输大小,范围在[5,500]之间,n代表的是可用的虚拟机类型数量,c代表 的是该问题规模下的云数据中心的个数。
图2表示在预算一定的情况下,本发明相比于别的算法在吞吐量上的比 较,随着问题规模的变化,预算一定时,吞吐量增加明显,平均的吞吐量增 加率变化波动较大。图3是在不同的问题规模与不同的预算下的吞吐量对比 图,无论是改变预算值还是改变问题的规模,本发明的吞吐量相对比别的方 法都会有明显的改善,变化波动较大。
实施例2:
对于与实施例1不同的工作流和多云环境,在实施例1方法执行的基础 上可能存在在虚拟机分配过程中,虚拟机类型已升级至最高级,当前层的总 计算花费仍小于当前层给定的预算,这种情况下,对当前关键模块的下一级 模块进行虚拟机类型升级,升级至当前虚拟机类型的下一级,若当前层的总 计算花费小于当前层给定的预算,则对于关键模块进行虚拟机类型升级第二 级,比较升级后当前层的总计算花费与当前层给定的预算大小,直至当前层 的总计算花费大于当前层给定的预算。
实施例3:
对于另一些不同的工作流和多云环境,在实施例1或2方案的基础上, 可能存在在物理机选择过程中,当前层总花费在用最差带宽进行传输时都超 过预算,则重新对虚拟机分配方案进行调整,具体在已分配好的虚拟机方案 的基础上对非关键模块进行优先虚拟机类型降级,首先降级非关键模块中优 先级最低模块的虚拟机类型并及时更新模块优先级,直至降到虚拟机类型最 差级或满足预算要求为止,继续更新升级带宽、比较。
Claims (10)
1.一种静态工作流调度方法,方法对多个云数据中心环境下的虚拟机分配与物理机选择,其特征在于,方法包括:
步骤一,工作流分层
对工作流Gw(Vw,Ew)进行分层,同一层中的模块不存在依赖关系,Vw为模块集合,Ew为所有模块依赖关系的集合;分层后第l层中所有模块工作量和为CRl;l=1,2,3...L,L≥2,第l层的预算为CR为工作流中所有模块的工作量和;
步骤二,虚拟机和物理机分配
对工作流逐层进行虚拟机和物理机分配:
(1)对当前层进行虚拟机分配包括:按照多个云中心的虚拟机类别性能的最差级到最优级对当前层内的模块分配虚拟机类别,每分配一次,比较一次当前层的总计算花费与当前层的预算大小,若当前层的总计算花费小于当前层的预算,则继续对当前层内的模块分配新一级的虚拟机类别,若当前层的总计算花费大于当前层的预算,则给当前层内的模块分配上一次分配的虚拟机类别并完成分配,若当前层的总计算花费等于当前层的预算,则完成分配;所述当前层的总计算花费为当前层内各模块利用各自当前的虚拟机类型完成计算所需花费之和;
(2)对当前层进行物理机选择包括:根据对当前层分配的虚拟机方案将所有模块分配至相应的云数据中心的物理机中,根据多个云数据中心的带宽性能的最差级到最优级对当前层选择带宽,每选择一次,比较当前层的总花费与当前层的预算大小,若当前层的总花费小于当前层的预算,则继续对当前层内的模块选择新一级的带宽;若当前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽并完成选择,若当前层的总花费等于当前层的预算,则完成选择;所述当前层的总花费为当前层中每个依赖关系利用当前所选择带宽传输数据所需的花费之和。
2.如权利要求1所述的静态工作流调度方法,其特征在于,所述多个云中心的虚拟机类别性能的最差级到最优级是依次按照Disk、Memory、CPU的顺序进行排序分级,并且是同一参数比较排序,同一参数值越大越性能优。
3.如权利要求1所述的静态工作流调度方法,其特征在于,所述多个云数据中心的带宽性能的最差级到最优级是按照带宽数值大小进行排序分级。
4.如权利要求1所述的静态工作流调度方法,其特征在于,对当前层进行虚拟机分配过程包括:
2.1对当前层的增加一个虚拟输出模块,该虚拟输出模块的工作量与传输数据大小均为0;
2.2对当前层的自有模块均分配最差虚拟机类型的虚拟机实例,计算当前层中任一个模块wi到虚拟输出模块的完成时间Ti,i大于等于1,Ti=Time+Tidt,Time为模块wi工作量与最差虚拟机类型的计算力的比值,Tidt为模块wi输入数据传输的时间;当前层的所有模块中完成时间最长的模块为关键模块;
2.3对当前层中的模块进行优先级排序,其中关键模块优先级最高,其余模块依次排序,其中工作量越大优先级越高;
2.4计算当前层所有模块利用最差虚拟机类型计算所需的总完成时间Tl并计算总计算花费Cl;
2.5若当前层的总计算花费Cl小于当前层的预算,则对关键模块进行虚拟机类型升级,若升级后当前层的总计算花费小于当前层的预算,则根据当前层中各模块工作量与各自当前的虚拟机类型的计算力的比值大小更新关键模块,其中比值最大的模块为新的关键模块;接着对新的关键模块进行虚拟机类型升级,接着再次比较升级后当前层的总计算花费与当前层的预算大小,若升级后当前层的总计算花费仍然小于当前层的预算,继续更新关键模块,直至当前层的总计算花费大于当前层给定的预算时,对当前关键模块进行降级虚拟机类型;完成虚拟机分配,或者直至当前层的总计算花费等于当前层给定的预算时,完成虚拟机分配。
5.如权利要求1所述的静态工作流调度装置,其特征在于,对当前层进行物理机选择过程包括:
2.6根据选定的虚拟机分配方案将所有模块分配至相应的云数据中心的物理机中;
2.7计算当前层中每个依赖关系利用最差性能带宽传输数据所需的花费,得到当前层的总花费;
2.8比较当前层的总花费与当前层的预算的大小,若当前层的总花费小于当前层的预算,则对当前层选择新一级的带宽后继续比较两者的大小,若当前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽并完成选择,若当前层的总花费等于当前层的预算,则完成选择。
6.如权利要求1所述的静态工作流调度装置,其特征在于,在物理机选择过程中,在云数据中心资源满足的情况下,将有依赖关系的模块放至同一个云中。
7.如权利要求1所述的静态工作流调度方法,其特征在于,步骤2.5中,若虚拟机类型升级至最高级,当前层的总计算花费仍小于当前层给定的预算时,对当前非关键模块进行虚拟机类型升级,所述当前非关键模块首次选择当前关键模块的下一级模块,升级后若当前层的总计算花费小于当前层的预算,则对于该当前非关键模块继续进行虚拟机类型升级,比较升级后当前层的总计算花费与当前层给定的预算大小,若当前层的总计算花费仍然小于当前层的预算,继续进行升级、比较,直至当前层的总计算花费等于或大于当前层给定的预算。
8.如权利要求1所述的静态工作流调度方法,其特征在于,步骤2.8中,若花费在用最差带宽进行传输时都超过预算,则在步骤2.5所得结果的基础上对非关键模块进行优先虚拟机类型降级,首先降级非关键模块中优先级最低模块的虚拟机类型并及时更新模块优先级,直至降到虚拟机类型最差级或满足预算要求为止,接着执行步骤2.8。
9.一种静态工作流调度方法,该方法是对多个云数据中心环境下的虚拟机分配与物理机选择,其特征在于,方法包括:
步骤一,工作流分层
对工作流Gw(Vw,Ew)进行分层,同一层中的模块不存在依赖关系,Vw为模块集合,Ew为所有模块依赖关系的集合;分层后第l层中所有模块工作量和为CRl;l=1,2,3...L,L≥2,第l层的预算为CR为工作流中所有模块的工作量和;
步骤二,虚拟机类型排序
对多云数据中心的虚拟机类型按照CPU、Memory和Disk的优先级和取值大小进行排序;
步骤三,分配虚拟机和物理机
对工作流逐层进行虚拟机和物理机分配:
3.1对当前层的增加一个虚拟输出模块,该虚拟输出模块的工作量与传输数据大小均为0;
3.2对当前层的自有模块均分配最差虚拟机类型的虚拟机实例,计算当前层中任一个模块wi到虚拟输出模块的完成时间Ti,i大于等于1,Ti=Time+Tidt,Time为模块wi工作量与最差虚拟机类型的计算力的比值,Tidt为模块wi输入数据传输的时间;当前层的所有模块中完成时间最长的模块为关键模块;
3.3对当前层中的模块进行优先级排序,其中关键模块优先级最高,其余模块依次排序,其中工作量越大优先级越高;
3.4计算当前层所有模块利用最差虚拟机类型计算所需的总完成时间Tl和总计算花费Cl;
3.5若当前层的总计算花费Cl小于当前层的预算,则对关键模块进行虚拟机类型升级,若升级后当前层的总计算花费小于当前层的预算,则根据当前层中各模块工作量与各自当前的虚拟机类型的计算力的比值大小更新关键模块,其中比值最大的模块为新的关键模块;接着对新的关键模块进行虚拟机类型升级,接着再次比较升级后当前层的总计算花费与当前层的预算大小,若升级后当前层的总计算花费仍然小于当前层的预算,继续更新关键模块,直至当前层的总计算花费大于当前层给定的预算时,对当前关键模块进行降级虚拟机类型;完成虚拟机分配,或者直至当前层的总计算花费等于当前层给定的预算时,完成虚拟机分配;
3.6根据步骤3.5选定的虚拟机分配方案将所有模块分配至相应的云数据中心的物理机中;在云数据中心资源满足的情况下,尽量将有依赖关系的模块放至同一个云中;
3.7对多个云数据中心的可用带宽进行性能排序;为当前层的所有模块间的数据传输安排最差带宽;
3.8计算当前层中每个依赖关系利用最差带宽传输数据所需的花费,得到当前层的总花费;
3.9比较当前层的总花费与当前层的预算的大小,若当前层的总花费小于当前层的预算,则对当前层选择新一级的带宽后继续比较两者的大小,若当前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽并完成选择,若当前层的总花费等于当前层的预算,则完成选择。
10.一种静态工作流调度装置,装置用于对多个云数据中心环境下的虚拟机分配与物理机选择,其特征在于,装置包括:
对工作流Gw(Vw,Ew)进行分层,同一层中的模块不存在工作流分层模块,依赖关系,Vw为模块集合,Ew为所有模块依赖关系的集合;分层后第l层中所有模块工作量和为CRl;l=1,2,3...L,L≥2,第l层的预算为 CR为工作流中所有模块的工作量和;
虚拟机和物理机分配模块,用于对对工作流逐层进行虚拟机和物理机分配:
对当前层进行虚拟机分配过程中,按照多个云中心的虚拟机类别性能的最差级到最优级对当前层内的模块分配虚拟机类别,每分配一次,比较一次当前层的总计算花费与当前层的预算大小,若当前层的总计算花费小于当前层的预算,则继续对当前层内的模块分配新一级的虚拟机类别,若当前层的总计算花费大于当前层的预算,则给当前层内的模块分配上一次分配的虚拟机类别并完成分配,若当前层的总计算花费等于当前层的预算,则完成分配;所述当前层的总计算花费为当前层内各模块利用各自当前的虚拟机类型完成计算所需花费之和;
对当前层进行物理机选择过程中,根据对当前层分配的虚拟机方案将所有模块分配至相应的云数据中心的物理机中,根据多个云数据中心的带宽性能的最差级到最优级对当前层选择带宽,每选择一次,比较当前层的总花费与当前层的预算大小,若当前层的总花费小于当前层的预算,则继续对当前层内的模块选择新一级的带宽;若当前层的总花费大于当前层的预算,则给当前层内的模块选择上一次的带宽并完成选择,若当前层的总花费等于当前层的预算,则完成选择;所述当前层的总花费为当前层中每个依赖关系利用当前所选择带宽传输数据所需的花费之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811492446.5A CN109783189B (zh) | 2018-12-07 | 2018-12-07 | 一种静态工作流调度方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811492446.5A CN109783189B (zh) | 2018-12-07 | 2018-12-07 | 一种静态工作流调度方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783189A true CN109783189A (zh) | 2019-05-21 |
CN109783189B CN109783189B (zh) | 2022-11-22 |
Family
ID=66495757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811492446.5A Active CN109783189B (zh) | 2018-12-07 | 2018-12-07 | 一种静态工作流调度方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783189B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609736A (zh) * | 2019-07-30 | 2019-12-24 | 中国人民解放军国防科技大学 | 一种云环境下截止期约束的科学工作流调度方法 |
WO2021137046A1 (en) * | 2020-01-02 | 2021-07-08 | International Business Machines Corporation | Implementing workloads in a multi-cloud environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180136976A1 (en) * | 2016-11-14 | 2018-05-17 | King Abdulaziz University | Temporal task scheduling in a hybrid system |
CN108469988A (zh) * | 2018-02-28 | 2018-08-31 | 西北大学 | 一种基于异构Hadoop集群的任务调度方法 |
CN108628665A (zh) * | 2018-05-16 | 2018-10-09 | 天津科技大学 | 基于数据密集型科学工作流的任务调度与虚拟机整合方法 |
-
2018
- 2018-12-07 CN CN201811492446.5A patent/CN109783189B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180136976A1 (en) * | 2016-11-14 | 2018-05-17 | King Abdulaziz University | Temporal task scheduling in a hybrid system |
CN108469988A (zh) * | 2018-02-28 | 2018-08-31 | 西北大学 | 一种基于异构Hadoop集群的任务调度方法 |
CN108628665A (zh) * | 2018-05-16 | 2018-10-09 | 天津科技大学 | 基于数据密集型科学工作流的任务调度与虚拟机整合方法 |
Non-Patent Citations (4)
Title |
---|
CAO F: "Distributed Workflow Scheduling under Throughput and Budget Constraints in Grid Environments", 《JOB SCHEDULING STRATEGIES FOR PARALLEL PROCESSING》 * |
CHASE Q. WU: "Optimizing the Performance of Big Data Workflows in Multi-cloud Environments Under Budget Constraint", 《2016 IEEE INTERNATIONAL CONFERENCE ON SERVICES COMPUTING (SCC)》 * |
万聪等: "面向数据密集型工作流的QoS-aware调度算法", 《***仿真学报》 * |
石萌: "多个云环境下大数据工作流性能优化算法的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609736A (zh) * | 2019-07-30 | 2019-12-24 | 中国人民解放军国防科技大学 | 一种云环境下截止期约束的科学工作流调度方法 |
CN110609736B (zh) * | 2019-07-30 | 2021-04-20 | 中国人民解放军国防科技大学 | 一种云环境下截止期约束的科学工作流调度方法 |
WO2021137046A1 (en) * | 2020-01-02 | 2021-07-08 | International Business Machines Corporation | Implementing workloads in a multi-cloud environment |
GB2607224A (en) * | 2020-01-02 | 2022-11-30 | Ibm | Implementing workloads in a multi-cloud environment |
US11995479B2 (en) | 2020-01-02 | 2024-05-28 | International Business Machines Corporation | Implementing workloads in a multi-cloud environment with data migration between cloud vendors |
Also Published As
Publication number | Publication date |
---|---|
CN109783189B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168267B (zh) | 基于改进粒子群与启发式策略的生产排产方法及*** | |
CN107122243B (zh) | 用于cfd仿真计算的异构集群***及计算cfd任务的方法 | |
CN102780759B (zh) | 基于调度目标空间的云计算资源调度方法 | |
Shi et al. | Location-aware and budget-constrained service deployment for composite applications in multi-cloud environment | |
CN103729246B (zh) | 一种任务调度方法和装置 | |
CN109492774A (zh) | 一种基于深度学习的云资源调度方法 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和*** | |
CN104331321A (zh) | 基于禁忌搜索和负载均衡的云计算任务调度方法 | |
Quadt et al. | Capacitated lot‐sizing and scheduling with parallel machines, back‐orders, and setup carry‐over | |
CN103853618A (zh) | 基于截止日期驱动的云***代价最小化资源分配方法 | |
CN110187969A (zh) | 一种基于gpu的分布式大数据并行计算方法 | |
CN108170530A (zh) | 一种基于混合元启发式算法的Hadoop负载均衡任务调度方法 | |
Rajakumar et al. | Workflow balancing strategies in parallel machine scheduling | |
CN111082971B (zh) | 一种面向云负载测试的共享式资源分配方法 | |
CN106371924A (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
CN106095582A (zh) | 云平台的任务执行方法 | |
Lu et al. | A resource investment problem based on project splitting with time windows for aircraft moving assembly line | |
Rauchecker et al. | Using high performance computing for unrelated parallel machine scheduling with sequence-dependent setup times: Development and computational evaluation of a parallel branch-and-price algorithm | |
CN109445386A (zh) | 一种基于onba的云制造任务最短生产时间调度方法 | |
CN109784663A (zh) | 一种工作流调度方法与装置 | |
Taheri et al. | Hopfield neural network for simultaneous job scheduling and data replication in grids | |
CN109783189A (zh) | 一种静态工作流调度方法与装置 | |
CN110084507A (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
Chen et al. | Research on workflow scheduling algorithms in the cloud | |
CN110262896A (zh) | 一种面向Spark***的数据处理加速方法 |
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 |