Abstract
The list scheduling algorithm is a popular scheduling engine used in most, if not all, industrial instruction schedulers. However this technique has several drawbacks, especially in the context of modulo scheduling. One such problem is the need to restart scheduling from scratch whenever scheduling fails at the current value of the initiation interval. Another problem of list scheduling is that the order in which the instructions are selected for scheduling is constrained to be a topological sort of the scheduling graph, minus the loop-carried dependencies.
We present a new instruction scheduling technique, suitable for block scheduling and modulo scheduling, which addresses these restrictions, while allowing efficient implementations. The technique is fully implemented, as part of a software pipeliner we developed for an experimental version of the Cray T3D ™ cft77 Fortran compiler.
Preview
Unable to display preview. Download preview PDF.
References
T. L. Adam, K. M. Chandy, J. R. Dickson “A Comparison of List Schedules for Parallel Processing Systems” Communications of the ACM, Vol. 17, no. 12, Dec. 1974.
B. Dupont de Dinechin “StaCS: A Static Control Superscalar Architecture” MICRO-25 / 25th Annual International Symposium on Microarchitecture, Portland, Dec. 1992.
B. Dupont de Dinechin “An Introduction to Simplex Scheduling” PACT'94, Montreal, Aug. 1994.
B. Dupont de Dinechin “Simplex Scheduling: More than Lifetime-Sensitive Instruction Scheduling” PRISM research report 1994.22, available under anonymous ftp to ftp.prism.uvsq.fr, July 94.
B. Dupont de Dinechin “Fast Modulo Scheduling Under the Simplex Scheduling Framework” PRISM research report 1995.01, available under anonymous ftp to ftp.prism.uvsq.fr, Jan 95.
C. Eisenbeis, D. Windheiser “Optimal Software Pipelining in Presence of Resource Constraints” PaCT-93, Obninsk, Russia, Sept. 1993.
P. Feautrier “Fine-Grain Scheduling Under Resource Constraints” 7th Annual Workshop on Lang. and Compilers for Parallel Computing, LNCS, Ithaca, NY, Aug 1994.
F. Gasperoni, U. Schwiegelshohn “Scheduling Loops on Parallel Processors: A Simple Algorithm with Close to Optimum Performance” Parallel Processing: COMPAR'92-VAPP V, LNCS 634, June 1992.
R. Govindarajan, E. R. Altman, G. R. Gao “Minimizing Register Requirements under Resource-Constrained Rate-Optimal Software Pipelining” MICRO-27 / 27h Annual International Symposium on Microarchitecture, San Jose, Dec. 1994.
R. A. Huff “Lifetime-Sensitive Modulo Scheduling” Proceedings of the SIGPLAN'93 Conference on Programming Language Design and Implementation, Albuquerque, June 1993.
M. Lam “A Systolic Array Optimizing Compiler” Ph. D. Thesis, Carnegie Mellon University, May 1987.
B. R. Rau, C. D. Glaeser “Some Scheduling Techniques and an Easily Schedulable Horizontal Architecture for High Performance Scientific Computing” IEEE / ACM 14th Annual Microprogramming Workshop, Oct. 1981.
B. R. Rau “Iterative Modulo Scheduling: An Algorithm for Software Pipelining Loops” IEEE / ACM 27th Annual Microprogramming Workshop, San Jose, California, Nov. 1994.
M. D. Tiemann “The GNU Instruction Scheduler” Cygnus Technical Report, available at URL http://www.cygnus.com/library-dir.html, Jul 1989.
J. Wang, C. Eisenbeis “Decomposed Software Pipelining: a New Approach to Exploit Instruction Level Parallelism for Loop Programs” IFIP WG 10.3, Orlando, Florida, Jan. 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dupont de Dinechin, B. (1996). Insertion scheduling: An alternative to list scheduling for modulo schedulers. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014190
Download citation
DOI: https://doi.org/10.1007/BFb0014190
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60765-6
Online ISBN: 978-3-540-49446-1
eBook Packages: Springer Book Archive