Skip to main content
Log in

Decomposed software pipelining: A new perspective and a new approach

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Software pipelining is an efficient instruction-level loop scheduling technique, but existing software pipelining approaches have not been widely used in practical and commercial compilers. This is mainly because resource constraints and the cyclic data dependencies make software pipelining very complicated and difficult to apply. In this paper we present a new perspective on software pipelining in which it is decomposed into two subproblems—one is free from cyclic data dependencies and can be effectively solved by the list scheduling technique, and the other is free from resource constraints and can be easily solved by classical polynomial-time algorithms of graph theory. Based on this new perspective, we develop a new instruction-level loop scheduling approach, call DEcomposed Software Pipelining (DESP).

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. G. S. Almasi and A. Gottieb,Highly Parallel Computing, Benjamin/Cummings Publishing Company, Inc. (1989).

  2. B. Su and J. Wang, Loop-carried Dependence and the General URPR Software Pipelining Approach,Proc. of the 24th Hawaii Int'l. Conf. on System Sciences (HICSS-24) (January 1991).

  3. A. E. Charlesworth, An Approach to Scientific Array processing: The Architectural Design on the AP-120B/FPS-164 Family.Computer,14(9):18–27 (1981).

    Google Scholar 

  4. F. Gasperoni, Compilation techniques for VLIW architectures, Technical Report 435, New York University (March 1989).

  5. B. Su, S. Ding, and J. Xia, URPR—an Extension of URCR for Software Pipelining,Proc. of the 19th Conf. on Microprogramming and Microarchitecture, pp. 104–108 (October 1986).

  6. R. F. Touzeau, A FORTRAN compiler for the FPS-164 Scientific Computer,Proc. of the ACM SIGPLAN'84 Symp. on Compiler Construction (1984).

  7. B. R. Rau and C.D. Glaeser, Some Scheduling Techniques and an Easily Schedulable Horizontal Architecture for High Performance Scientific Computing,Proc. of the 14th Conf. on Microprogramming and Microarchitecture, pp. 183–198 (October 1981).

  8. A. Aiken and A. Nicolau, Loop Quantization: An Analysis and Algorithm. Technical Report 87–821, Department of Computer Science, Cornell University, Ithaca, New York (March 1987).

    Google Scholar 

  9. K. Ebcioglu, A Compilation Technique for Software Pipelining of Loops with Conditional Jumps.Proc. of the 20th Conf. on Microprogamming and Microarchitecture, pp. 69–79 (December 1987).

  10. M. S. Lam, A Systolic Array Optimizing Compiler, PhD. Thesis, Carnegie Mellon University (May 1987).

  11. A. Aiken and A. Nicolau, Perfect Pipelining: A New Loop Parallelization Technique. In H. Ganziger (ed.),ESOP'88, Springer-Verlag,Lectures Notes in Computer Science,300:221–235 (1988).

  12. M. Lam, Software Pipelining: An Effective Scheduling Technique for VLIW Machines,Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation, Atlanta (June 1988).

  13. T. Nakatani and K. Ebcioglu, Using a Lookahead Window in a Compaction-based Parallelizing Compiler,Proc. of the 23rd Conf. on Microprogramming and Microarchitecture (1990).

  14. G. Gao, Y.-B. Wong, and Q. Ning, A Timed Petri-Net Model for Fine-Grain Loop Scheduling.Proc. of the 1991 ACM SIGPLAN Conf. on Programming Language Design and Implementation, Toronto, Canada, pp. 204–218 (June 1991).

  15. B. Su and J. Wang, GURPR*: A New Global Software Pipelining Algorithm,Proc. of the 24th Conf. on Microprogramming and Microarchitecture (1991).

  16. F. Gasperoni and U. Schwiegelshohn, An efficient loop algorithm with close to optimum performance, submitted for publication (1992).

  17. A. Munier and C. Hanen, A study of the cyclic scheduling problem on parallel processors. Technical Report 766, LRI, University of Paris-Sud, Orsay (July 1992).

    Google Scholar 

  18. C. Eisenbeis and D. Windheiser, Optimal software pipelining in presence of resource constraints,Proc. of the Int'l. Conf. on Parallel Computing Technologies, Obninsk, Russia (September 1993).

  19. J. C. Dehnert and R. Towle, Compiling for the Cydra 5.Journal of Supercomputing,7(1/2) (January 1993).

  20. R. Huff, Lefetime-Sensitive Modulo Scheduling,Proc. of SIGPLAN Conf. on Programming Languages Design and Implementation, Albuquerque, New Mexico, pp. 258–267 (June 1933).

  21. P.Y.-T. Hsu, Highly Concurrent Scaler Processing. PhD. Thesis, University of Illinois at Urbana-Champaign (January 1986).

  22. A. Munier, Résolution d'un problème d'ordonnancement cyclique à iterations indépendantes et contraintes de ressources.Recherche Opérationnelle/Operations Research,25(2):161–182 (1982).

    MathSciNet  Google Scholar 

  23. V. H. Van Dongen, G. R. Gao, and Q. Ning, A Polynomial Time Method for Optimal Software Pipelining,Parallel Processing: CONPAR 92-VAPP V, Lyon, France, pp. 613–624,Second Joint International Conference on Vector and Parallel Processing (September 1992).

  24. F. Gasperoni and U. Schwiegelshohn, Efficient algorithms for cyclic scheduling, Technical Report RC 17068, IBM Research Division (July 1991).

  25. R. M. Karp and J. B. Orlin, Parametric Shortest Path Algorithms with an Application to Cyclic Staffing,Discrete Applied Mathematics,3:37–45 (1981).

    Article  MATH  MathSciNet  Google Scholar 

  26. J. R. Ellis,Bulldog: A Compiler for VLIW Architectures, MIT Press, Cambridge, Massachusetts (1986).

    Google Scholar 

  27. J. Fisher, Trace Scheduling: A Technique for Global Microcode Compaction,IEEE Trans. on Computers,30(7):478–490 (1981).

    Google Scholar 

  28. J. A. Fisher, J. R. Ellis, J. C. Ruttenberg, and A. Nicolau, Parallel Processing: a Smart Compiler and a Dumb Machine,ACM,19:37–47 (June 1984).

    Google Scholar 

  29. A. Nicolau, Percolation Scheduling: A Parallel Compilation Technique. Technical Report TR 85-678, Department of Computer Science, Cornell University (May 1985).

  30. C. Eisenbeis and D. Windheiser, A new class of algorithms for software pipelining with resource constraints, Rapport de recherche, INRIA (1993).

  31. E. L. Lawler, Optimal Cycles in Doubly Weighted Directed Linear Graphs, In P. Rosenstiehl (ed.),Theory of Graphs—Int'l. Symp., Rome, Gordon and Breach, pp. 209–213 (1966).

  32. J. Wang and C. Eisenbeis, Decomposed software pipelining. Rapport de Recherche 1838, INRIA (January 1993).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wang, J., Eisenbeis, C., Jourdan, M. et al. Decomposed software pipelining: A new perspective and a new approach. Int J Parallel Prog 22, 351–373 (1994). https://doi.org/10.1007/BF02577737

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02577737

Key Words

Navigation