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.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
M. Furnari, Compiling scheme into the HTG, InProc. of the 1992 Workshop on Parallel Languages and Compilers (August 1991).
M. Girkar, Functional Parallelism: Theoretical Foundations and Implementation, PhD. Thesis, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign (January 1992).
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).
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).
A. V. Aho, R. Sethi and J. D. Ullman,Compilers: Principles, Techniques and Tools, Addison-Wesley, Reading, Massachusetts (March 1986).
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).
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).
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).
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).
U. Banerjee, Speedup of Ordinary Programs, PhD, Thesis, Department of Computer Science, University of Illinois, Urbana-Champaign (October 1979).
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).
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).
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).
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).
W. Hsieh, Extracting parallelism from sequential programs, Master's Thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (May 1988).
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).
H. Kasahara, H. Honda, M. Iwata, and M. Hirota, A compilation scheme for macrodataflow computation on hierarchical multiprocessor systems, unpublished manuscript (1989).
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).
E. Duesterwald, Static concurrency analysis in the presence of procedures, Technical Report 91-6, Department of Computer Science, University of Pittsburgh (March 1991).
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).
D. Jayasimha, Communication and Synchronization in Parallel Computation, PhD. Thesis, Center for Supercomputing Research and Development, University of Illinois, Urbana-Champaign (1988).
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).
Z Li and W. Abu-Sufah, On reducing data synchronization in multiprocessed loops,IEEE Trans. on Computers,C-36(1):105–109 (January 1987).
S. P. Midkiff and D. A. Padua, Compiler algorithms for synchronization,IEEE Trans. on Computers,C-36(12):1485–1495 (December 1987).
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).
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).
F. E. Allen and J. Cocke, A program data flow analysis procedure,Commun. of the ACM,19(3):137–147 (March 1976).
M. Hecht,Flow Analysis of Computer Programs, Elsevier North-Holland, Inc., New York, (1977).
R. E. Tarjan, Testing flow graph reducibility,J. of Computer and Syst. Sci.,9(3):355–365 (December 1974).
M. Weiser, Programmers use slices when debugging,Comm. of the ACM,25(7):446–452 (July 1982).
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).
U. Banerjee,Dependence Analysis for Supercomputing, Kluwer Academic Publishers (1988).
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).
M. J. Wolfe,Optimizing Supercompilers for Supercomputers, The MIT Press, Cambridge, Massachusetts (1989).
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).
C. D. Polychronopoulos, M. Girkar, M. Haghighat, C. Lee, B. Leung, and D. Schouten, Parafrase-2 programmer's manual, CSRD Internal document.
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).
Author information
Authors and Affiliations
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
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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02577777