论文部分内容阅读
随着计算技术和网络技术的发展,以分布式计算、并行计算为基础的分布式计算系统所构建的数据中心和计算中心在工业、商业、科技和军事等领域有着非常广泛的应用。在这些应用中将大量的复杂计算任务分解成为若干个子任务并行处理,最后将计算结果进行有效合并得到最终结果。可以看到在任务的分解和计算过程中,有效的任务调度机制是影响分布式计算系统性能和效率的关键因素,而不合理的任务调度方法会严重影响系统的计算能力,降低并行效率,甚至达不到并行计算应具有的效果。因此任务的调度问题一直是分布式系统、网格系统、云计算系统的核心内容,也是人们一直研究的热点。但是,随着分布式系统规模的不断增加、计算能力不断提高的同时,系统的稳定性和可靠性已成为影响并行应用能否顺利执行的关键。例如在天河二号、Google数据中心等超级计算机或是大规模集群中,由于复杂的上层应用以及系统超高的功耗导致了系统极容易出现故障,因此设计一套完整的可靠性保障机制显得尤为重要,而在系统的调度阶段设计高可靠的调度算法是其中重要的手段之一。本文从“保障性能,提高可靠性”这一目标出发,深入研究如何保障分布式计算系统可靠性与计算资源高效利用问题。论文将任务的类型分为实时周期任务和非实时任务两种任务类型,通过主副版本调度技术,实现了高可靠、高性能的调度策略。具体工作为:(1)针对分布式计算系统的实时任务的可靠调度问题,提出了一种依据计算节点和通信链路可靠性代价的调度算法(DRCAMD)。该方法能通过设置权值的方法来调整系统的目标权重函数,平衡用户在系统的调度性能和可靠性的不同需求,另外,针对具有依赖关系的实时任务的调度问题,本文提出了一种不考虑主版本任务与副版本任务各种重叠状态的可调度分析方法,实验结果表明了在一定的计算节点和通信链路的故障概率条件下,算法的可靠性和性能方面具有一定的优势。(2)针对混合关键任务可靠性调度的问题,基于主副版本调度策略,结合任务关键性等级的处理方法,提出了一种二阶段可靠调度算法(MCRSS)及可调度分析方法。该算法的第一阶段主要是对需要调度的混合关键性任务按照优先级高低进行调度,调度过程中,使用副本重叠的方法减少由于副版本任务的复制所带来的系统开销,第二个阶段是对调度到目标处理机上的任务进行可调度分析,对于不能满足可调度需求的任务进行升级处理,直到能满足任务对截止期的要求。仿真实验表明了MCRSS算法能有效的处理混合关键任务中不同关键等级任务的可靠调度问题,同时保证了分布式计算系统具有良好的灵活性和性能。(3)针对具有优先级依赖关系的DAG任务的调度问题,本文提出了一种基于副版本任务最早完成时间的调度算法(EFTBT),该方法通过分析主版本任务调度的状态以此得到不同情况下副版本任务调度的最早为完成时间以及调度的目标处理机的约束,并证明了该约束的合理性,该方法能够在保障可靠调度前提下获得较好的调度性能,另外,针对科学工作流应用中存在的多个DAG任务同时调度的问题,为了解决不公平导致的多个后续DAG任务无法调度问题,提出了基于分层思想的多DAG调度策略(MDDL),实验结果表明上述两种算法与经典算法相比能有效提高调度的性能。(4)针对大规模分布式计算系统的异构性、动态性的特点,提出基于节点和链路故障特征分析的具有依赖关系DAG任务可靠调度策略,该策略以副版本任务最早完成时间算法EFTBT为基础,给出了更符合实际应用需求的通信模型以及副版本执行策略,建立了分布式计算系统的故障特点分析方法,在此基础上提出了基于通信竞争模型的容错调度算法(RAPA),实验结果表明与HEFT和EFTBT相比,RAPA算法具有较好的性能和可靠性。