论文部分内容阅读
异构多核处理器具有高性能和灵活性以及低成本和低功耗等特点,使其在工业、国防、医疗和通信等诸多领域得到了越来越广泛的应用,它被普遍地认为是未来的多核处理器的主要发展趋势。对于大而复杂的应用,为了提高计算系统的性能和满足应用的要求,常常需要将应用按照某种规则划分成多个各式各样的任务。不同的任务在同一种处理核上执行的消耗不同,同一任务在不同种类的处理核上执行的消耗也不相同。鉴于这个原因,要充分地发挥异构多核处理器的优势,还必须对任务进行合理的分配和调度。任务分配是指把任务分配给合适的处理核。任务调度除了需要对任务进行分配外,还需要确定任务在处理核上的执行顺序。随着“绿色计算”需求的提出,如何减少各种计算系统在执行应用时所消耗的资源、能量和预算等成本问题已经成为当前工业界和学术界共同关注和研究的热点。高效的任务分配和任务调度策略不仅可以减少计算系统所消耗的能量和成本,还可以降低温度和提高计算系统的可靠性。目前为止,关于任务分配和任务调度问题的研究,大多数工作面向同构计算系统,只有少数工作面向异构计算系统。由于同构计算系统和异构计算系统之间存在着差异,基于同构计算系统的任务分配和调度技术不能有效地解决基于异构多核系统的任务分配和调度问题。对于少数面向异构计算系统的工作,有些考虑周期性实时任务,有些考虑同构的通信链接,有些不考虑通信,有些不考虑时间限制。实际生活中,很多应用对时间有着严格的要求,如嵌入式实时设备、移动通信设备、工业控制、数字多媒体、航空航天、国防等。对于某些应用,如果不能满足时间要求,就会造成严重的后果。此外,通信普遍存在于很多计算系统中且是不可忽视的。因此,有必要研究异构多核计算系统中考虑通信和时间限制的任务分配和任务调度问题。本文围绕异构多核系统中的任务分配和任务调度两个方面展开了研究,目标均是最小化系统的成本。成本指的是任务分配和调度问题中提到的诸如能耗和金钱等开销的抽象表示。假设在任务分配的研究中有足构多的处理核,而在任务调度的研究中只有有限个处理核。一般的任务分配和调度问题是NP完全问题。将给定的应用建模成一个有向无环的数据流图,探索了不同情况下的任务分配和任务调度方法。首先,研究了异构多核系统中在时间限制下考虑通信的任务分配问题(TCTAC)。针对TCTAC问题实例的数据流图是路径和树的特殊情况,采用动态规划方法设计了两种最优的任务分配算法,路径分配算法和树分配算法。路径分配算法用于求解路径型数据流图的应用,树分配算法用于求解树型数据流图的应用。接着,针对TCTAC问题实例的数据流图是通用的有向无环图的情况,建立了整数线性规划(ILP)模型,并提出了扩展树分配算法。ILP模型用于求解问题的最优解,但其计算复杂度随着有向无环图规模的增大呈指数级增长。当有向无环图的规模比较大时,ILP不能在可接受的计算时间内求出最优解。扩展树分配算法是一种启发式算法,它克服了ILP模型的不足,可以为大规模的问题实例提供次优解。然后,研究了异构多核系统中在时间限制下考虑通信的任务调度问题(TSCT)。针对TSCT问题实例的数据流图是有向无环图的情况,提出了一种启发式任务调度算法,比率局部时间限制(RLD)算法。RLD算法首先计算每个任务的优先级,确定任务的调度顺序。其次,依据给定的全局截止时间为每个任务分配一个局部截止时间。然后,按照调度顺序在每个任务的局部截止时间内调度该任务,并用一个成本/时间比例来确定每个任务的分配。最后,调整相关参数的值以获取更多成功的调度方案,并从所有满足全局截止时间的调度方案中选取具有最小成本的调度方案作为所有任务的最终调度方案。最后,针对TSCT问题实例的数据流图是有向无环图的情况,提出了改进的安全图聚集(ISGG)算法和比率局部时间限制分组(RLDG)算法。ISGG算法服务于RLDG算法,它将给定的数据流图中的所有任务分成若干个组,保证分组均衡并且使得分组后新形成的数据流图仍然是一个有向无环图,目的是减少任务调度时产生的通信开销和增加调度的灵活性。RLDG算法是一种启发式任务调度算法,其主要思想与RLD算法类似,不同之处在于它以组为单位进行任务调度。RLDG算法由于增加了一个分组步骤,其时间复杂度比RLD算法的时间复杂度略高。相较于RLD算法,RLDG算法可以取得更好的解。实验结果表明,与相关技术相比,本文所提出的算法可以极大地降低系统所消耗的总成本。