This Article 
 Bibliographic References 
 Add to: 
An Empirical Study of Fortran Programs for Parallelizing Compilers
July 1990 (vol. 1 no. 3)
pp. 356-364

Some results are reported from an empirical study of program characteristics, that are important in parallelizing compiler writers, especially in the area of data dependence analysis and program transformations. The state of the art in data dependence analysis and some parallel execution techniques are examined. The major findings are included. Many subscripts contain symbolic terms with unknown values. A few methods of determining their values at compile time are evaluated. Array references with coupled subscripts appear quite frequently; these subscripts must be handled simultaneously in a dependence test, rather than being handled separately as in current test algorithms. Nonzero coefficients of loop indexes in most subscripts are found to be simple: they are either 1 or -1. This allows an exact real-valued test to be as accurate as an exact integer-valued test for one-dimensional or two-dimensional arrays. Dependencies with uncertain distance are found to be rather common, and one of the main reasons is the frequent appearance of symbolic terms with unknown values.

[1] J. R. Allen, "Dependence analysis for subscripted variables and its application to program transformations," Ph.D. dissertation, Dept. Math. Sci., Rice Univ., May 1983.
[2] J. R. Allen and K. Kennedy, "Automatic translation of Fortran programs to vector form," Dep. Comput. Sci., Rice Univ., Houston, TX, Rice Comp TR84-9, July 1984.
[3] U. Banerjee, "Data dependence in ordinary programs," Dep. Comput. Sci., Univ. of Illinois at Urbana-Champaign, Rep. 76-837, Nov. 1976.
[4] U. Banerjee, "Speedup of ordinary programs," Ph.D dissertation, Dep. Comput. Sci. Univ. Illinois, Urbana-Champaign, Rep. No. UIUCDCS-R-79-989, 1979.
[5] U. Banerjee,Dependence Analysis for Supercomputing, Kluwer Academic Publishers, Norwell, Mass., 1988.
[6] J. Banning, "A method for determining the side effects of procedure calls," Ph.D. dissertation, Standford Univ., Aug. 1978.
[7] M. Burke and R. Cytron, "Interprocedural dependence analysis and parallelization," inProc. SIG-PLAN '86 Symp. Comp. Construct., Palo Alto, CA, June 1986, pp. 162-175.
[8] D. Callahan, K. Cooper, K. Kennedy, and L. Torczan, "Interprocedural constant propagation," inProc. ACM SIGPLAN "86 Symp. Compiler Construction, ACM SIGPLAN Notices, vol. 21, no. 6, June 1986.
[9] R. G. Cytron, "Compile-time scheduling and optimization for multiprocessors," Ph.D. dissertation, Univ. of Illinois at Urbana-Champaign, DCS Rep. UIUCDCS-R-84-1177, 1984.
[10] J. Dongarra, J. Bunch, C. Moler, and G. W. Stewart,LINPACK Users' Guide, SIAM, Philadelphia, PA, 1979, Spring-Verlag, Heidelberg, 1976.
[11] J. R. Ellis, J. A. Fisher, J. C. Ruttenberg, and A. Nicolau, "Parallel processing: A smart compiler and a dumb machine," inProc. SIGPLAN 84 Symp. Compiler Construction, ACM SIGPLAN Notices, June 1984.
[12] Z. Fang, P. Yew, P. Tang, and C. Zhu, "Dynamic processor self-scheduling for general parallel nested loops," inProc. 1987 Int. Conf. Parallel Processing, Aug. 1987, pp. 1-10.
[13] D. Kuck, R. Kuhn, B. Leasure, and M. Wolfe, "The structure of an advanced vectorizer for pipelined processors," inProc. COMPSAC 80, 4th Int. Comput. Software Appl. Conf., Oct. 1980, pp. 709-715.
[14] 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.
[15] D. Kuck, A. Sameh, R. Cytron, A. Veidenbaum,et al."The effects of program restructuring, algorithm change, and architecture choice on program performance," inProc. 1984 Int. Conf. Parallel Processing, Aug. 1984, pp. 129-138.
[16] D. J. Kuck,The Structure of Computers and Computations, vol. 1. New York: Wiley, 1978.
[17] D. J. Kuck, Y. Muraoka, and S.-C. Chen, "On the number of operations simultaneously executable in Fortran-like programs and their resulting speedup,"IEEE Trans. Comput., vol. C-21, no. 12, pp. 1293-1310, Dec. 1972.
[18] A. Lichnewsky and F. Thomasset, "Introducing symbolic problem solving techniques in the dependence testing phase of a vectorizer," inProc. 1988 Int. Conf. Supercomput., St. Malo, France, July 1988.
[19] Z. Li, P.-C. Yew, and C.-Q. Zhu, "An efficient data dependence analysis for parallelizing compilers,"IEEE Trans. Parallel Distributed Syst., vol. 1, no. 1, pp. 26-34, Jan. 1990.
[20] A. Nicolau and J. A. Fisher, "Measuring the parallelism available for very long instruction word architectures,"IEEE Trans. Comput., vol. C-33, no. 11, pp. 968-976, Nov. 1984.
[21] D. A. Padua, "Multiprocessors: Discussion of theoretical and practical problems," Ph.D. dissertation, Univ. of Illinois at Urbana-Champaign, Rep. UIUCDCS-R-79-990, Nov. 1979.
[22] J.-K. Peir, "Program partitioning and synchronization on multiprocessor systems," Ph.D dissertation, Rep. UIUCDCS-R-86-1259, Dep. Comput. Sci., Univ. of Illinois at Urbana-Champaign, Urbana, IL, Mar. 1986.
[23] C. D. Polychronopoulos, D. J. Kuck, and D. A. Padua, "Optimal processor allocation of programs on multiprocessor systems," inProc. 1986 Int. Conf. Parallel Processing, Aug. 1986.
[24] W. Shang and J. A. B. Fortes, "Independent partitioning of algorithms with uniform dependencies," inProc. 1988 Int. Conf. Parallel Processing, Aug. 1988, pp. 26-33.
[25] B.J. Smith, "A pipelined, shared resource MIMD computer," inProc. 1978 Int. Conf. Parallel Processing, Aug. 1978, pp. 6-8.
[26] P. Tang, P. Yew, and C. Zhu, "Impact of self-scheduling order on performance of multiprocessor systems," inProc. 1988 ACM Int. Conf. Supercomput., July 1988, pp. 593-603.
[27] P. Tang, P. Yew, and C. Zhu, "Algorithms for generating data-level synchronization instructions," Center for Supercomputing Res. and Develop., Univ. of Illinois at Urbana-Champaign, Rep. 733, Urbana, Jan. 1988.
[28] M. J. Wolfe, "Optimizing supercompilers for supercomputers," Ph.D. thesis, Ctr. Supercomput. Res. and Development, Univ. Illinois, Urbana-Champaign, 1980.
[29] C. Zhu and P. Yew, "A scheme to enforce data dependences on large multiprocessor systems,"IEEE Trans. Software Eng., vol. SE-13, no. 6, pp. 726-739, June 1987.

Index Terms:
Index Termsarray references; Fortran programs; parallelizing compilers; program characteristics; data dependence analysis; program transformations; integer-valued test; FORTRAN; program compilers
Z. Shen, Z. Li, P.C. Yew, "An Empirical Study of Fortran Programs for Parallelizing Compilers," IEEE Transactions on Parallel and Distributed Systems, vol. 1, no. 3, pp. 356-364, July 1990, doi:10.1109/71.80162
Usage of this product signifies your acceptance of the Terms of Use.