Advertisement

A First Step Towards Time Optimal Software Pipelining of Loops with Control Flows

  • Han-Saem Yun
  • Jihong Kim
  • Soo-Mook Moon
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2027)

Abstract

We address the problem of time optimal software pipelining of loops with control flows, one of the most difficult open problems in the area of parallelizing compilers.We present a necessary condition for loops with control flows to have equivalent time optimal programs, generalizing the result by Schwiegelshohn et al., which has been the most significant theoretical result on the problem. As part of the formal treatment of the problem, we propose a new formalization of software pipelining, which provides a basis of our proof as well as a new theoretical framework for software pipelining research. Being the first generalized result on the problem, our work described in this paper forms an important first step towards time optimal software pipelining.

Keywords

Parallel Program Sequential Program Execution Path List Schedule Software Pipeline 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    U. Schwiegelshohn, F. Gasperoni, and K. Ebcioğlu. On Optimal Parallelization of Arbitrary Loops. Journal of Parallel and Distributed Computing, 11(2):130–134, 1991.CrossRefGoogle Scholar
  2. 2.
    A. Aiken and A. Nicolau. Perfect Pipelining. In Proceedings of the Second European Symposium on Programming, pages 221–235, June 1988.Google Scholar
  3. 3.
    K. Ebcioğlu. A Compilation Technique for Software Pipelining of Loops with Conditional Jumps. In Proceedings of the 20th Annual Workshop on Microprogramming (Micro-20), pages 69–79, 1987.Google Scholar
  4. 4.
    A. Zaky and P. Sadayappan. Optimal Static Scheduling of Sequential Loops with Tests. In Proceedings of the International Conference on Parallel Processing, pages 130–137, 1989.Google Scholar
  5. 5.
    A. Aiken and A. Nicolau. Optimal Loop Parallelization. In Proceedings of the SIGPLAN 1988 Conference on Programming Language Design and Implementation, pages 308–317, 1988.Google Scholar
  6. 6.
    F. Gasperoni and U. Schwiegelshohn. Generating Close to Optimum Loop Schedules on Parallel Processors. Parallel Processing Letters, 4(4):391–403, 1994.CrossRefMathSciNetGoogle Scholar
  7. 7.
    F. Gasperoni and U. Schwiegelshohn. Optimal Loop Scheduling on Multiprocessors: A Pumping Lemma for p-Processor Schedules. In Proceedings of the 3rd International Conference on Parallel Computing Technologies, pages 51–56, 1995.Google Scholar
  8. 8.
    L.-F. Chao and E. Sha. Scheduling Data-Flow Graphs via Retiming and Unfolding. IEEE Transactions on Parallel and Distributed Systems, 8(12):1259–1267, 1997.CrossRefGoogle Scholar
  9. 9.
    P.-Y. Calland, A. Darte, and Y. Robert. Circuit Retiming Applied to Decomposed Software Pipelining. IEEE Transactions on Parallel and Distributed Systems, 9(1):24–35, 1998.CrossRefGoogle Scholar
  10. 10.
    F. Gasperoni and U. Schwiegelshohn. List Scheduling in the Presence of Branches: A Theoretical Evaluation. Theoretical Computer Science, 196(2):347–363, 1998.zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    A. Uht. Requirements for Optimal Execution of Loops with Tests. IEEE Transactions on Parallel and Distributed Systems, 3(5):573–581, 1992.CrossRefGoogle Scholar
  12. 12.
    S.-M. Moon and S. Carson. Generalized Multi-way Branch Unit for VLIW Microprocessors. IEEE Transactions on Parallel and Distributed Systems, pages 850–862, 1995.Google Scholar
  13. 13.
    K. Ebcioğlu. Some Design Ideas for a VLIW Architecture for Sequential Natured Software. In Proceedings of IFIP WG 10.3 Working Conference on Parallel Processing, pages 3–21, 1988.Google Scholar
  14. 14.
    A. Aiken, A. Nicolau, and S. Novack. Resource-Constrained Software Pipelining. IEEE Transactions on Parallel and Distributed Systems, 6(12):1248–1270, 1995.CrossRefGoogle Scholar
  15. 15.
    S.-M. Moon and K. Ebcioğlu. Parallelizing Non-numerical Code with Selective Scheduling and Software Pipelining. ACM Transactions on Programming Languages and Systems, pages 853–898, 1997.Google Scholar
  16. 16.
    V. Allan, R. Jones, R. Lee, and S. Allan. Software Pipelining. ACM Computing Surveys, 27(3):367–432, 1995.CrossRefGoogle Scholar
  17. 17.
    D. Kuck, R. Kuhn, D. Padua, B. Leasure, and M. Wolfe. Dependence Graphs and Compiler Optimizations. In SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 207–218, 1981.Google Scholar
  18. 18.
    J. Farrante, K. Ottenstein, and J. Warren. The Program Dependence Graph and Its Use in Optimization. ACM Transactions on Programming Languages and Systems, 9(3):319–349, 1987.CrossRefGoogle Scholar
  19. 19.
    K. Pingali, M. Beck, R. Johnson, M. Moudgill, and P. Stodghill. Dependence Flow Graphs: An Algebraic Approach to Program Dependences. In Proceedings of the 1991 Symposium on Principles of Programming Languages, pages 67–78, 1991.Google Scholar
  20. 20.
    M. Lam. Software Pipelining: An Effective Scheduling Technique for VLIW Machines. In Proceedings of the SIGPLAN 1988 Conference on Programming Language Design and Implementation, pages 318–328, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Han-Saem Yun
    • 1
  • Jihong Kim
    • 1
  • Soo-Mook Moon
    • 2
  1. 1.School of Computer Science and EngineeringSeoulKorea
  2. 2.School of Electrical EngineeringSeoul National UniversitySeoulKorea

Personalised recommendations