Descriptive Simplicity in Parallel Computing
The programming of parallel computers is recognised as being a difficult task and there exist a wide selection of parallel programming languages and environments. This thesis presents and examines the Hierarchical Skeleton Model (HSM), a model of parallel programming that combines ease of use, portability and flexibility. The model is based on the exploitation of nested parallelism in parallel algorithms expressed using a hierarchy of algorithmic skeletons. The model acknowledges that not all forms of parallelism can be expressed clearly using skeletons and allows the use of ad hoc parallelism within the controlled framework of the skeleton hierarchy. The thesis describes the HSM model and defines the syntax and semantics of the HSM language. The model and language are evaluated using three problems and compared against solutions written using the Fork95++ language in a shared memory environment and the C++ language with the Message Passing Interface (MPI) in a distributed memory environment. The thesis concludes that the combination of the HSM model and language with an ad hoc parallel base model proved successful in tackling the problems with clearer and more concise code than either of the alternative languages.