Compiler Technology for Parallel Scientific Computation

Abstract

There is a need for compiler technology that, given the source program, will generate efficient parallel codes for different architectures with minimal user involvement. Parallel computation is becoming indispensable in solving large-scale problems in science and engineering. Yet, the use of parallel computation is limited by the high costs of developing the needed software. To overcome this difficulty we advocate a comprehensive approach to the development of scalable architecture-independent software for scientific computation based on our experience with equational programming language (EPL). Our approach is based on a program decomposition, parallel code synthesis, and run-time support for parallel scientific computation. The program decomposition is guided by the source program annotations provided by the user. The synthesis of parallel code is based on configurations that describe the overall computation as a set of interacting components. Run-time support is provided by the compiler-generated code that redistributes computation and data during object program execution. The generated parallel code is optimized using techniques of data alignment, operator placement, wavefront determination, and memory optimization. In this article we discuss annotations, configurations, parallel code generation, and run-time support suitable for parallel programs written in the functional parallel programming language EPL and in Fortran.

Document Details

Document Type
Pub Defense Publication
Publication Date
Jan 01, 1994
Source ID
10.1155/1994/243495

Entities

People

  • Balaram Sinharoy
  • Boleslaw Szymanski
  • Can Ozturan

Organizations

  • Office of Naval Research
  • Rensselaer Polytechnic Institute

Tags

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Linguistics
  • Parallel and Distributed Computing.
  • Systems Analysis and Design