Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Lifetime-Sensitive Modulo Scheduling in a Production Environment
Llosa J., Ayguadé E., Gonzalez A., Valero M., Eckhardt J. IEEE Transactions on Computers50 (3):234-249,2001.Type:Article
Date Reviewed: May 9 2002

A technique for scheduling instructions using software pipelining and “kernel scheduling” is described. This technique takes advantage of the instruction-level parallelism inherent in many loops, but writers of optimizing compilers confront several conflicting goals:

  • a low “initiation interval” is desired so as to increase throughput through the pipe;
  • the “stage-count” must be kept small; and
  • register pressure must be reduced lest there is no feasible schedule.

Swing modulo scheduling (SMS) is the term the authors give for their heuristic approach for computing such schedules while trying to satisfy all three goals. This is done without the use of backtracking through the solution space of schedules.

What makes this paper exciting is its extensive discussion of industrial experience using SMS in an optimizing compiler. The target architecture is a quad-issue VLIW-based processor, and the constraints of real hardware (for example, special-purpose registers, distribution of functional units) made for important modifications, refinements, and improvements to the algorithm. The results are very encouraging; for example, a straight recompile of an MPEG2 video decoder yielded an 11 percent increase in speed.

Unless the reader is familiar with optimizing compilers and dependence graphs, they would do well to have by their side either Allen and Kennedy [1] or Muchnick [2]. For those who are interested in code generation and the application of software pipelining algorithms in practice, section 6 (“SMS in a Production Compiler”) would be enough reason to read the whole paper.

Reviewer:  Michael Zastre Review #: CR125919 (0205-0271)
1) Allen, R.; Kennedy, K. Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann, San Francisco, 2001.
2) Muchnick, S. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, 1997.
Bookmark and Share
 
Patterns (D.2.11 ... )
 
 
Optimization (D.3.4 ... )
 
 
Parallelism And Concurrency (F.1.2 ... )
 
 
Sequencing And Scheduling (F.2.2 ... )
 
 
Modes Of Computation (F.1.2 )
 
 
Nonnumerical Algorithms And Problems (F.2.2 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Patterns": Date
Process patterns
Ambler S., Cambridge University Press, New York, NY, 1998. Type: Book (9780521645683)
Feb 1 1999
More process patterns
Ambler S., Cambridge University Press, New York, NY, 1999. Type: Book (9780521652629)
Feb 1 2000
The joy of patterns: using patterns for enterprise development
Goldfedder B., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2002.  176, Type: Book (9780201657593)
May 7 2002
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy