论文部分内容阅读
由于具有良好的可扩展性、可用性、高性价比,机群结构已经成为高性能计算机的主流结构。使用机群系统进行复杂科学计算的需求日益增长。由于科学计算应用规模越来越大,复杂度越来越高,需要计算与问题分解的手段。在天文、生物、海洋、气象等应用领域,越来越多的科学计算应用采用工作流(workflow)进行问题分解和计算自动化管理。工作流把一个复杂的计算过程分解成多阶段,每阶段由存在依赖关联的多个计算作业/组件组成,阶段间与阶段内的逻辑控制由科学计算工作流系统负责管理。本文对机群科学计算工作流系统进行了研究。主要研究内容及结果包括:
⑴针对动态工作流的四种依赖语义需求:先后控制依赖、数据库触发条件依赖、事件条件依赖、时间定时器依赖,提出了基于ECA规则约束的UML活动图的工作流模型与流程描述语言。该工作流模型结合UML活动图易于图形化与ECA规则灵活性强的特点。对UML活动图的有向边实行ECA规则约束,在UML活动图原有先后控制依赖语义表达基础上,利用ECA标签可以灵活支持数据库触发条件依赖、事件条件依赖、时间定时器依赖等多样的动态依赖语义表达。
⑵提出了基于DAG图抽象的工作流编程模型,方便开发人员编写多阶段,阶段间数据依赖,阶段内数据并行的计算复杂、数据量大的并行应用。系统提供编程中间件支持:实施并发/行的计算调度、支持阶段间计算组件的数据传输和计算/节点失效的容错处理。
⑶对经典的关键路径调度算法CPOP进行改进,提出了一个基于执行时间预测的Refined-Critical-Path(RCP)调度算法。RCP对CPOP的资源分配策略进行改进,根据关键路径作业优先的原则,兼顾前置作业的策略,调度关键路径作业时回溯调度其前置作业,缩短了关键路径的调度长度,进而缩短流程的执行时间。实验测试对比了RCP、CPOP、Greedy、GRASP四种调度算法,表明RCP能够比CPOP及其他两种调度算法产生更好的调度结果,缩短流程的执行时间,提高了系统利用率。
⑷设计并实现了面向管理与编程的科学计算工作流系统。为流程管理提供了建模工具,基于事件的流程执行推进机制;为编程开发,提供编程接口,及必须的组件加载、数据传输等支持;为分布式计算,提供了计算加载、监控工具;对计算资源分配与流程调度提供了有效的策略;对计算/节点失效提供了容错机制。