A Polynomial Time Method for Optimal Software Pipelining

Software pipelining is one of the most important loop scheduling methods used by parallelizing compilers. It determines a static parallel schedule — a periodic pattern — to overlap instructions of a loop body from different iterations. The main contributions of this paper are the following: First, we propose to express the fine-grain loop scheduling problem (in particular, software pipelining) on the basis of the mathematical formulation of r-periodic scheduling. This formulation overcomes some of the problems encountered by existing software pipelining methods. Second, we demonstrate the feasibility of the proposed method by presenting a polynomial time algorithm to find an optimal schedule in this r-periodic form that maximizes the computation rate (in fact, we show that this schedule maximizes the computation rate theoretically possible).

[1]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[2]  Guang R. Gao,et al.  A timed Petri-net model for fine-grain loop scheduling , 1991, ACM-SIGPLAN Symposium on Programming Language Design and Implementation.

[3]  Robert E. Tarjan,et al.  Faster Scaling Algorithms for Network Problems , 1989, SIAM J. Comput..

[4]  Kemal Ebcioglu,et al.  A global resource-constrained parallelization technique , 1989 .

[5]  Ron Cytron,et al.  Doacross: Beyond Vectorization for Multiprocessors , 1986, ICPP.

[6]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[7]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[8]  Alex Aiken,et al.  Compaction-Based Parallelization , 1988 .

[9]  Alexander Aiken,et al.  Optimal loop parallelization , 1988, PLDI '88.

[10]  Raymond Reiter,et al.  Scheduling Parallel Computations , 1968, J. ACM.

[11]  Kemal Ebcioglu,et al.  A compilation technique for software pipelining of loops with conditional jumps , 1987, MICRO 20.

[12]  Roy F. Touzeau A Fortran compiler for the FPS-164 scientific computer , 1984, SIGPLAN '84.

[13]  Guang R. Gao,et al.  A timed Petri-net model for fine-grain loop scheduling , 1991, PLDI '91.

[14]  Vicki H. Allan,et al.  Software pipelining: a comparison and improvement , 1990, [1990] Proceedings of the 23rd Annual Workshop and Symposium@m_MICRO 23: Microprogramming and Microarchitecture.