International Journal of High Speed Computing
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
An iterative-design model for reusable object-oriented software
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
An empirical study of the object-oriented paradigm and software reuse
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Object-oriented modeling and design
Object-oriented modeling and design
Compiling Fortran D for MIMD distributed-memory machines
Communications of the ACM
Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
Dependence Analysis for Supercomputing
Dependence Analysis for Supercomputing
MPI: The Complete Reference
A Loop Transformation Theory and an Algorithm to Maximize Parallelism
IEEE Transactions on Parallel and Distributed Systems
A Parallelizing Compiler by Object Oriented Design
COMPSAC '97 Proceedings of the 21st International Computer Software and Applications Conference
An Object Modelling Technique for Conceptual Design
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
Achieving Multi-level Parallelization
ISHPC '97 Proceedings of the International Symposium on High Performance Computing
Hi-index | 0.00 |
Generation of efficient parallel code is a major goal of a well-designed and developed parallelizing compiler. Another important goal is portability of both compiler system and the resulting output source codes. The various choices of current and future parallel computer architectures as well as the cost of developing a parallelizing compiler make portability a very important design goal. Since the design of parallelizing compilers is considerably move complex than designing conventional compilers, it is very important to achieve both efficiency and portability. To meet this dual goal, we have investigated the application of object oriented design to parallelizing compilers. Our parallelizing compiler design is based on abstractions of intermediate representations of loops and their class definitions. In this paper, we address the problem of loop parallelization and propose a framework where the loop parallelization process is divided into three phases and the optimization of loops is performed via a cyclic application of these three phases. The class of each phase is hierarchically derived from intermediate representations of loops. This facilitates the portability of the resulting parallelizing compilers. Furthermore, one of the phases uses a reservation table of hardware resources in order to obtain optimized parallel programs for given hardware resources. The validation of the proposed framework is given through the application of the object oriented design on an example program which is then parallelized efficiently.