A flexible communication abstraction for nonshared memory parallel computing

  • Authors:
  • Gail A. Alverson;William G. Griswold;David Notkin;Lawrence Snyder

  • Affiliations:
  • University of Washington, Department of Computer Science and Engineering, FR-35, Seattle, WA;University of Washington, Department of Computer Science and Engineering, FR-35, Seattle, WA;University of Washington, Department of Computer Science and Engineering, FR-35, Seattle, WA;University of Washington, Department of Computer Science and Engineering, FR-35, Seattle, WA

  • Venue:
  • Proceedings of the 1990 ACM/IEEE conference on Supercomputing
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

Writing parallel numerical programs is difficult. One problem is that the regular code and communication structure of typical parallel algorithms often becomes obfuscated when special cases at the boundaries of the computation are handled. Another problem is that parallel architectures can have vastly different communication structures, which makes it hard to maintain efficiency when a program is ported. This problem arises in practice because communication information either is defined implicitly by the local process codes or else is statically embedded in the compiler for the language.In this paper, we show how a communication abstraction called the port ensemble can simplify the handling of boundary conditions and the efficient porting of programs. A port ensemble provides an explicit interface between computation and communication descriptions, thus separating the communication structure from the details of local computation and from the compiler. Port ensembles structure ports, symbolic names to and from which a process can write and read values. To simplify the expression of boundary conditions, ports can be bound not only to ports on other processors, but also to non-existent neighbors (along the edge of the computation) using special objects that represent and implement constants, variables, and arbitrary functions. Port ensembles also provide direct access to the communication structure, which simplifies changing the structure to one appropriate for a new target architecture.