当前位置:问答库>论文摘要

题目:多核/众核处理器并行程序运行时环境的研究与实现

关键词:多核/众核处理器;运行时系统;并行编程模型;自适应调度;核资源分配;任务窃取

  摘要

近年来,依靠半导体和微电子技术的进步使得处理器技术不断的向前发展,多核处理器已经成为当今处理器发展的主流,而且正在呈现从多核处理器向众核处理器发展的趋势。尽管多核/众核处理器的核数增加保证了计算和数据处理能力的持续提高,但是如果没有足够的编程语言和软件层面的支持,那么这种硬件能力的提升并不能直接转化为程序性能的提升,这是多核/众核处理器时代所面临的巨大挑战之一。 基于多核/众核处理器运行时环境,本文着重从两个方面研究了提升并行程序性能的自适应调度方法,具体如下: 1.传统的运行时系统以任务窃取算法(work-stealing)为核心,然而算法无法满足并行程序对核资源需求的不断变化,容易出现核资源的浪费。本文提出一种自适应的任务窃取算法AWS(Adaptive Work-stealing),该算法通过对任务窃取特征参数的周期性统计与反馈,动态的调节应用程序所使用的核资源数以近似匹配并行度。AWS算法的优点在于消除了传统运行时系统的静态分配方法所产生的弊端,提高了核资源的利用率。 3.传统运行时系统中应用程序之间相互独立,彼此之间不能交换信息,当多种应用程序并发执行时,由于缺乏一种统一的资源分配协调机制,容易造成对处理器核资源的恶性竞争,使得系统整体的吞吐量降低。本文提出一种自适应的协同调度算法DPAE(Dynamic Processor Allocation based on EQUI),该算法能够针对多应用并发执行时对处理器核资源的“期望值”进行动态的调整其使用量,使得所有正在运行的并行程序都能够公平并且有效的利用核资源,避免出现核资源的大量竞争和浪费。 基于两级调度算法,本文设计并实现了一个支持上层细粒度任务并行编程模型的运行时系统APR(Adaptive Parallel Runtime)。程序员在编写并行程序的时候只需要关注并行程序的逻辑划分,而不需要关注底层的任务调度以及资源适配。通过与Cilk的标准benchmark测试程序进行对比,可以看出该运行时系统在性能以及扩展性方面达到了预期,本论文设计的运行时系统对今后的并行编程的研究具有很好的指导意义。