Abstract
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.
This work was supported in part by NSF grant DCR-8502884 and the Cornell NSF Supercomputing Center.
Chapter PDF
References
J. R. Allen and K. Kennedy, Automatic loop interchange. In Proceedings of the 1984 SIGPLAN Symposium on Compiler Construction, pages 233–246, June 1984.
A. Aiken and A. Nicolau. Loop Quantization: an Analysis and Algorithm. Technical Report 87-821, Cornell University, 1987.
A. Aiken and A. Nicolau. Perfect Pipelining: A New Loop Parallelization Technique. Technical Report 87-873, Cornell University, 1987.
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.
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.
R. Cytron. Doacross: beyond vectorization for multiprocessors. In Proceedings of the 1986 International Conference on Parallel Processing, pages 836–844, August 1986.
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.
J. A. Fisher. Trace Scheduling: a technique for global microcode compaction. IEEE Transactions on Computers, C-30(7):478–90, July 1981.
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.
D. Kuck. Parallel processing of ordinary programs. In Advances in Computers, pages 119–179, Academic Press, New York, 1976.
L. Lamport. The parallel execution of DO loops. Communications of the ACM, 17(2):83–93, February 1974.
A. Munshi and B. Simons. Scheduling Sequential Loops on Parallel Processors. Technical Report 5546, IBM, 1987.
A. Nicolau. Loop Quantization, or Unwinding Done Right. Technical Report 85-709, Cornell University, 1985.
A. Nicolau. Uniform parallelism exploitation in ordinary programs. In Proceedings of the 1985 International Conference on Parallel Processing, pages 614–618, August 1985.
G. D. Plotkin. A structural approach to operational semantics. Text prepared at University of Aarhus.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aiken, A., Nicolau, A. (1988). Perfect pipelining: A new loop parallelization technique. In: Ganzinger, H. (eds) ESOP '88. ESOP 1988. Lecture Notes in Computer Science, vol 300. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-19027-9_15
Download citation
DOI: https://doi.org/10.1007/3-540-19027-9_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-19027-1
Online ISBN: 978-3-540-38941-5
eBook Packages: Springer Book Archive