计算机科学2004V01.31N9-3
多重循环的软件流水:比较和提高
李文龙汤志忠
(清华大学计算机科学与技术系 北京100084)
摘要循环井行化是并行编译的核心问题之一。许多科学计算程序的太部分执行时间花费在循环上.有效开发循环
中的并行性将提高整个程序的执行羲率。多重循环最为常见,固此井行化多重循环具有重要的理论和现实意义。现代
处理器中硬件资源迅速增长,也使得在整个多堆循环空问中开发井行性成为必要。目前太多教软件流水算法只对最内
层循环,仅有少数的算法对多重循环进行软件流水t本文介绍几种多重循环的软件流水算法.比较它们之间的相似与
不同之处,为编译器实现中算法的选择提供了指导。
关键词较件流水.启动间距,并行性识别,多重循环
A
TheSoftware of and
PipeliningMultiloops:ComparisonImprovement
LIWen—LongTANG
Zhi—Zhong
of
(DepartmentComputer 100084)
Science&TechniquetTsinghuaUniversity。Beiiing
Abstract isoneof of lots
Loopsparallelizationkeyproblems ofScience
parallelizingcompile.A Computation
ofexecutiontimeOn
programsspendgreaterpart in will
loops.Effectivelydevelopingparallelismloops improve
executionoftheentire This introducessomeotsoItware
speed programpaper of
pipeliaingalgorithmsmuhiloops,and
similaritiesanddifIerencesbetweenthem.
compares
Software
Keywords pipelining,Initiationinterval,Parallelism,Multiloop
题,一个NP难题。因此,不得不寻找启发式,希望阻较小的时
1介绍
间复杂度,得到近优解。
软件流水01通过重叠不同循环体的执行来获得加速。在 最重要的启发式之一是模调度口]:所有循环体按照一十
一个循环体(Iteration)未执行完毕之前,可以启动下一个循
固定的启动间距依次启动,每个循环体的调度都相同。调度结
环体。二者的启动时刻之差称为启动间距(II:Initiation
果由装入、核心和排空三部分组