A program auto-parallelizer based on the component technology of optimizing compiler construction

Article

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.

References

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 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. 8.
    Drozdov, A.Yu., The Component Approach to Constructing Optimizing Compilers, Programmirovanie, 2009, no. 5.Google Scholar
  9. 9.
    Aho, V., Sethi, R., and Ullman, J.D., Compilers: Principles, Techniques, and Tools, Reading: Addison-Wesley, 1986.Google Scholar
  10. 10.
    Ellis, J.R., Bulldog: A Compiler for VLIW Architectures, MIT Press, 1985.Google Scholar
  11. 11.
    Grune, D., Bal, H.E., Jacobs, C.J.H., and Langendoen, K.G., Modern Compiler Design, Wiley, 2000.Google Scholar
  12. 12.
    Allen, R. and Kennedy, K., Optimizing Compilers for Modern Architectures, Academic, 2002.Google Scholar
  13. 13.
    Muchnick, S.S., Advanced Compiler Design and Implementation, San Francisco: Kauffman, 1997.Google Scholar
  14. 14.
    Banerjee, U., Loop Transformations for Restructuring Compilers, Kluwer, 1993.Google Scholar
  15. 15.
    Banerjee, U., Dependence Analysis, Kluwer, 1997.Google Scholar
  16. 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. 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. 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. 19.
    Girkar, M. and Polychronopoulos, C.D., Extracting Task-Level Parallelism, ACM, July, 1995.Google Scholar
  20. 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. 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. 22.
    Cousot, P. and Cousot, R., Abstract Interpretation Framework, J. Logic and Computation, 1992, vol. 2, no. 4. pp. 511–547.MATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    Stoltz, E.J., Intermediate Compiler Analysis via Reference Chaining, Thesis, Portland State University, January, 1995.Google Scholar
  24. 24.
    Blume, W. and Eigenmann, R., Symbolic Range Propagation, University of Illinois at Urbana-Champaign, Sept. 20, 1994.Google Scholar
  25. 25.
    Blume, W. and Eigenmann R., Demand-Driven, Symbolic Range Propagation, University of Illinois at Urbana-Champaign.Google Scholar
  26. 26.
    Simson, L.T., Value-Driven Redundancy Elimination, Thesis, Rice University, Houston, Texas, April, 1996.Google Scholar
  27. 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. 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. 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. 30.
    Voevodin, V.V. and Voevodin, Vl.V., Parallel’nye vychisleniya (Parallel Computing), St.-Petersburg: BHV, 2002.Google Scholar
  31. 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. 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. 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. 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. 35.
    Ghiya, R., Practical Techniques for Interprocedural Heap Analysis, McGill University, School of Computing Science, Montreal, January, 1996.Google Scholar
  36. 36.
    Cooper, K.D. and Kennedy, K., Fast Interprocedural Alias Analysis, Rice University, 1989.Google Scholar
  37. 37.
    Steensgaard, B., Points-to Analysis in Almost Linear Time, Microsoft Research, 1996.Google Scholar
  38. 38.
    Cooper, K.D. and Kennedy, K., Interprocedural Side-Effect Analysis in Linear Time, Rice University, 1988.Google Scholar
  39. 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. 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. 41.
    Drozdov, A.Y. and Vladislavlev, V.E., Interprocedural Analysis of Pointers, Informatsionnye Tekhnologii, 2005, Appendix no. 2, February, 2005.Google Scholar
  42. 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. 43.
    Drozdov, A.Y. and Kan, A.V. Analysis of Interprocedural Value Numbering, Komp’yutery v uchebnom protsesse, 2005, no, 6.Google Scholar
  44. 44.
  45. 45.
  46. 46.
  47. 47.
  48. 48.
  49. 49.
    Johnson, R.C., Efficient Program Analysis Using Dependence Flow Graphs, Ph.D. Dissertation, Cornell University, August, 1994.Google Scholar
  50. 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. 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. 52.

Copyright information

© Pleiades Publishing, Ltd. 2009

Authors and Affiliations

  1. 1.Lebedev Institute of Precise Mechanics and Computer EngineeringRussian Academy of SciencesMoscowRussia

Personalised recommendations