论文部分内容阅读
伴随着国内外相关研究机构对高性能计算领域关注度的增强,处理器主频和芯片集成度得到极大地提升。目前,由于芯片面积的限制以及集成度逐渐接近上限,处理器性能的提升遭遇瓶颈。鉴于处理器的发展状况和趋势,多核处理器应运而生,并成为当前最为流行的处理器。同时,围绕着多核处理器任务调度算法的研究工作也如火如荼地展开,并形成静态任务调度和动态任务调度两类调度算法。由于静态任务调度算法无法实时地、动态地根据处理器运行状态进行调整,不能适用于日益多样化的应用,所以动态任务调度成为多处理器任务调度研究的重点。 在常见的动态任务调度算法分析结果的基础上,针对其任务初次分配的随机性和忽略任务间通信开销等缺点和不足,本文提出基于异构多核处理器依赖任务的动态调度算法。该算法采用基于集中式任务调度模式的任务调度机制,使用全局任务队列和本地任务队列作为任务调度结构,并以此为基础设计任务调度器,同时将任务调度过程分为任务分配阶段和任务执行阶段。任务分配阶段,主处理器首先扫描全局任务队列,判断全局队列中的任务是否可调度并构建可调度任务列表。同时,采用离线分析技术获取任务计算属性,统计后继任务的执行时间并引入到可调度任务的期望值计算中,将任务计算开销计入处理器任务执行代价值中。然后,利用期望值和执行代价计算可调度任务的调度概率,并以调度概率值的大小为调度准则选择协处理器。最后,在满足本地任务调度长度的情况下实现任务分配。任务执行阶段,针对任务挂起导致的处理器空等待现象,在满足提前任务最早开始执行时间的前提下,本文算法借鉴任务复制思想将不在同一个协处理器的前驱任务进行复制。为保证多处理器系统在下次任务分配前能够维持负载均衡状态,当处理器发出请求任务调度时,本文算法采用任务迁移技术实现多核处理器系统的负载再均衡。 最后,为证明新算法在解决依赖任务动态调度问题的有效性,本文采用公平合理性能评估参数,使用TGFF随机任务图生成器获取测试案例,设计四种测试方案,在Simics仿真平台对新算法性能进行模拟测试,并对实验结果进行统计对比分析。实验结果表明:本文提出的依赖任务动态调度算法能够较为有效地解决任务分配不准确且忽略不同处理器之间的通信开销等问题,在任务总体完成时间及加速比等性能方面有较大提升。