论文部分内容阅读
近年来,多核处理器以其高性能和低能耗逐渐代替传统单核处理器,成为商用处理器的主流,但在多核处理器架构上编程由于需要考虑核间任务负载均衡、通信同步开销仍然很复杂。数据流编程模型作为面向领域的编程模型被提出,简化多核架构下的编程。但由于多核处理器中含有层次性的存储结构,数据流程序执行性能受限于对存储系统的使用。 针对这些问题,设计并实现了面向X86多核处理器的数据流程序编译优化系统。系统以COStream数据流程序作为输入,输出经过优化后的目标代码。针对X86多核处理器平台的特点,进行两个层次的优化:任务调度优化和处理器核间缓存优化。任务调度优化首先在预处理阶段采用扩大调度策略粗化并行粒度和提高程序局部性,然后利用数据流程序中的数据并行性和任务并行性实现负载均衡,并构造对应的软件流水线调度。多核核间缓存优化针对目标系统的层次性缓存结构特征,一方面通过消除缓存伪共享减少多核并行运行时相互间的干扰,另一方面根据逻辑线程间的通信分布实现逻辑线程到处理器核的映射,提高共享缓存的利用率。 以通用X86-64多核处理器作为实验平台,选取数字媒体领域典型的算法作为测试程序,测试和分析数据流编译的性能。实验结果表明,编译优化后的测试程序基本达到线性加速比,验证了编译系统的有效性。