This Article 
 Bibliographic References 
 Add to: 
Region Scheduling: An Approach for Detecting and Redistributing Parallelism
April 1990 (vol. 16 no. 4)
pp. 421-431

Region scheduling, a technique applicable to both fine-grain and coarse-grain parallelism, uses a program representation that divides a program into regions consisting of source and intermediate level statements and permits the expression of both data and control dependencies. Guided by estimates of the parallelism present in regions, the region scheduler redistributes code, thus providing opportunities for parallelism in those regions containing insufficient parallelism compared to the capabilities of the executing architecture. The program representation and the transformations are applicable to both structured and unstructured programs, making region scheduling useful for a wide range of applications. The results of experiments conducted using the technique in the generation of code for a reconfigurable long instruction word architecture are presented. The advantages of region scheduling over trace scheduling are discussed.

[1] A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[2] J.R. Allen and K. Kennedy, "Automatic loop interchange," inProc. SIGPLAN '84 Symp. Comp. Construct., Montreal, Canada, July 1984.
[3] M. Burke, R. Cytron, J. Ferrante, W. Hsieh, V. Sarkar, and D. Shields, "Automatic discovery of parallelism: A tool and an experiment." inProc. ACM/SIGPLAN Symp. Parallel Programming: Experience with Applications, Languages and Systems. July, 1988, pp. 77-84.
[4] J. Ellis,Bulldog: A Compiler for VLIW Architectures, MIT Press, Cambridge, MA, 1986, pp. 260-261.
[5] J. Ferrante, K. Ottenstein, and J. Warren, "The program dependence graph and its use in optimization,"ACM Trans. Program. Lang. Syst., vol. 9, no. 3, pp. 319-349, July 1987.
[6] J. A. Fisher, "Trace scheduling: A technique for global microcode compaction,"IEEE Trans. Comput., vol. C-30, pp. 478-490, July 1981.
[7] J. A. Fisher, "VLIW architectures: Supercomputing via overlapped execution," inProc. Second Int. Conf. Supercomputing, vol. 1, May 1987, pp. 353-361.
[8] R. Gupta, "A reconfigurabhle LIW architecture and its compiler," Ph.D. dissertation, Tech. Rep. 87-3, Dep. Comput. Sci., Univ. of Pittsburgh, Aug. 1987.
[9] R. Gupta and M. L. Soffa, "A reconfigurable LIW architecture," inProc. Int. Conf. Parallel Processing, Aug. 1987, pp. 893-900.
[10] J. Hennessy and T. Gross, "Postpass Code Optimization of Pipeline Constraints,"ACM Trans. Programming Languages and Systems, Vol. 5, No. 3, New York, July 1983, pp. 422-448.
[11] D. J. Kuck, R.H. Kuhn, B. Leasure, D.A. Padua, and M. Wolfe, "Compiler transformation of dependence graphs," inConf. Rec. 8th ACM Symp. Principles Program. Languages, Williamsburg, VA, Jan. 1981.
[12] D. J. Kuck,The Structure of Computers and Computations, vol. 1. New York: Wiley, 1978.
[13] D. A. Padua, D. J. Kuck, and D. Lawrie. "High-speed multiprocessors and compilation techniques,"IEEE Trans. Comput., vol. C-29, no. 9, pp. 763-776, 1980.
[14] L. L. Pollock and M. L. Soffa, "A incremental version of iterative data flow analysis,"IEEE Trans. Software Eng., vol. 15, no. 12, Dec. 1989.
[15] V. Sarkar and J. Hennessy, "Compile-time partitioning and scheduling of parallel programs," inProc. SIGPLAN Symp. Compiler Construction, July 1986, pp. 17-26.
[16] R. Sites, "Instruction ordering for the Cray-1 computer," Dep. EECS, Univ. California at San Diego, Tech. Rep. CS-023, July 1978.

Index Terms:
region scheduling; code generation; redistributing parallelism; fine-grain; coarse-grain parallelism; program representation; reconfigurable long instruction word architecture; trace scheduling; parallel programming; program compilers; scheduling.
R. Gupta, M.L. Soffa, "Region Scheduling: An Approach for Detecting and Redistributing Parallelism," IEEE Transactions on Software Engineering, vol. 16, no. 4, pp. 421-431, April 1990, doi:10.1109/32.54294
Usage of this product signifies your acceptance of the Terms of Use.