Skip to main content

A polynomial time method for optimal software pipelining

  • Conference paper
  • First Online:
Parallel Processing: CONPAR 92—VAPP V (VAPP 1992, CONPAR 1992)

Abstract

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Aiken. Compaction-based parallelization. (PhD thesis), Technical Report 88-922, Cornell University, 1988.

    Google Scholar 

  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. 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. Ron Cytron. Doacross: Beyond vectorization for multiprocessors. Proceedings of the 1986 International Conference on Parallel Processing, pages 836–844, August 1986.

    Google Scholar 

  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. 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. H. Gabow and R. Tarjan. Faster scaling algorithms for network problems. SIAM J. Computing, October 1989.

    Google Scholar 

  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. J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, Inc., 1990.

    Google Scholar 

  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. 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. Eugene Lawler. Combinatorial Optimization: Networks and Matroids. Saunders College Publishing, 1976.

    Google Scholar 

  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. 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. 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. Raymond Reiter. Scheduling parallel computations. Journal of the ACM, 15(4):590–599, 1968.

    Google Scholar 

  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. 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. 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. Hans Zima and Barbara Chapman. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Luc Bougé Michel Cosnard Yves Robert Denis Trystram

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Van Dongen, V.H., Gao, G.R., Ning, Q. (1992). A polynomial time method for optimal software pipelining. In: Bougé, L., Cosnard, M., Robert, Y., Trystram, D. (eds) Parallel Processing: CONPAR 92—VAPP V. VAPP CONPAR 1992 1992. Lecture Notes in Computer Science, vol 634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55895-0_462

Download citation

  • DOI: https://doi.org/10.1007/3-540-55895-0_462

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55895-8

  • Online ISBN: 978-3-540-47306-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics