Abstract
We introduce a framework for the analysis of memory reference sets addressed by induction variables without closed forms. This framework relies on a new data structure, the Value Evolution Graph (VEG), which models the global flow of scalar and array values within a program. We describe the application of our framework to array data-flow analysis, privatization, and dependence analysis. This results in the automatic parallelization of loops that contain arrays indexed by induction variables without closed forms. We implemented this framework in the Polaris research compiler. We present experimental results on a set of codes from the PERFECT, SPEC, and NCSA benchmark suites.
Research supported in part by NSF CAREER Award CCR-9734471, NSF Grant ACI-9872126, NSF Grant EIA-0103742, NSF Grant ACI-0326350, NSF Grant ACI-0113971, DOE ASCI ASAP Level 2 Grant B347886.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ammarguellat, Z., Harrison, W.L.: III. Automatic recognition of induction variables and recurrence relations by abstract interpretation. In: ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation, White Plains, N.Y, June 1990, pp. 283–295 (1990)
Ballance, R.A., Maccabe, A.B., Ottenstein, K.J.: The Program Dependence Web: A representation supporting control-, data-, and demand-driven interpretation of imperative languages. In: ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation, White Plains, N.Y, June 1990, pp. 257–271 (1990)
Blume, W., Eigenmann, R.: Symbolic Range Propagation. Technical Report 1381, Univ of Illinois at Urbana-Champaign, Cntr for Supercomputing R&D (1994)
Callahan, D.: Recognizing and parallelizing bounded recurrences. In: Banerjee, U., Nicolau, A., Gelernter, D., Padua, D.A. (eds.) LCPC 1991. LNCS, vol. 589, pp. 169–185. Springer, Heidelberg (1992)
Chen, S.-C., Kuck, D.J.: Time and parallel processor bounds for linear recurrence systems. IEEE Transactions on Computers 24(7), 701–717 (1975)
Fisher, A.L., Ghuloum, A.M.: Parallelizing complex scans and reductions. In: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, pp. 135–146. ACM Press, New York (1994)
Gerlek, M.P., Stolz, E., Wolfe, M.: Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form. ACM Transactions on Programming Languages and Systems 17(1), 85–122 (1995)
Ghuloum, A.M., Fisher, A.L.: Flattening and parallelizing irregular, recurrent loop nests. In: Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming, Santa Barbara, CA, pp. 58–67. ACM Press, New York (1995)
Gu, J., Li, Z., Lee, G.: Symbolic array dataflow analysis for array privatization and program parallelization. In: Proceedings of the 1995 ACM/IEEE conference on Supercomputing (CDROM), p. 47. ACM Press, New York (1995)
Gupta, M., Mukhopadhyay, S., Sinha, N.: Automatic parallelization of recursive procedures. International Journal of Parallel Programming 28(6), 537–562 (2000)
Gupta, R.: Optimizing array bound checks using flow analysis. ACM Letters on Programming Languages and Systems 2(1–4), 135–150 (1993)
Haghighat, M.R., Polychronopoulos, C.D.: Symbolic analysis for parallelizing compilers. ACM Transactions on Programming Languages and Systems 18(4), 477–518 (1996)
Hall, M., Anderson, J., Amarasinghe, S., Murphy, B., Liao, S.-W., Bugnion, E., Lam, M.: Maximizing Multiprocessor Performance with the SUIF Compiler. IEEE Computer 29(12), 84–89 (1996)
Hoeflinger, J.: Interprocedural Parallelization Using Memory Classification Analysis. PhD thesis, University of Illinois, Urbana-Champaign (August 1998)
JàJà, J.: An Introduction to Parallel Algorithms. Addison–Wesley, Reading (1992)
Liao, S.-W., Diwan, A., Jr., R.P.Bosch, Ghuloum, A.M., Lam, M.S.: SUIF explorer: An interactive and interprocedural parallelizer. In: Principles Practice of Parallel Programming, pp. 37–48 (1999)
Lin, Y., Padua, D.: Analysis of irregular single-indexed array accesses and its application in compiler optimizations. In: International Conference on Compiler Construction, pp. 202–218 (2000)
Lin, Y., Padua, D.A.: On the automatic parallelization of sparse and irregular fortran programs. In: O’Hallaron, D.R. (ed.) LCR 1998. LNCS, vol. 1511, pp. 41–56. Springer, Heidelberg (1998)
Pottenger, W., Eigenmann, R.: Parallelization in the presence of generalized induction and reduction variables. Technical Report 1396, Univ. of Illinois at UrbanaChampaign, Center for Supercomp. R&D (January 1995)
Pugh, W.: The Omega test: A fast and practical integer programming algorithm for dependence analysis. In: Supercomputing 1991, Albuquerque, N.M, November 1991, pp. 4–13 (1991)
Rauchwerger, L., Padua, D.A.: The LRPD Test: Speculative Run-Time Parallelization of Loops with Privatization and Reduction Parallelization. IEEE Transactions on Parallel and Distributed Systems 10(2), 160–180 (1999)
Rus, S., Hoeflinger, J., Rauchwerger, L.: Hybrid analysis: static & dynamic memory reference analysis. International Journal of Parallel Programming 31(3), 251–283 (2003)
Rus, S., Zhang, D., Rauchwerger, L.: The value evolution graph and its use in memory reference analysis. In: 13th Conference on Parallel Architecture and Compilation Techniques, pp. 243–254. IEEE Computer Society Press, Los Alamitos (2004)
Spezialetti, M., Gupta, R.: Loop monotonic statements. IEEE Transactions on Software Engineering 21(6), 497–505 (1995)
Triolet, R., Irigoin, F., Feautrier, P.: Direct parallelization of Call statements. In: ACM 1986 Symp. on Comp. Constr., Palo Alto, CA, June 1986, pp. 175–185 (1986)
Tu, P., Padua, D.: Gated SSA–based demand-driven symbolic analysis for parallelizing compilers. In: Proceedings of the 9th ACM International Conference on Supercomputing, Barcelona, Spain, January 1995, pp. 414–423 (1995)
Wolfe, M.: Beyond induction variables. In: ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation, San Francisco, Calif., June 1992, pp. 162–174 (1992)
Wu, P., Cohen, A., Hoeflinger, J., Padua, D.: Monotonic evolution: An alternative to induction variable substitution for dependence analysis. In: 2001 ACM International Conference on Supercomputing, Sorrento, Italy, pp. 78–91 (2001)
Wu, P., Cohen, A., Padua, D.: Induction variable analysis without idiom recognition: Beyond monotonicity. In: 2001 Workshop on Lang. and Compilers for Par. Computing, Cumberland Falls, KY, pp. 427–441 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rus, S., Zhang, D., Rauchwerger, L. (2005). Automatic Parallelization Using the Value Evolution Graph. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_27
Download citation
DOI: https://doi.org/10.1007/11532378_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28009-5
Online ISBN: 978-3-540-31813-2
eBook Packages: Computer ScienceComputer Science (R0)