论文部分内容阅读
传统的单核处理器受到功耗、漏电量和电磁干扰的影响,性能提升已成为瓶颈。为了提高处理器的整体性能,多核处理器逐渐取代单核处理器,在保持工作频率的条件下,降低了处理器的平均功耗,获得了更高的能效。另一方面,并行编程模型为多核平台上的并行计算提供了显示地利用底层硬件资源的接口,但提高了编程的复杂性。数据流编程模型的出现解决了这么问题,它不仅充分利用了底层的硬件资源,而且提供了简洁、高效、可扩展的编程方法。针对当前数据流编程模型的编程效率和执行效率差等问题,设计并实现了COStream数据流编程语言及相应的优化的编译系统。COStream对标准C语言语法进行了修改和扩展,加入了支持数据流操作的语法结构:composite, operator和stream。COStream语言经过编译系统的词法分析、语法分析、语义分析等阶段后生成中间语法树,然后由该语法树建立中间代码表示:同步数据流图。结合IBM X10并行编程语言的特性,编译系统确立了三种优化策略:针对X10语言的代码生成优化、针对SDF图的任务划分优化、针对底层硬件资源的通信优化。代码生成优化减少了生成的X10代码量;任务划分优化在负载均衡的基础上,避免了死锁的产生,同时减少了通信开销;通信优化在机器间通信、机器内部线程间通信、线程内部通信方面进行了区分和优化,减少了通信开销。通过三种优化策略,编译系统生成X10代码,并调用X10自身的编译器生成最终的目标代码。实验以通用多核处理器和集群为平台,选取数字媒体领域典型的算法作为测试程序,对三种优化策略进行了测试和对比分析。实验结果表明,设计的三种编译优化策略都获得了较大的性能提升,但仍有很大的改进空间。