Perfect pipelining: A new loop parallelization technique

  • Alexander Aiken
  • Alexandru Nicolau
5. Implementation Of Programming Languages
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)


Parallelizing compilers do not handle loops in a satisfactory manner. Fine-grain transformations capture irregular parallelism inside a loop body not amenable to coarser approaches but have limited ability to exploit parallelism across iterations. Coarse methods sacrifice irregular forms of parallelism in favor of pipelining (overlapping) iterations. In this paper we present a new transformation, Perfect Pipelining, that bridges the gap between these fine- and coarse-grain transformations while retaining the desirable features of both. This is accomplished even in the presence of conditional branches and resource constraints. To make our claims rigorous, we develop a formalism for parallelization. The formalism can also be used to compare transformations across computational models. As an illustration, we show that Doacross, a transformation intended for synchronous and asynchronous multiprocessors, can be expressed as a restriction of Perfect Pipelining.


Simple Rule Operational Semantic Program Graph Loop Body Core Transformation 


  1. [AK84]
    J. R. Allen and K. Kennedy, Automatic loop interchange. In Proceedings of the 1984 SIGPLAN Symposium on Compiler Construction, pages 233–246, June 1984.Google Scholar
  2. [AN87a]
    A. Aiken and A. Nicolau. Loop Quantization: an Analysis and Algorithm. Technical Report 87-821, Cornell University, 1987.Google Scholar
  3. [AN87b]
    A. Aiken and A. Nicolau. Perfect Pipelining: A New Loop Parallelization Technique. Technical Report 87-873, Cornell University, 1987.Google Scholar
  4. [AN88]
    A. Aiken and A. Nicolau. A development environment for horizontal microcode. IEEE Transactions on Software Engineering, To Appear March 1988. Also available as Cornell Technical Report TR 86-785.Google Scholar
  5. [CCK87]
    D. Callahan, J. Cocke, and K. Kennedy, Estimating interlock and improving balance for pipelined architectures. In Proceedings of the 1987 International Conference on Parallel Processing, pages 297–304, August 1987.Google Scholar
  6. [Cyt86]
    R. Cytron. Doacross: beyond vectorization for multiprocessors. In Proceedings of the 1986 International Conference on Parallel Processing, pages 836–844, August 1986.Google Scholar
  7. [FERN84]
    J. A. Fisher, J. R. Ellis, J. C. Ruttenberg, and A. Nicolau. Parallel processing: a smart compiler and a dumb machine. In Proceedings of the 1984 SIGPLAN Symposium on Compiler Construction, pages 37–47, June 1984.Google Scholar
  8. [Fis81]
    J. A. Fisher. Trace Scheduling: a technique for global microcode compaction. IEEE Transactions on Computers, C-30(7):478–90, July 1981.Google Scholar
  9. [KN85]
    K. Karplus and A. Nicolau. Efficient hardware for multi-way jumps and pre-fetches. In Proceedings of the 18th Annual Workshop on Microprogramming, pages 11–18, December 1985.Google Scholar
  10. [Kuc76]
    D. Kuck. Parallel processing of ordinary programs. In Advances in Computers, pages 119–179, Academic Press, New York, 1976.Google Scholar
  11. [Lam74]
    L. Lamport. The parallel execution of DO loops. Communications of the ACM, 17(2):83–93, February 1974.CrossRefGoogle Scholar
  12. [MS87]
    A. Munshi and B. Simons. Scheduling Sequential Loops on Parallel Processors. Technical Report 5546, IBM, 1987.Google Scholar
  13. [Nic85a]
    A. Nicolau. Loop Quantization, or Unwinding Done Right. Technical Report 85-709, Cornell University, 1985.Google Scholar
  14. [Nic85b]
    A. Nicolau. Uniform parallelism exploitation in ordinary programs. In Proceedings of the 1985 International Conference on Parallel Processing, pages 614–618, August 1985.Google Scholar
  15. [Plo]
    G. D. Plotkin. A structural approach to operational semantics. Text prepared at University of Aarhus.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Alexander Aiken
    • 1
  • Alexandru Nicolau
    • 1
  1. 1.Computer Science DepartmentCornell UniversityIthacaUSA

Personalised recommendations