A flexible communication abstraction for nonshared memory parallel computing
- 4 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
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.Keywords
This publication has 5 references indexed in Scilit:
- Scalable Abstractions for Parallel ProgrammingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Coherent parallel CPublished by Association for Computing Machinery (ACM) ,1988
- Experiences with pokerPublished by Association for Computing Machinery (ACM) ,1988
- Dino: summary and examplesPublished by Association for Computing Machinery (ACM) ,1988
- Parallel Programming and the Poker Programming EnvironmentComputer, 1984