Efficient Compilation of Array Statements for Private Memory Multicomputers

Abstract

One of the core constructs of High Performance Fortran (HPF) is the array-slice assignment statement. combined with the rich choice of data distribution options available to the programmer. On a private memory multicomputer, the HPF compiler writer faces the difficult task of automatically generating the necessary communication for assignment statements involving arrays with arbitrary block-cyclic data distributions. In this paper we present a framework for representing array slices and block-cyclic distributions, and we derive efficient algorithms for sending and receiving the necessary data for array-slice assignment statements. The algorithms include a memory-efficient method of managing the layout of the distributed arrays in each processor's local memory. We also provide a means of converting the user's TEMPLATE, ALIGN, and DISTRIBUTE statements into a convenient array ownership descriptor. In addition, we present several optimizations for common distributions and easily- recognized communication patterns. The work presented makes minimal assumptions regarding the processor architecture, the communication architecture, or the underlying language being compiled.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Feb 01, 1993
Accession Number
ADA266595

Entities

People

  • James M. Stichnoth

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Boundaries
  • C Programming Language
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Language
  • Models
  • Notation
  • Parallel Computing
  • Plastic Explosives
  • Programming Languages
  • Specifications
  • Standards
  • Two Dimensional

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Parallel and Distributed Computing.
  • Phased Array Antenna Design.