Prev Up Next
Go backward to Strategies Separate Algorithm from Dynamic Behaviour
Go up to Top
Go forward to Large Parallel Applications

Evaluation Strategies for Parallel Paradigms

This section demonstrates the flexibility of evaluation strategies by showing how they express some common parallel paradigms. We cover data-oriented, divide-and-conquer, producer-consumer, and pipeline parallelism. One parallel programming paradigm that we have not expressed here is branch-and-bound parallelism. This cannot be expressed functionally, however, without using semantic non-determinism of some kind. Non-determinism is not available in Haskell, though languages such as Sisal [McGraw, 1985] provide it for precisely such a purpose, and Burton and Jackson have shown how to encapsulate the nondeterminacy in an abstract data type with deterministic semantics [Burton, 1991], and discussed a parallel implementation [Jackson and Burton, 1993]

  • Data-oriented Parallelism
  • Divide-and-conquer Parallelism
  • Producer/Consumer Parallelism
  • Pipelines

  • {trinder,hwloidl,simonpj},

    Prev Up Next