摘要
循环是程序中蕴含并行性最为丰富的一种结构,因此成为并行化编译最主要的对象.但循环内的过程调用严重妨碍了循环的数据相关性分析,使得循环语句潜在的大量并行性得不到开发.本文提出的循环嵌入方法使部分含过程调用循环语句的并行化成为可能,对部分用其它过程间分析技术也能开发其并行性的这一类循环语句采用循环嵌入方法,并行化开销低,并且分析更精确.采用循环嵌入方法还可降低程序由于多次过程调用带来的调度开销.这一方法在作者开发的自动并行化编译系统AFT(automaticPortrantransformer)中得到了实现,对Spec92测试程序包的试验结果表明了本文提出的方法是行之有效的.
Loops is a kind of structure in which the parallelism is the most abundant, so it is the most important source of parallelism. However procedure calls in loops obstruct greatly the data dependence analysis in loops and make the potential plentiful parallelism in loops can not be developed. In this paper, a method called loop embedding is presented.Loop embedding can make parallelizing the partial of DO loops with procedure calls become possible. For the partial of DO loops with procedure calls, in other interprocedural data dependence analysis technologies, it's parallelism can be developed, but in loop embedding, the cost is less. In loop embedding, the overhead, which calling the same procedure many times leads to, can be decreased. The scheme introduced in this paper was implemented in AFT (automatic Fortran transformer), a parallelizing compiler the authors developed. The test result on Spec92 illustrates the effectiveness of their method.
出处
《软件学报》
EI
CSCD
北大核心
1997年第11期809-816,共8页
Journal of Software
基金
国家自然科学基金
国家863高科技项目基金
国家攀登计划基金
上海市重点学科基金
关键词
过程嵌入
循环嵌入
过程调用
并行编译系统
Procedure embedding, procedure cloning, loop embedding, data dependence analysis, speedup