A constructive unified model of parallel computation

Stephen Michael Sobek · 1991

The focus of this research is the definition and application of a model of parallel computation whose expressive power encompasses the underlying models of parallel computation for significant parallel programming languages and a wide spectrum of parallel architectures. The elements of this research on models of parallel computation which make it distinct from previous research in this area are its breadth of coverage and its focus on conceptual support for a parallel programming environment which spans multiple languages and multiple architectures. The models of computation used to conceptualize parallel programming languages and parallel architectures differ primarily in their characterization of the relationships among concurrently executable units of computation. Our model achieves useful coverage of other models by defining specifications for relationships which encompass the relationship characterizations of a broad spectrum of models. This breadth of coverage of both parallel programming languages and parallel architectures is attained by raising the level of abstraction in which relationships among units of computation are expressed. We define our model components in a tuple notation, and characterize component attributes and execution behavior. We show that the model covers some significant models of parallel computation. We discuss the subset of our model that forms a conceptual basis for the construction of a parallel programming environment, and we detail the declarative program structuring language, derived from that subset, which underlies the programming environment. We describe the prototype environment implemented, and we tell how language and architecture independence are attained. The parallel programming environment implemented is based upon a graphical representation of our model and declarative specification of graph component properties. In the graphical representation, the nodes represent the computation units to be executed, and the arcs represent relationships among the units of computation. Relationship constraints are specified declaratively. The units of computation are encoded in a spectrum of portable high-level programming languages. Useful parallel architecture independence is achieved by translating the graphical specification of relationship types into a variety of machine-specific mechanisms for implementing those relationships.

Read the paper · More papers on PaperTik