We propose Abstract Parallel Machines to address these problems, and we apply them to two case study derivations: a parallel heat equation program and a parallel addition algorithm.
An abstract parallel machine defines a set of parallel operations, and it expresses these definitions using a set of computational sites (`abstract processors') and coordination functions (`abstract network'). This makes a suitable model of implementation available at each level. The framework can describe higher order parallel operations at high levels (SPMD), intermediate levels (scan) and low levels (digital circuits). We have found that this approach helps guide the derivation process by clarifying the relationships between alternative realizations of a function, and we plan to experiment with it on more complex case studies.