摘要
数据流编程模型作为高效的并行编程模型被广泛应用于媒体处理和网络服务等应用中.然而,多/众核结构的底层计算、存储和通信的复杂性对数据流程序的性能提出了新的挑战,数据流程序在不同的多/众核结构上的可移植性和可编程性也为编译器提出了更高的要求.针对数据流程序所面临的问题,提出并设计实现一种数据流编程模型——COStream数据流编程语言及其编译系统,提高了数据流程序的可编程性.COStream在C语言文法的基础上加入表征数据流图的文法结构,文法结构清晰,具有良好的可重用性和可扩展性.COStream编译系统利用同步数据流图作为中间表示,根据目标系统的结构特点对数据流程序进行并行优化并构造流水线调度,进而生成高效的可并行执行的目标代码.在X86多核架构下实现了COStream编译系统,并对该领域的多个实验程序进行了测试,测试结果表明,COStream具有良好的可扩展性和高加速比.
Dataflow programming has been applied to a large number of media processing and network processing applications. But the complexity of underlying computation, storage and communication in the multicore systems puts forward new challenge for the performance of data-flow application. Besides, the programmability and portability are also the challenges for the compiler. To deal with these problems, we design and implement a new dataflow programming language COStream and the compilation system. The COStream language aims to provide a natural, high-level syntax that improves programmer productivity in the streaming domain. At the same time, the language imposes a hierarchical structure on the stream graph that enables novel representations and optimizations within the COStream compiler. It translates COStream program to the dataflow graph as a middle representation. According to the characteristics of the target architecture, the compiler applies parallel optimization, constructs the pipeline scheduling and generates the object code. We implement the compilation framework on X86 architecture and the experiments demonstrate that the COStream is scalable with processor cores and nearly reaches linear speedup on processors.
出处
《计算机学报》
EI
CSCD
北大核心
2013年第10期1993-2006,共14页
Chinese Journal of Computers
基金
国家"八六三"高技术研究发展计划项目基金(2012AA010902)
高等学校博士学科点专项科研基金(20120142110089)
中国科学院计算技术研究所国家重点实验室开放基金(ICT-ARCH200804)
IBM X10 Innovation基金资助~~