A program auto-parallelizer based on the component technology of optimizing compiler construction
Article
First Online:
Received:
- 60 Downloads
- 2 Citations
Abstract
This paper describes a program auto-parallelizer that is based on the component approach to constructing optimizing compilers; the parallelizer is included in the technological chain of gcc. Details of using analytical and optimization components for constructing an auto-parallelizer and a parallelization algorithm using the OpenMP library are considered. Finally, we discuss the results of operation of the auto-parallelizer in terms of performance on a subset of problems in the Spec2006 and NAS parallel benchmarks packages.
Keywords
Parallel Loop Technological Chain Control Graph Data Flow Analysis Loop Tree
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.Wen-mei, H., Ryoo, S., Sain-Zee, U., Kelm, J.H., Gelado, L., Stone, S.S., Kidd, R.E., Baghsorkhi, S.S., Mahesri, A.A., Tsao, S.C., Navarro, N., Lumetta, S.S., Frank, M.I., and Patel, S.J., Implicit Parallel Programming Models for Thousand-Core Microprocessors, Proc. of the 44th Annual Design Automation Conf., 2007.Google Scholar
- 8.Drozdov, A.Yu., The Component Approach to Constructing Optimizing Compilers, Programmirovanie, 2009, no. 5.Google Scholar
- 9.Aho, V., Sethi, R., and Ullman, J.D., Compilers: Principles, Techniques, and Tools, Reading: Addison-Wesley, 1986.Google Scholar
- 10.Ellis, J.R., Bulldog: A Compiler for VLIW Architectures, MIT Press, 1985.Google Scholar
- 11.Grune, D., Bal, H.E., Jacobs, C.J.H., and Langendoen, K.G., Modern Compiler Design, Wiley, 2000.Google Scholar
- 12.Allen, R. and Kennedy, K., Optimizing Compilers for Modern Architectures, Academic, 2002.Google Scholar
- 13.Muchnick, S.S., Advanced Compiler Design and Implementation, San Francisco: Kauffman, 1997.Google Scholar
- 14.Banerjee, U., Loop Transformations for Restructuring Compilers, Kluwer, 1993.Google Scholar
- 15.Banerjee, U., Dependence Analysis, Kluwer, 1997.Google Scholar
- 16.Psarris, K. and Kyriakopoulos, K., Data Dependence Testing in Practice, The University of Texas at San Antonio, Division of Computer Science, San Antonio, TX 78249.Google Scholar
- 17.Petersen, P.M. and Padua, D.A., Experimental Evaluation of Some Data Dependence Tests (extended abstract), University of Illinois at Urbana-Champaign, Center for Supercomputing Research and Development, Urbana, Illinois, 6901.Google Scholar
- 18.Petersen, P.M. and Padua, D.A., Static and Dynamic Evaluation of Data Dependence Analysis, University of Illinois at Urbana-Champaign, Center for Supercomputing Research and Development, Urbana.Google Scholar
- 19.Girkar, M. and Polychronopoulos, C.D., Extracting Task-Level Parallelism, ACM, July, 1995.Google Scholar
- 20.Nicolau, A. and Novack, S., Trailblazing: A Hierarchical Approach to Percolation Scheduling, Proc. of the 1993 Int. Conf. on Parallel Processing, Department of Information and Computer Science, University of California, 1993.Google Scholar
- 21.Emami, M., A Practical Interprocedural Alias Analysis for Optimizing/Parallelizing’ Compiler, Master thesis, School of Computer Science, McGill University, August, 1993.Google Scholar
- 22.Cousot, P. and Cousot, R., Abstract Interpretation Framework, J. Logic and Computation, 1992, vol. 2, no. 4. pp. 511–547.MATHCrossRefMathSciNetGoogle Scholar
- 23.Stoltz, E.J., Intermediate Compiler Analysis via Reference Chaining, Thesis, Portland State University, January, 1995.Google Scholar
- 24.Blume, W. and Eigenmann, R., Symbolic Range Propagation, University of Illinois at Urbana-Champaign, Sept. 20, 1994.Google Scholar
- 25.Blume, W. and Eigenmann R., Demand-Driven, Symbolic Range Propagation, University of Illinois at Urbana-Champaign.Google Scholar
- 26.Simson, L.T., Value-Driven Redundancy Elimination, Thesis, Rice University, Houston, Texas, April, 1996.Google Scholar
- 27.Pend, T. and Padua, D., Efficient Building and Placing of Gating Functions, University of Illinois at Urbana-Champaign, Center for Supercomputing Research and Development, 1995.Google Scholar
- 28.Kwangkeun, Y. and Harrison III, W.L., Interprocedural Data Flow Analysis for Compile-Time Memory Management, University of Illinois at Urbana-Champaign, Center for Supercomputing Research and Development.Google Scholar
- 29.Duesterwald, E., Gupta, R., and Soffa, M.L., Demand-Driven Computation of Interprocedural Data Flow, Proc. Of the POPL’95, San Francisco, CA, USA, Department of Computer Science, University of Pittsburg, 1/95.Google Scholar
- 30.Voevodin, V.V. and Voevodin, Vl.V., Parallel’nye vychisleniya (Parallel Computing), St.-Petersburg: BHV, 2002.Google Scholar
- 31.Chase, D.R., Wegman, M., and Zadeck, F.K., Analysis of Pointers and Structures, ASM SIGPLAN’90 PLDI, June 20–22, 1990.Google Scholar
- 32.Yuan-Shin, Hwang, and Saltz, J., Compile-Time Analysis on Programs with Dynamic Pointer-Linked Data Structures, University of Maryland, Department of Computer Science, November 8, 1996.Google Scholar
- 33.Ghiya, R. and Hendren, L.J., Connection Analysis: A Practical Interprocedural Heap Analysis for C, Proc. of the Eighth Workshop on Languages and Compilers for Parallel Computing, Columbus, Ohio, August 10–12, 1995, McGill University, School of Computer Science, 1995.Google Scholar
- 34.Xinan, T., Ghiya, R., Hendren, L.J., and Gao, G.R., Heap Analysis and Optimizations for Threaded Programs, McGill University, School of Computing Science, 1997.Google Scholar
- 35.Ghiya, R., Practical Techniques for Interprocedural Heap Analysis, McGill University, School of Computing Science, Montreal, January, 1996.Google Scholar
- 36.Cooper, K.D. and Kennedy, K., Fast Interprocedural Alias Analysis, Rice University, 1989.Google Scholar
- 37.Steensgaard, B., Points-to Analysis in Almost Linear Time, Microsoft Research, 1996.Google Scholar
- 38.Cooper, K.D. and Kennedy, K., Interprocedural Side-Effect Analysis in Linear Time, Rice University, 1988.Google Scholar
- 39.Wilson, R.P. and Lam, M.S., Efficient Context-Sensitive Pointer Analysis for ‘Programs, Proc. of the ACM SIGPLAN’95 Conf. on Programming Language and Implementation, June 1995, pp. 1–12.Google Scholar
- 40.Drozdov, A.Y. and Novikov, S.V., An Efficient Algorithm for Constructing the Static Single Assignment Form, Informatsionnye Tekhnologii, 2005, no. 3.Google Scholar
- 41.Drozdov, A.Y. and Vladislavlev, V.E., Interprocedural Analysis of Pointers, Informatsionnye Tekhnologii, 2005, Appendix no. 2, February, 2005.Google Scholar
- 42.Drozdov, A.Y. and Syrkin, A.G., Methods of Context Interprocedural Propagation of Program Variable Properties, Informatsionnye Tekhnologii, 2005, Appendix no. 2, February, 2005.Google Scholar
- 43.Drozdov, A.Y. and Kan, A.V. Analysis of Interprocedural Value Numbering, Komp’yutery v uchebnom protsesse, 2005, no, 6.Google Scholar
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.Johnson, R.C., Efficient Program Analysis Using Dependence Flow Graphs, Ph.D. Dissertation, Cornell University, August, 1994.Google Scholar
- 50.Duesterwald, E., Gupta, R., and Soffa, M.L., A Practical Framework for Demand-Driven Interprocedural Data Flow Analysis, ASM SISPLAN-SIGACT Symp. on Principles of Programming Languages, University of Pittsburgh, 1995.Google Scholar
- 51.Horwitz, S., Reps, T., and Sagiv, M., Demand Interprocedural Dataflow Analysis, Proc. of the Third ASM SIGSOFT Symp. on Foundations of Software Engineering, October 10–13, 1995, Washington DC: University of Wisconsin, 1995.Google Scholar
- 52.
Copyright information
© Pleiades Publishing, Ltd. 2009