Skip to main content
Log in

Automatic source-code parallelization using HICOR objects

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

Abstract

We show that by using an intermediate representation, which supports a formalized interface on which to construct parallelization tools, the mapping of the representation onto parallel architectures can be performed quickly and efficiently. An intermediate representation called HICOR (Hierarchical Intermediate Code Object Representation) is shown to facilitate the exploitation of parallel operations by providing an abstraction layer for performing high-level intermediate code analysis, scheduling, and code generation. An object-oriented design approach has been employed in the development of HICOR and associated tools. Source language constructs are transformed into specialized object classes. Inheritance properties provided by the object-oriented paradigm are utilized to provide a common interface to each object in the HICOR representation. It is this interface that provides the needed consistency and flexibility in which to construct tools that has since been lacking. In particular, a tool to performCompile-Time Scheduling is presented. The scheduling algorithm employed differs from traditional scheduling problems in that merging of tasks is performed to reduce both task creation and communication costs in determining the final schedule. Architectural parameters are provided as input to the heuristic allowing the scheduler to produce near-optimal results for a wide variety of MIMD architectures. Once the final schedule is determined theTarget Code Generator, also presented, is used to generate the corresponding target code. A prototype system has been implemented in C++ which incorporates the HICOR intermediate representation with the tools described. The target architectures include the Sun 630 MP/4, Sequent Symmetry S81, and Stardent Titan.

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. W. Baxter and H. R. Bauer, III. The program dependence graph and vectorization,Sixteenth Ann. ACM Symp. on Principles of Programming Languages, pp. 1–11, Austin, Texas (January 1989).

  2. M. Burke, R. Cytron, J. Ferrante, and Wilson Hsieh, Automatic generation of nested, fork-join parallelism,Journal of Supercomputing 2 (3): 71–88 (July 1989).

    Article  Google Scholar 

  3. K. D. Cooper and K. Kennedy, Fast interprocedural alias analysis,Sixteenth Ann. ACM Symp. on Principles of Programming Languages, pp. 49–59, Austin, Texas (January 1989).

  4. M. Girkar and C. Polychronopoulos, Compiling issues for supercomputers,IEEE Computer, pp. 164–173 (September 1988).

  5. S. Horwitz, T. Reps, and D. Binkley, Interprocedural slicing using dependence graphs,Proc. of the ACM SIGPLAN 88 Conf. on Programming Language Design and Implementation (June 1988).

  6. M. McCreary and H. Gill, Automatic determination of grain size for efficient parallel processing,Comm. of the ACM 32 (9): 1073–1078 (September 1989).

    Article  Google Scholar 

  7. S. Richardson and M. Ganapathi, Code optimization across procedures,IEEE Computer, pp. 42–50 (February 1989).

  8. Y. Tanaka, K. Iwasawa, S. Gotoo, and Yukio Umetani, Compiling techniques for firstorder linear recurences on a vector computer,IEEE Computer, pp. 174–181 (September 1988).

  9. J. Ferrante, K. Ottenstein, and J. 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 

  10. M. Girkar and C. Polychronopoulos, Automatic extraction of functional level parallelism from ordinary programs,IEEE Trans. on Parallel and Distributed Systems 3 (2): 166–178 (March 1993).

    Article  Google Scholar 

  11. K. Kennedy, K. S. Mckinley, and C. W. Tseng, Interactive parallel programming using the ParaScope editor,IEEE Trans. on Parallel and Distributed Systems 2 (3): 329–341 (July 1991).

    Article  Google Scholar 

  12. B. K. Szymanski,Parallel Functional Languages and Compilers, Addison-Wesley, Reading, Massachusetts (1991).

    MATH  Google Scholar 

  13. K. Pingali, M. Beck, R. Johnson, M. Moudgill, and P. Stodghill, Dependence Flow Graphs: An Algebraic Approach to Program Dependencies. Technical Report TR 90-1152, Cornell University (September 1990).

  14. M. R. Gilder and M. S. Krishnamoorthy, An object-oriented intermediate code representation for the development of parallelization tools,Journal of Object-Oriented Programming (to appear).

  15. M. R. Gilder, An Object Oriented Intermediate Code Representation for an Architecturally Independent Parallelizing Compiler. PhD thesis, Rensselaer Polytechnic Institute, Troy, New York (1993).

    Google Scholar 

  16. J. R. Punin, M. R. Gilder, and M. S. Krishnamoorthy, A GUI for parallel code generation (in progress).

  17. D. Gelernter, A. Nicolau, and D. Padua,Languages and Compilers for Parallel Computing, MIT Press, Cambridge, Massachusetts (1990).

    Google Scholar 

  18. D. Padua and M. Wolfe, Advanced compiler optimizations for supercomputers,Comm. of the ACM 29 (12): 1184–1201 (December 1986).

    Article  Google Scholar 

  19. R. E. Miller and J. W. Thatcher,Complexity of Computer Computations, Plenum Press, New York (1972).

    Google Scholar 

  20. J. D. Ullman. NP-Complete scheduling problems,Journal of Computer and System Sciences 10: 384–393 (1975).

    Article  MATH  MathSciNet  Google Scholar 

  21. V. Sarkar,Partitioning and Scheduling Parallel Programs for Multiprocessors, MIT Press, Cambridge, Massachusetts (1989).

    MATH  Google Scholar 

  22. V. Sarkar, Automatic partitioning of a program dependence graph into parallel tasks,IBM Journal of Research and Development 35 (5): 779–804 (September 1991).

    Article  Google Scholar 

  23. R. W. Stevens,UNIX Network Programming, Prentice Hall, Englewood Cliffs, New Jersey (1990).

    Google Scholar 

  24. M. R. Gilder and M. S. Krishnamoorthy, A Viable Object Oriented Intermediate Code Representation for Parallel Architectures. Technical Report TR 92-35, Rennselaer Polytechnic Institute, Troy, New York (December 1992).

    Google Scholar 

  25. M. S. Krishnamoorthy, A. Suess, M. Onghena, and F. Oxaal, Improvements to Graph-Pack: A system to manipulate graphs and digraphs,DIMACS Workshop on Computational Support for Discrete Mathematics (to appear).

  26. B. W. Char, K. O. Geddes, G. H. Gonnet, M. B. Monagagn, and S. M. Watt,Maple Reference Manual (1988).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Gilder, M.R., Krishnamoorthy, M.S. Automatic source-code parallelization using HICOR objects. Int J Parallel Prog 22, 303–350 (1994). https://doi.org/10.1007/BF02577736

Download citation

  • Received:

  • Issue Date:

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

Key words

Navigation