GpH - Glasgow Parallel Haskell
Activity Report November 2005
Report by: Phil Trinder
The Team
Heriot-Watt University, Scotland: Phil Trinder, Abyd Al Zain, Greg Michaelson
St Andrews University, Scotland: Kevin Hammond, Leonid Timochouk, Yang Yang
Phillips Universität Marburg, Germany: Jost Berthold
Brooklyn College, USA: Murray Gross
Status
A complete, GHC-based implementation of the parallel Haskell extension GpH and of evaluation strategies is available.
Extensions of the runtime-system and language to improve performance and support new platforms are under development.
System Evaluation and Enhancement
The first two items are linked by a British Council/DAAD project.
-
We have developed an adaptive runtime environment (GRID-GUM) for GpH
on computational grids. GRID-GUM incorporates new load management
mechanisms that cheaply and effectively combine static and dynamic
information to adapt to the heterogeneous and high-latency
environment of a multi-cluster computational grid. We have made
comparative measures of GRID-GUM's performance on high/low
latency grids and heterogeneous/homogeneous grids using clusters
located in Edinburgh, Munich and Galashiels. Preliminary results are
published in Al Zain A. Trinder P.W. Loidl H.W. Michaelson G.J
‘Managing Heterogeneity in a Grid Parallel Haskell’,
Practical Aspects of High-level Parallel Programming (PAPP 2005),
Atlanta, USA (May 2005).
- We are designing a generic
parallel runtime environment encompassing both the Eden and GpH runtime environments
- SMP-GHC, an implementation of GpH for multi-core machines has been developed by Tim Harris, Simon Marlow and Simon Peyton Jones. See GHC entry in this report.
- In separate work GpH is being used as a vehicle for investigating scheduling on the GRID.
- We are teaching parallelism to undergraduates using GpH at Heriot-Watt and Phillips Universitat Marburg.
GpH Applications
- GpH is being used to parallelise the GAP mathematical library in EPSRC
project (GR/R91298).
- We are participating in the SCIEnce EU FP6 I3 project (026133) to use GpH to provide access to Grid services from Symbolic Computation systems, including GAP and Maple.
Implementations
The GUM implementation of GpH is available in two development branches.
- The stable branch (GUM-4.06, based on GHC-4.06) is available for RedHat-based Linux machines: binary snapshot (see installation instructions).
The stable branch is available from the GHC CVS repository via tag
gum-4-06
.
-
The unstable branch (GUM-5.02, based on GHC-5.02) is currently being tested
on a Beowulf cluster. The unstable branch is available from the GHC CVS repository
via tag
gum-5-02-3
.
Our main hardware platform are Intel-based Beowulf clusters. Work on ports to other
architectures is also moving on (and available on request):
- A port to a Sun-Solaris shared-memory machine exists but currently
suffers from performance problems.
- A port to a Mosix cluster has been built in the Metis project at Brooklyn College, with a first version available on request from Murray Gross.
Further reading:
GpH Home Page