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.
Similar content being viewed by others
REFERENCES
Constantine D. Polychronopoulos, Milind Girkar, Mohammad Reza Haghighat, Chia Ling Lee, Bruce Leung, and Dale Schouten, Parafrase-2: An Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors, Int'l. J. High Speed Computing 1(1):45–72 (1989).
Bill Blume, Rudolf Eigenmann, Keith Faigen, John Grout, Jay Hoeflinger, David Padua, Paul Petersen, Bill Pottenger, Lawrence Rauchwerger, Peng Tu, and Stephen Weatherford, Polaris: The Next Generation in Parallelizing Compilers. Technical Report 1375, Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign (1994).
Kuck and Associates, Inc. Kuck and Associates, Inc. Home Page. http://www.kai.com.
Hideki Saito, On the Design of High-Performance Compilers. Technical Report, Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, Ph.D. Thesis Proposal (May 1999).
Hideki Saito, Nicholas Stavrakos, Steve Carroll, Constantine Polychronopoulos, and Alex Nicolau, The Design of the PROMIS Compiler, Proc. Int'l. Conf. Compiler Construction (CC) (March 1999).
Milind Girkar and Constantine D. Polychronopoulos, The Hierarchical Task Graph as a Universal Intermediate Representation, IJPP 22(5):519–551 (1994).
Carrie Brownhill, Alex Nicolau, Steve Novack, and Constantine Polychronopoulos, The PROMIS Compiler Prototype, Proc. Int'l. Conf. Parallel Architectures and Compilation Techniques (PACT) (1997).
Mohammad R. Haghighat, Symbolic Analysis for Parallelizing Compilers, Kluwer Academic Publishers (1995).
Carrie Brownhill, Alex Nicolau, Steve Novack, and Constantine Polychronopoulos, Achieving Multi-Level Parallelization, Proc. Int'l. Symp. High Performance Computing (ISHPC) (1997).
Hideki Saito, Nicholas Stavrakos, and Constantine Polychronopoulos, Multithreading Runtime Support for Loop and Functional Parallelism, Proc. Int'l. Symp. High Performance Computing (ISHPC) (May 1999).
Xavier Martorell, Eduard Ayguadé, Nacho Navarro, Julita Corbalán, Marc González, and Jesus Labarta, Thread Fork-Join Techniques for Multi-Level Parallelism Exploitation in Numa Multiprocessors, Proc. Int'l. Conf. Supercomputing (1999).
Donald Yeung, The Scalability of Multigrain Systems, Proc. Int'l. Conf. Supercomputing (1999).
Steve Novack, The EVE Mutation Scheduling Compiler: Adaptive Code Generation for Advanced Microprocessors, Ph.D. thesis, University of California at Irvine (1997).
The National Compiler Infrastructure Project. The National Compiler Infrastructure Project. http://www-suif.stanford.edu/suif/NCI (January 1998). [Also at http://www.cs.virginia.edu-nci.]
Mary W. Hall, Jennifer M. Anderson, Saman P. Amarasinghe, Brian R. Murphy, Shih-Wei Liao, Edouard Bugnion, and Monica S. Lam, Maximizing Multiprocessor Performance with the SUIF Compiler, IEEE Computer (December 1996).
Robert P. Wilson, Robert S. French, Christopher S. Wilson, Saman P. Amarasinghe, Jennifer M. Anderson, Steve W. K. Tjiang, Shih-Wei Liao, Chau-Wen Tseng, Mary W. Hall, Monica S. Lam, and John L. Hennessy, SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compilers. Technical Report, Computer Systems Laboratory, Stanford University [http://suif.stanford.edu/suif/suif1/suif-overview/suif.html].
Randy Allen, Unifying Vectorization, Parallelization, and Optimization: The Ardent Compiler, Proc. Int'l. Conf. Supercomputing (1988).
Randy Allen, Exploiting Multiple Granularities of Parallelism in a Compiler, Proc. COM-PCON, pp. 634–640 (1990).
Sangyeun Cho, Jenn-Yuan Tsai, Yonghong Song, Bixia Zheng, Stephan J. Schwinn, Xin Wang, Qing Zhao, Zhiyuan Li, David J. Lilja, and Pen-Chung Yew, High-Level Information?An Approach for Integrating Front-End and Back-End Compilers, Proc. Int'l. Conf. Parallel Processing (ICPP) (1998).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Saito, H., Stavrakos, N.J., Polychronopoulos, C.D. et al. The Design of the PROMIS Compiler—Towards Multi-Level Parallelization. International Journal of Parallel Programming 28, 195–212 (2000). https://doi.org/10.1023/A:1007500300397
Issue Date:
DOI: https://doi.org/10.1023/A:1007500300397