论文部分内容阅读
随着科学研究所处理的对象和数据量的不断庞大,科研学者们对于高性能计算机的需求越来越迫切。目前在硬件层面,构建并行计算环境的技术已经相当完善,相对于并行计算硬件支持技术的日益成熟,现有的并行应用程序和软件的设计和开发技术的发展却远远落后。为了简化并行程序设计,提高并行程序开发效率,天津大学高性能计算实验室设计并实现了一套面向混合分布式多核集群开发环境的运行时系统EasyHPS。EasyHPS基于自定义的一套并行编程模型DAG Data Driven Model,旨在针对数据密集型应用,通过对并行细节的抽象和封装,让编程人员只需要将精力关注在具体应用算法上,运行时系统则自动负责有关进(线)程的创建、数据任务的分配、调度等。另一方面,调度是并行计算中一个十分重要的问题。EasyHPS中采用了数据任务的动态调度分配机制,这一调度机制具有良好的负载平衡,然而增加了运行时系统的开销。另外,由于EasyHPS系统主要针对的是具有规则任务图的动态规划算法,动态调度分配机制并不是针对这一类型应用的最佳选择。本文深入研究了现有的并行分布计算中的调度算法,针对EasyHPS运行时系统所支持的特有的应用类型,提出了一种新的调度算法—HPS-FCSC。HPS-FCSC调度算法首先提出了根据就绪任务的某些属性对就绪任务进行选择。为了利用任务属性更加有目的、有序的进行任务调度,必须进一步考虑任务属性与完成时间的关系。首先以对完成时间影响最大的属性作为任务排序依据,如果出现相等的情况,则以对完成时间影响次之的属性作为任务排序依据,以此类推。然后根据生物信息学中的DP算法的特点,提出了以减小调度长度为首要目的,减小通信开销为次要目的的任务调度依据。本文通过在EasyHPS系统上运行Smith-Waterman算法(包括SWLAG和SWGG两种),把HPS-FSCS算法与系统原来的调度算法做对比,证明了HPS-FCSC算法在EasyHPS上的有效性。同时采用模拟的方法,把HPS-FCSC调度算法同其他四个表调度算法分别应用在并行高斯消元程序和随机生成的任务图中,通过调度结果的对比,证明了HPS-FCSC算法在其他应用类型上的有效性。