云计算环境下科学工作流两阶段任务调度策略0引言科学工作流是指将一系列在科学研究中遇到的数据管理、计算、分析、展现等工作变成一个个独立的服务,再把这些服务通过数据链接组合在一起,满足研究人员科学实验和数据处理中的需要,从而实现相应的处理与科学计算
在该领域中的学科充分利用现代信息技术强大的数据、信息和知识处理能力,有力地促进了科学研究的发展[1],科学工作流系统[2]也开始受到关注并被用来进行自动化科学任务的编排、执行、监控以及追踪[3]
但由于科学处理的复杂性,科学工作流也逐渐变成计算密集型和数据密集型[2],因此,部署和执行科学工作流应用,不仅对资源要求高,而且要有海量存储空间,云计算[4]作为一种典型的分布式网格计算技术,能够提供给工作流一些不同于其他计算环境的特点,它提供共享基础架构的方法,通过虚拟技术将分布在不同地理位置的计算资源和存储资源模拟成一个资源池,用户需要使用时申请资源,使用完成后释放资源,从而能够以相对低廉的基础设施成本为科学工作流提供所需的计算和存储资源
如今,利用云环境去执行大规模的科学应用的需求也与日俱增[5-8]
随着云计算技术的不断发展,它的灵活、弹性、可定制的特点为解决科学工作流运行过程中遇到的问题提供了新的想法
但在科学工作流调度过程中,现存的方法,在可用的资源上进行任务分配时会出现很多资源的空闲时间,这段时间资源不能得到有效利用,造成了资源和预算的浪费
为解决上述问题,本文提出一种新的两阶段任务调度策略
在第一阶段,将工作流转换成有向无环图(DirectedAcyclicGraph,DAG),采用一种新的方法对任务进行排序;第二阶段,对资源进行分析将任务分配到合适的资源上执行,并对资源空闲时间进行合理利用
实验表明,本文提出的策略不但减少了工作流任务执行的总时间;而且减少了资源的空闲时间,提高了资源利用率,节省了用户的云资源使用费用