Object-oriented framework for loop parallelization

Youichi Omori, Akira Fukuda, Kazuki Joe

Research output: Contribution to journalArticle

Abstract

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.

Original languageEnglish
Pages (from-to)57-69
Number of pages13
JournalJournal of Supercomputing
Volume13
Issue number1
DOIs
Publication statusPublished - Jan 1 1999
Externally publishedYes

Fingerprint

Parallelizing Compilers
Parallelization
Object-oriented
Portability
Object-oriented Design
Compiler
Hardware
Computer architecture
Resources
Computer Architecture
Parallel Architectures
Parallel Programs
Reservation
Parallel Computers
Framework
Table
Optimization
Output
Costs
Design

All Science Journal Classification (ASJC) codes

  • Software
  • Theoretical Computer Science
  • Information Systems
  • Hardware and Architecture

Cite this

Object-oriented framework for loop parallelization. / Omori, Youichi; Fukuda, Akira; Joe, Kazuki.

In: Journal of Supercomputing, Vol. 13, No. 1, 01.01.1999, p. 57-69.

Research output: Contribution to journalArticle

Omori, Youichi ; Fukuda, Akira ; Joe, Kazuki. / Object-oriented framework for loop parallelization. In: Journal of Supercomputing. 1999 ; Vol. 13, No. 1. pp. 57-69.
@article{4f46227e975b473cb71fc5379e505ef1,
title = "Object-oriented framework for loop parallelization",
abstract = "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.",
author = "Youichi Omori and Akira Fukuda and Kazuki Joe",
year = "1999",
month = "1",
day = "1",
doi = "10.1023/A:1008062717485",
language = "English",
volume = "13",
pages = "57--69",
journal = "Journal of Supercomputing",
issn = "0920-8542",
publisher = "Springer Netherlands",
number = "1",

}

TY - JOUR

T1 - Object-oriented framework for loop parallelization

AU - Omori, Youichi

AU - Fukuda, Akira

AU - Joe, Kazuki

PY - 1999/1/1

Y1 - 1999/1/1

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=0032627583&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0032627583&partnerID=8YFLogxK

U2 - 10.1023/A:1008062717485

DO - 10.1023/A:1008062717485

M3 - Article

AN - SCOPUS:0032627583

VL - 13

SP - 57

EP - 69

JO - Journal of Supercomputing

JF - Journal of Supercomputing

SN - 0920-8542

IS - 1

ER -