A polynomial time method for optimal software pipelining

  • Vincent H. Van Dongen
  • Guang R. Gao
  • Qi Ning
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 634)


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).


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    A. Aiken. Compaction-based parallelization. (PhD thesis), Technical Report 88-922, Cornell University, 1988.Google Scholar
  2. [2]
    A. Aiken and A. Nicolau. Optimal loop parallelization. In Proceedings of the 1988 ACM SIGPLAN Conference on Programming Languages Design and Implementation, June 1988.Google Scholar
  3. [3]
    A. Aiken and A. Nicolau. A realistic resource-constrained software pipelining algorithm. In Proceedings of the Third Workshop on Programming Languages and Compilers for Parallel Computing, Irvine, CA, August 1990.Google Scholar
  4. [4]
    Ron Cytron. Doacross: Beyond vectorization for multiprocessors. Proceedings of the 1986 International Conference on Parallel Processing, pages 836–844, August 1986.Google Scholar
  5. [5]
    K. Ebcioglu. A compilation technique for software pipelining of loops with conditional jumps. In Proceedings of the 20th Annual Workshop on Microprogramming, December 1987.Google Scholar
  6. [6]
    K. Ebcioglu and A. Nicolau. A global resource-constrained parallelization technique. In Proceedings of the ACM SIGARCH International Conference on Supercomputing, June 1989.Google Scholar
  7. [7]
    H. Gabow and R. Tarjan. Faster scaling algorithms for network problems. SIAM J. Computing, October 1989.Google Scholar
  8. [8]
    G. R. Gao, Y. B. Wong, and Qi Ning. A Petri-Net model for fine-grain loop scheduling. In Proceedings of the '91 ACM-SIGPLAN Conference on Programming Language Design and Implementation, pages 204–218, Toronto, Canada, June 1991.Google Scholar
  9. [9]
    J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, Inc., 1990.Google Scholar
  10. [10]
    R. B. Jones and H. A. Allan. Software pipelining: A comparison and improvement. In Proceedings of the 23th Annual Workshop on Microprogramming and Microarchitecture, pages 46–56, Orlando, Florida, November 1990.Google Scholar
  11. [11]
    Monica Lam. Software pipelining: An effective scheduling technique for VLIW machines. In Proceedings of the 1988 ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 318–328, Atlanta, GA, June 1988.Google Scholar
  12. [12]
    Eugene Lawler. Combinatorial Optimization: Networks and Matroids. Saunders College Publishing, 1976.Google Scholar
  13. [13]
    A. Nicolau, K. Pingali, and A. Aiken. Fine-grain compilation for pipelined machines. Technical Report TR-88-934, Department of Computer Science, Cornell University, Ithaca, NY, 1988.Google Scholar
  14. [14]
    Pierre Peladeau. On the length of the cyclic frustrum in a sdsp-pn. Technical Report ACAPS Technical Note 31, McGill University, Montreal, 1991.Google Scholar
  15. [15]
    B. R. Rau and C. D. Glaeser. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing. In Proceedings of the 14th Annual Workshop on Microprogramming, pages 183–198, 1981.Google Scholar
  16. [16]
    Raymond Reiter. Scheduling parallel computations. Journal of the ACM, 15(4):590–599, 1968.Google Scholar
  17. [17]
    R. F. Touzeau. A FORTRAN compiler for the FPS-164 scientific computer. In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction, pages 48–57, June 1984.Google Scholar
  18. [18]
    V. Van Dongen and G. Gao. A polynomial time method for optimal software pipelining. Technical Report ACAPS Tech. Memo 37, McGill University, School of Computer Science, 1992.Google Scholar
  19. [19]
    A Zaky and P. Sadayappan. Optimal static scheduling of sequential loops on multiprocessors. In Proceedings of the 1989 Internat. Conf. on Parallel Processing, volume 3, pages 130–137, 1989.Google Scholar
  20. [20]
    Hans Zima and Barbara Chapman. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Vincent H. Van Dongen
    • 1
  • Guang R. Gao
    • 2
  • Qi Ning
    • 2
  1. 1.Centre de recherche informatique de MontréalMontréalCanada
  2. 2.School of Computer ScienceMcGill UniversityMontréalCanada

Personalised recommendations