Transforming Process Networks

H. John Reekie (johnr@eecs.berkeley.edu) and John Potter (johnpot.microsoft.com)

Proceedings of MFPW'92, the Massey Functional Programming Workshop, Massey University, Palmerston North, New Zealand, August 1992.


Abstract

The process network model of parallelism maps well to loosely-coupled message-passing parallel machines. In this paper, we explore in Haskell how vector and stream datatypes, combined with a suitable set of higher-order functions, can be used to construct process networks. We use standard transformation techniques to alter the structure and degree of parallelism in a network, and illustrate with an extended example. As an aid to understanding the structure of these networks, we have developed a graphical notation for a subset of Haskell that extends the commonly used ``box-and-arrow'' notation. The graphical notation has proven to be a valuable tool for visualising and transforming process networks.