论文部分内容阅读
与使用传统私有集群相比,租赁云计算虚拟机资源执行分布式计算任务可以同时降低成本和执行时间。分布式计算平台(例如Spark,Map Reduce和Pegasus)中的任务通常可以用批任务工作流进行建模。批任务工作流通常存在资源租赁成本的预算约束,因此提出预算约束下的批任务工作流资源调度方法是云计算领域的一个重要问题。同时,对于现有的商业云,用户只能租赁一定数量限制的按需实例,即单个用户同一时刻租赁的所有实例的总虚拟中央管理单元(vCPU)数量不能超过一个限定值。因此,同时考虑vCPU数量与预算约束,提出批任务工作流执行时间最小化方法是云计算领域的另一个重要问题,并且该问题是一个NP难问题。目前,大多数已有工作流调度算法都是针对传统工作流,没有考虑批任务工作流的结构,无法将预算合理分配给不同的批任务。本文首先提出基于超级任务的资源租赁成本、执行时间和vCPU数量的快速评估方法;然后针对不同约束条件分别提出基于配置和任务串行度的迭代启发式算法和回溯式搜索方法;最后基于Elastic Sim仿真平台和支持虚拟机细粒度调度的Spark平台对算法性能进行测试分析,通过实验证明提出算法的有效性。具体工作如下:(1)针对传统工作流的价格评估模型没有考虑时间片重用问题,提出基于超级任务的调度方案租赁成本、vCPU数量评估方法。将给定虚拟机配置和串行度的任务包看做超级任务,根据超级任务最早开始时间和最短执行时间安排虚拟机执行,并分析租赁的时间片得出租赁成本和vCPU数量。(2)针对现有的批任务工作流调度算法较少考虑预算约束下完工时间问题,建立批任务工作流下任务包的虚拟机类型和租赁数量调整模型,为每个任务包选择合适的虚拟机类型和数量,最小化完工时间。(3)基于vCPU数量评估模型,提出了vCPU数量和预算双重约束下的批任务工作流调度方法,回溯调整关键路径上批任务的虚拟机配置,优化任务包的任务并行度,在满足约束的前提下最小化完工时间。(4)基于Spark开源代码,研发了支持虚拟机细粒度调动的Spark平台。引入多Executor类型以支持面向Stage层面的Executor弹性分配架构,实现了Stage层面的Executor自动缩放。(5)分别基于仿真平台Elastic Sim和Spark平台对本文提出的资源调度方法进行测试与分析。本课题将预算约束下的工作流调度方法与最新的启发式算法进行比较。结果表明,本算法对三类科学工作流提升约10~70%的执行速率,根据不同的预算约束性能表现不同。同时,预算和vCPU双重约束下的调度方法比较结果表明,生成的调度方案对于部分工作流能够在同等的完工时间内节省约20~50%的vCPU,具有广泛的应用场景。