An Object-Oriented Framework for Loop Parallelization

The main goal of parallelizing compiler research is the ability to produce efficient parallel programs and the portability because of wide choices of current and future available parallel computer architectures. Since the design of parallelizing compilers tends to be more complicated than conventional compilers, it is extremely difficult to achieve both the efficiency and the portability. To meet this problem, we have investigated an application of object oriented design to parallelizing compilers. Our parallelizing compiler design is based on abstractions of intermediate representations of loops and class definitions for them. In this paper, we focus on loop parallelization and propose a framework where loop parallelization process is divided into three phases and the optimization of loops is performed via cyclic use of those three phases. The class of each phase is hierarchically derived from intermediate representations of loops. This increases the portability of resultant parallelizing compilers. Furthermore, one of the phases uses a reservation table of hardware resource to obtain practical optimization of parallel programs for given hardware resource.

[1]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[2]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[3]  Alexandru Nicolau,et al.  Achieving Multi-level Parallelization , 1997, ISHPC.

[4]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[5]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[6]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[7]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[8]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[9]  Akira Fukuda,et al.  A parallelizing compiler by object oriented design , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[10]  Milind Girkar,et al.  Parafrase-2: an Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors , 1989, Int. J. High Speed Comput..

[11]  Mary E. S. Loomis,et al.  An Object Modelling Technique for Conceptual Design , 1987, ECOOP.

[12]  Sallie M. Henry,et al.  An Empirical Study of the Object-Oriented Paradigm and Software Reuse , 1991, OOPSLA.

[13]  Bruce Anderson,et al.  An iterative-design model for reusable object-oriented software , 1990, OOPSLA/ECOOP '90.