Communication relations: a paradigm for parallel program design (original) (raw)

The design of parallel programs needs to specify the way parallel components cooperate. This has to be progressively derived as systematically as possible from abstract specifications. In this paper we introduce convenient specification tools and a parallelism model for such development expressions. The innovation we propose is the concept of communication relations, which can be considered l on the one hand, as a powerful parallelism abstraction to capture the semantics of cooperation between communicating processes, l on the other hand, as a paradigm for systematic parallel program design. This concept of communication relations is defined in the first part of this paper. In the second part we show how this concept can be used as a paradigm for parallel program design and we present a notation for the statements and a refinement technique to transform these statements. Four fundamental rules underly this technique, which is then applied to the development of two examples. Very simple examples have been chosen, but they are suggestive enough to show the main steps of a methodological approach.