PARallel Database Engine (Parade) Final Report

  • Simon Peyton Jones

This report summarises the achievements of the EPSRC Parade project (GRJ/53348), which ran from June 1994 to September 1997. We have made contributions in the following three areas.

  • Parallel Language Support (Section 2). We have implemented a robust, portable runtime system and compiler support for Glasgow Parallel Haskell. The system supports a complete parallel development environment providing an integrated simulator and sophisticated pro ling tools in addition to physical implementations on a variety of parallel machines.
    Despite sustained research interest in parallel functional programming, our implementation is one of the first to be made publicly available, and to be widely used outside the research group that developed it.
  • Large-scale data-intensive parallel programming (Section 3). In collaboration with groups at Durham University and the Centre for Transport Studies, London we have developed and measured several large parallel data-intensive programs. We have demonstrated wall-clock speedups for both text- book and, more significantly, real problems on both distributed-memory and shared-memory architectures.
  • Parallel Programming (Section 4). Motivated by our studies of large-scale data-intensive programs, we have developed evaluation strategies, a new programming abstraction that cleanly separates code describing the algorithm from that controlling the parallel behaviour. Evaluation strategies can be used to describe a wide range of control and data parallel programming paradigms, are user-extensible, can be nested or com- posed arbitrarily, and provide a simple framework for reasoning about parallel program behaviour.
Based on our experiences with using evaluation strategies, we are developing a methodology for constructing large parallel functional programs based on a combination of simulation, pro ling and performance measurement on real machines.