论文部分内容阅读
多核处理器的起跳主频比单核处理器低,性能更好,多核处理器已经成为当今的主流处理器。多核处理器根据系统的内核结构是否存在差异,可以分为同构多核处理器和异构多核处理器。异构多核处理器能更好地处理异构的应用程序,比如,快速复杂的核可以执行串行代码部分,而较简单的核则能并行处理数字,这样不仅能提高处理器系统的性能,而且能节省能耗。研究人员普遍相信异构多核处理器将是未来多核处理器发展的趋势,同时,异构多核处理器的发展也为任务调度与负载均衡的研究提供了广阔的发展空间。本文对现有的任务调度算法和任务调度模型进行改进,提出了一种负载均衡的异构多核处理器的任务调度算法,并对提出的算法进一步优化,充分考虑核间的负载均衡问题,本文主要工作包括以下几个方面:(1)对现有的调度模型和方法进行分析,提出了一种负载均衡的启发式任务调度算法,该算法考虑了多核处理器系统的异构性和任务间的依赖关系,将任务间的依赖关系用DAG(Directed Acyclic Graph)模型来刻画。首先,该算法将DAG图中表示的任务根据任务的入度值对任务集进行分层,经过分层处理的DAG图消除了任务间的数据依赖和控制依赖,能确保同层的任务尽可能的并行执行;然后,将每层内的任务调度到相应的处理器核上,在将任务调度到处理器核上时,充分考虑核的异构性,根据核的计算能力给不同的核分配不同的负载。模拟实验结果表明,提出的任务调度策略在调度长度和负载均衡方面要优于其他的任务调度算法,优化了异构多核处理器系统的性能。(2)通过分析任务间负载均衡的影响因素,发现提出的调度算法虽然避免了误差的累积现象,但是存在单个核误差并没有减少的问题,这在一定程度上影响了核间的负载均衡,针对此问题,考虑负载均衡影响因素,改进提出的任务调度算法,即在任务组调度阶段,在找到使核总耗时刚好小于等于核参考值的最后一个任务时,还可以继续从最小的任务开始增加任务,尽可能的减少单个核的误差。为了进一步提高计算精度,设计了一种误差下降调度方案,该方案将误差大的核上的任务集进行合并,再将合并的任务集重新调度到相应的核上,保证单个核的误差降到最低。