论文部分内容阅读
科学工作流是大规模科学计算程序的重要组织模式之一。近年来,随着科学研究的日趋广泛和深入,其对计算资源的需求也呈现出爆炸性增长的趋势。基础设施即服务(IaaS)模型是云计算中最重要的一种服务模型,其可以通过网络以虚拟机的形式按需提供大量计算资源,无疑是科学工作流潜在的理想运行环境。然而,作为新兴技术,IaaS平台与传统分布式计算平台在很多方面仍然有着显著的差异。这些差异给科学工作流的调度和执行等都带来了新的挑战。本文围绕IaaS环境中的科学工作流,研究包括构造、调度和执行在内的若干关键问题,文章工作取得的主要成果及创新点包括:1)对IaaS环境中的科学工作流调度问题进行建模,同时针对工作流执行过程研究IaaS平台特点,指出由于这些特点(基于虚拟机的动态资源管理方式、复杂的计费模型以及各种数据共享选项等)导致的现有工作流调度算法在IaaS环境中使用时可能存在的问题。2)针对IaaS环境预算约束条件下性能优先工作流调度问题,提出新的启发式调度算法BHI算法。算法根据任务完成时间、当前已用预算以及最小预留预算等启发式信息将任务调度到合适的虚拟机,在保证预算约束的条件下尽可能的寻找使工作流执行总完成时间最小化的调度方案。同时,还给出新的解决方案解决现有基于列表的启发式调度算法在IaaS环境中难以应用的问题。实验表明,相比现有算法,BHI算法在大多数情况下都可以找到更快的调度方案,同时还具有更高的调度成功率。3)针对IaaS环境中需要同时优化总完成时间和总执行费用的工作流调度问题,指出现有各种元启发算法特别是进化算法的不足;同时,设计新的基于进化算法的EMS-C调度算法。该算法针对IaaS环境提出全新的问题特定编码方式、交叉/变异算子和更有效的种群初始化方法。基于现实工作流应用和Amazon EC2平台虚拟机配置的实验证实了 EMS-C算法设计的有效性;4)针对IaaS环境中的多目标工作流调度问题,提出新的元启发调度算法ESC算法。算法采用进化的思想,但设计了全新的基于虚拟机合并、分裂和配置突变的搜索方法,同时对包括种群初始化和新个体生成策略在内的迭代搜索过程也进行改进。实验表明该算法调度结果优于MOHEFT等现有调度算法,同时相比现有各种元启发调度算法具有更强的搜索能力和更快的搜索速度。5)为解决复杂科学工作流的建模问题,同时充分利用IaaS资源执行科学工作流应用,设计并实现Brick科学工作流工具包。工具包允许用户使用Python脚本便捷地隐式创建科学工作流,同时内置了各种静态/动态调度引擎并支持包括IaaS平台/虚拟机在内的各种计算环境和资源组织形式。文章通过一个真实工作流应用完整的创建、执行和分析过程展示了 Brick工具包的可用性和便利性。6)为使遗留科学计算代码可以使用科学工作流技术和IaaS平台计算资源的进行优化和加速,在Brick工具包中还包括了 Briareus组件。该组件可以在仅添加数条描述性注释的情况下对一个已有的Python计算程序进行工作流化的改造,同时允许将指定的计算任务自动、透明地迁移到IaaS平台进行。文章通过两个科学计算程序实例实际运行效果展示了 Briareus组件的易用性和有效性。