论文部分内容阅读
高性能计算的广泛应用推动了集群技术的日益发展。集群系统一般以降低任务的平均响应时间,提高系统吞吐率为性能目标,这一性能目标通过合理的资源分配以及高效的任务调度来实现。然而,随着高性能计算的发展,集群系统在提供强大计算能力的同时也消耗了巨大的能量,对系统产生了诸多负面影响,如高运行成本、环境问题、系统可靠性降低等。因此,高性能和低能耗是集群系统的两个重要需求。本文的研究工作主要集中在DAG任务在集群中的节能调度以及实际执行,具体而言包括以下两个方面的工作:首先,在服务等级协议的背景下,提出了一个DAG任务节能调度算法EASLA(Energy Aware Scheduling in the context of Service Level Agreement)。为了 充分利用空闲时间降低任务的能量消耗,该算法考虑了任务之间的优先约束关系对分配空闲时间的影响,通过找到每个任务的最大独立任务集来提高任务使用空闲时间的并行度,然后迭代地分配空闲时间给取得最大节能的任务集。本文采用随机生成的DAG图和实际应用问题的DAG图进行模拟实验。实验结果表明,在同构集群环境下,EASLA算法比GreedyDVS和EvenlyDVS算法多节省22.68%和12.01%的能量;在异构集群环境下,比EES算法多节省12.33%的能量。其次,由于DAG任务调度大多局限于理论研究,本文设计并实现了一个DAG任务执行的原型系统。此系统采用两层次调度,资源管理与任务调度系统SLURM作为上层调度,为DAG任务提供所需的资源并执行子调度系统提供的调度方案;子调度系统作为底层调度,为DAG任务提供调度方案并提交至SLURM系统中,它集成了经典的DAG任务调度算法HEFT和本文提出的节能调度算法EASLA。该系统将理论付诸实践,使DAG任务在集群中得以实际执行,并结合CPUfreq系统,实现了 DAG任务在SLURM中的节能调度,弥补了 SLURM在DAG任务调度以及节能管理方面的不足。