The Design of the PROMIS Compiler—Towards Multi-Level Parallelization

  • Authors:
  • Hideki Saito;Nicholas J. Stavrakos;Constantine D. Polychronopoulos;Alex Nicolau

  • Affiliations:
  • Center for Supercomputing Research and Development, University of Illinois at Urbana—Champaign. {saito.stavrako.cdp}@csrd.uiuc.edu;Center for Supercomputing Research and Development, University of Illinois at Urbana—Champaign. {saito.stavrako.cdp}@csrd.uiuc.edu;Center for Supercomputing Research and Development, University of Illinois at Urbana—Champaign. {saito.stavrako.cdp}@csrd.uiuc.edu;Department of Information and Computer Science, University of California at Irvine. nicolau@ics.uci.edu

  • Venue:
  • International Journal of Parallel Programming - Special issue on international symposium on high performance computing 1997, part I
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most systems that are under design and likely to be built in the future will employ hierarchical organization with many levels of memory hierarchy and parallelism. In order to efficiently utilize the multiple levels of parallelism available in the target architecture, a parallelizing compiler must orchestrate the interactions of fine-grain and coarse-grain program transformations. This article describes issues of multi-grain parallelization and how they are addressed in the PROMIS compiler design. PROMIS is a multilingual, parallelizing, and retargetable compiler with an integrated frontend and backend operating on a single unified and universal intermediate representation. PROMIS exploits multiple levels of static and dynamic parallelism, ranging from task- and loop-level parallelism to instruction-level parallelism, based on a target architecture description. The frontend and the backend are integrated through a unified internal representation common to the high-level, the low-level, and the instruction-level analyses and transformations.