Scheduling sequential loops on parallel processors
Automatic parallelization of code written in a sequential language such as FORTRAN is of great importance for compilers for parallel computers. We first discuss the problem of automatically parallelizing iterative loops on multiprocessors and then derive a scheduling problem that models a technique for the automatic parallelization. We present some polynomial time solutions for special cases of the scheduling problem along with an NP-completeness proof of a simple variant of the problem. We also analyze a naive heuristic for solving the general scheduling problem and prove that it gives a result that is at most a factor of three greater than optimal. Finally, we derive for the original compiler problem an approximation algorithm and present some test results. In the tests, which were run on a well known numerical analysis package, our technique always equalled and frequently surpassed the results obtained by the best known technique in the literature. Our approach is unique and represents one of the first attempts at understanding the complexity theoretic aspects of the problem of parallelizing sequential loops.
KeywordsSchedule Problem Start Time Problem Instance Dependence Graph Data Dependence
Unable to display preview. Download preview PDF.
- [All]J. R. Allen, "Dependence Analysis for Subscripted Variables and its application to program transformations," Ph.D. Thesis, University of Texas at Austin.Google Scholar
- [Cyt]R. G. Cytron, "Compile-time Scheduling and Optimization for Asynchronous machines," PhD Thesis, University of Illinois at Urbana-Champagne, 1984.Google Scholar
- [Ken]N. W. Kennedy, "Automatic translation of Fortran programs to vector form," Rice Technical report 476-029-4, Oct. 1980.Google Scholar
- [KKLW]D. J. Kuck, R. H. Kuhn, B. Leasure, M. Wolfe, "The structure of an advanced vectorizer for pipeline processors," 4th International computer software and applications conference, 1980.Google Scholar
- [Lam]L. Lamport, "The parallel execution of DO loops," Commun. ACM 17, 1974, pp. 83–93.Google Scholar
- [Mun]A. A. Munshi, unpublished manuscript.Google Scholar
- [SS]B. B. Simons, M. Sipser, "On scheduling unit-length jobs with multiple release time/deadline intervals," Operations Research, Vol. 32, 1984, pp. 80–86.Google Scholar