Skip to main content
Log in

The hierarchical task graph as a universal intermediate representation

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

This paper presents an intermediate program representation called the Hierarchical Task Graph (HTG), and argues that it is not only suitable as the basis for program optimization and code generation, but it fully encapsulates program parallelism at all levels of granularity. As such, the HTG can be used as the basis for a variety of restructuring and optimization techniques, and hence as the target for front-end compilers as well as the input to source and code generators. Our implementation and testing of the HTG in the Parafrase-2 compiler has demonstrated its suitability and versatility as a potentially universal intermediate representation. In addition to encapsulating semantic information, data and control dependences, the HTG provides more information vital to efficient code generation and optimizations related to parallel code generation. In particular, we introduce the notion of precedence between nodes of the structure whose grain size can range from atomic operations to entire subprograms.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. M. Furnari, Compiling scheme into the HTG, InProc. of the 1992 Workshop on Parallel Languages and Compilers (August 1991).

  2. M. Girkar, Functional Parallelism: Theoretical Foundations and Implementation, PhD. Thesis, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign (January 1992).

    Google Scholar 

  3. J. Moreira, The Design and Performance of an Auto-scheduling Environment, PhD. Thesis, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign, In pregaration, (September 1993).

    Google Scholar 

  4. C. Beckmann, Hardware and Software for Functional and Fine Grain Parallelism, PhD. Thesis, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign (1993).

    Google Scholar 

  5. A. V. Aho, R. Sethi and J. D. Ullman,Compilers: Principles, Techniques and Tools, Addison-Wesley, Reading, Massachusetts (March 1986).

    Google Scholar 

  6. J. T. Schwartz and M. Sharir, A design for optimizations of the bitvectoring class, Technical Report, Courant Computer Science Report No. 538, Courant Institute of Mathematical Sciences, New York University (September 1979).

  7. J. McGrawet al. SISAL: Streams and iteration in a single assignment language, language reference manual, Version 1.2. Technical Report M-146, LLNL (March 1985).

  8. V. Sarkar, Partitioning and Scheduling Parallel Programs for Execution on Multiprocessors, PhD. Thesis, Computer Systems Laboratory, Department of Electrical Engineering and Computer Science, Stanford University (April 1987).

  9. J. R. Allen, Dependence analysis for subscripted variables and its application to program transformations, PhD. Thesis, Department of Mathematical Sciences, Rice University, Houston, Texas (April 1983).

    Google Scholar 

  10. U. Banerjee, Speedup of Ordinary Programs, PhD, Thesis, Department of Computer Science, University of Illinois, Urbana-Champaign (October 1979).

    Google Scholar 

  11. J. Ferrante, K. J. Ottenstein and J. D. Warren, The program dependence graph and its use in optimization,ACM Trans. on Programming Languages and Systems,9(3):319–349 (July 1987).

    Article  MATH  Google Scholar 

  12. K. Kennedy and K. McKinley, Loop distribution with arbitrary control, flow, InProc. Supercomputing '90, Los Alamitos, California pp. 407–416, IEEE Computer Society Press. (November 1990).

  13. H. Baxter and H. Bauer, III, The program dependence graph and vectorization, InConference Record of the 16th ACM Symp. on the Principles of Programming Languages, pp. 1–10 (January 1989).

  14. R. Cytron, M. Hind, and W. Hsieh, Automatic generation of DAG parallelism, InProc. of the 1989 SIGPLAN Conf. on Programming Language Design and Implementation, pp. 54–68 (July 1989).

  15. W. Hsieh, Extracting parallelism from sequential programs, Master's Thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (May 1988).

  16. R. Cytron, J. Ferrante, and V. Sarkar, Experiences using control dependence in PTRAN, In D. Gelernter, A. Nicolau, and D.A. Padua, (edits.),Languages and Compilers for Parallel Computing, MIT Press, pp. 186–212 (1990).

  17. H. Kasahara, H. Honda, M. Iwata, and M. Hirota, A compilation scheme for macrodataflow computation on hierarchical multiprocessor systems, unpublished manuscript (1989).

  18. D. Callahan and J. Subhlok, Static analysis of low-level synchronization, InProc. of the ACM SIGPLAN and SIGOPS Workshop on Parallel and Distributed Debugging, pp. 100–111 (May 1988).

  19. E. Duesterwald, Static concurrency analysis in the presence of procedures, Technical Report 91-6, Department of Computer Science, University of Pittsburgh (March 1991).

  20. S. Masticola and B. Ryder, A model of Ada programs for static deadlock detection in polynomial time, InProc. of the 1991 ACM Workshop on Parallel and Distributed Debugging, (1991).

  21. D. Jayasimha, Communication and Synchronization in Parallel Computation, PhD. Thesis, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign (1988).

    Google Scholar 

  22. V. Krothapalli and P. Sadayappan, Removal of redundant dependences in doacross loop with constant dependences, InProc. of the Third SIGPLAN Symp. on Principles and Practice of Parallel Programming, pp. 51–60 (April 1991).

  23. Z Li and W. Abu-Sufah, On reducing data synchronization in multiprocessed loops,IEEE Trans. on Computers,C-36(1):105–109 (January 1987).

    Google Scholar 

  24. S. P. Midkiff and D. A. Padua, Compiler algorithms for synchronization,IEEE Trans. on Computers,C-36(12):1485–1495 (December 1987).

    Article  MATH  Google Scholar 

  25. S. P. Midkiff and D. A. Padua, A comparison of four synchronization optimization techniques, Technical Report No. 1135, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign (June 1991).

    Google Scholar 

  26. P. Shaffer, Minimization of interprocessor synchronization in multiprocessors with shared and private memory, InProc. of the 1989 Int. Conf. on Parallel Processing, Volume III, pp. 138–141, St. Charles, Illinois (August 1989).

  27. F. E. Allen and J. Cocke, A program data flow analysis procedure,Commun. of the ACM,19(3):137–147 (March 1976).

    Article  MATH  Google Scholar 

  28. M. Hecht,Flow Analysis of Computer Programs, Elsevier North-Holland, Inc., New York, (1977).

    MATH  Google Scholar 

  29. R. E. Tarjan, Testing flow graph reducibility,J. of Computer and Syst. Sci.,9(3):355–365 (December 1974).

    MATH  MathSciNet  Google Scholar 

  30. M. Weiser, Programmers use slices when debugging,Comm. of the ACM,25(7):446–452 (July 1982).

    Article  Google Scholar 

  31. R. Allen and K. Kennedy, Automatic translation of FORTRAN programs to vector form,ACM Trans. on Programming Languages and Systems, Vol. 9, No. 4 (October 1987).

  32. U. Banerjee,Dependence Analysis for Supercomputing, Kluwer Academic Publishers (1988).

  33. D. J. Kuck, R. H. Kuhn, D. A., Padua, B. Leasure, and M. J. Wolfe, Dependence graphs and compiler optimizations, InProc. of the 8th Annual ACM Symp. on Principles of Programming Languages, pp. 207–218 (January 1981).

  34. M. J. Wolfe,Optimizing Supercompilers for Supercomputers, The MIT Press, Cambridge, Massachusetts (1989).

    MATH  Google Scholar 

  35. C. D. Polychronopoulos, M. Girkar, M. R. Haghighat, C. L. Lee, B. Leung, and D. Schouten, Parafrase-2: An environment for parallelizing, partitioning, synchronizing, and scheduling programs on multiprocessors, InProc. of the 1989 Int. Conf. on Parallel Processing, St. Charles, Illinois (August 1989).

  36. C. D. Polychronopoulos, M. Girkar, M. Haghighat, C. Lee, B. Leung, and D. Schouten, Parafrase-2 programmer's manual, CSRD Internal document.

  37. G. Cybenko, L. Kipp, L. Pointer, and D. Kuck, Supercomputer performance evaluation and the Perfect Benchmarks, InProc. of the Int. Conf. on Supercomputing, Amsterdam, Netherlands (March 1990) nce graph and its use in optimization,ACM Trans. on Programming Languages and Systems,9(3):319–349 (July 1987).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported in part by the National Science Foundation under Grant No. NSF-CCR-89-57310, the U. S. Department of Energy under Grant No. DOE-DE-FG02-85ER25001, and a grant from Texas Instruments Inc.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Girkar, M., Polychronopoulos, C.D. The hierarchical task graph as a universal intermediate representation. Int J Parallel Prog 22, 519–551 (1994). https://doi.org/10.1007/BF02577777

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02577777

Key words

Navigation