随着多核处理器的普及,多核技术也逐渐成熟。但在一些特定系统中,如何发挥多核处理器的效率,提高系统性能又成为一个新的研究课题。基于多核处理器的并行系统的任务调度就是其中一个新的研究热点。
尽管目前对多核处理器上的任务调度技术开展了一些研究,然而并没有明确的针对多核系统上的任务调度的标准和规范。基于多核处理器并行系统的任务调度技术还是一个不成熟的领域,还需要我们不断的研究和探索。
本文对基于多核处理器并行系统的调度问题作了深入研究,给出了基于该系统的任务调度模型,及适用于基于多核处理器并行系统的调度算法。该算法根据基于多核处理器的并行系统的特点,在任务调度之前引入任务分配策略,并引入任务复制,进一步对算法进行优化。算法共分为三大部分:任务分配、任务复制及任务调度。任务分配是一个基于迭代的启发式算法,在任务分配操作中,将属于同一进程的线程分配给处理器。而任务复制则使处理器之间相互独立,将那些属于不同处理器,并存在通信的线程复制到同一个处理器上执行。任务分配、任务复制的目的都是为了减少通信开销。最后是任务调度,在前面两轮操作之后,处理器之间互相独立,本文采用遗传算法对每个处理器进行独立的任务调度,以提高调度效率。
本文采用随机图及在Simies模拟的多核平台上对本文算法进行了测试。在使用随机图测试中,本文从任务规模、CCRs、分支数三个方面对算法进行测试,验证了算法的有效性及调度性能。然后在Simics模拟的多核平台上对算法进一步进行测试,进一步证实了算法在真实环境下的有效性。
通过实验的结果证明,本文算法缩短了调度时间,与传统的遗传算法相比,具有明显的优势。