A major reason for the tack of practical use of parallel computers has been the absence of a suitable model of parallel computation. Many existing models are either theoretical or are tied to a particular architectu~e. A more general model must be arehiteet~-e independenL must realistically reflect execution costs, and must reduce the cognitive overhead of managing massive parallelism. A growing number of models meeting some of these go~.ts have been suggested. We discuss their properties and relative strengths and weaknesses. We conclude that data parallelism is a style with much to commend it, and discuss the Bird-Meertens formalism as a coherent approach to data parallel programming, KEY WORDS: Models of parallel computation; architecture-independent programming; PRAM; graph reduction; UNITY; action systems; Linda; actors; PRAM e~enstons; data parallel programming; Bird-Meertens formalism.
1, INTRODUCTIONMost models for parallel computation can be divided, into two kinds: models that are primarily theoretical and used for studying algorithms and complexity; and models that are direct abstractions from particular parallel architectures. Models of the first kind, such as the PRAM or Boolean circuit model, do not correspond closely to the behavior of real machines; those of the second kind are not abstract enough to describe algorithms to be implemented on different architectures. The need for a model of parallel computation that is abstract enough to be architecture independent, but accurate enough to reflect performance has become increasingly" apparent