High-Level Architecture Independence via Parallel Graph Reduction

Summary State Download Documentation Papers People Links

Project Summary

Title: High-Level Architecture Independence via Parallel Graph Reduction
Investigator: Hans-Wolfgang Loidl
Grant no.: APART fellowship 624
Institution: Dept of Computing and Elec Eng, Heriot-Watt University
Duration: 1/8/1999 - 31/7/2002
Funding Body: Austrian Academy of Sciences

The long-term aim of my research is to make the computational power of multi-processor systems available to non-specialists in parallel programming. The specific goal of my fellowship is to develop a system for high-level parallel computation, demonstrating reasonable performance across a range of parallel architectures with no or minimal program changes. To achieve these I focus on the development of systems for parallel computation using a minimal parallel extension of the standard functional language Haskell, GpH. The language is implemented on a parallel graph reduction machine, GUM, that abstracts over most architecture-dependent aspects of the execution.

Academy Logo

Austrian Academy of Sciences

State of the Project


The current version of GpH is part of the CVS repository for the Glasgow Haskell Compiler (GHC) and can be checked out from there. Go to the GHC web page to find out details how to do this. We have used this version in a couple of measurements performed on our Beowulf machine (see the GpH papers page). We are currently working on performance comparisons of our system with two related parallel functional languages: Eden and PMLS.

Programming Language

We have recently extended evaluation strategies, our programming technique for controlling parallelism in GpH, to incorporate mechanisms for data clustering. We use Haskell type classes and manual program transformation to increase the task granularity and the data locality of parallel computations. Details are discussed in our clustering paper listed below.


In cooperation with Wolfgang Schreiner from RISC-Linz I am working on GpH/Maple, a system combining GpH as parallel coordination language with the Maple computer algebra system. This combination enables the user to implement symbolic applications in GpH and call arbitrary Maple functions from within GpH. At the moment we have a sequential prototype ready, and we have implemented three simple symbolic applications in GpH. Details of this strand of research can be found on the GpH/Maple web page.

Downloading GpH

You have two options in downloading GpH:

In both cases, the README.GUM file explains how to install GHC and GUM from these sources and how to compile and execute parallel programs.


User's Guide

To get you started with using GpH check the Gentle Introduction to GPH. This document provides a general introduction to the language, gives a step-by-step introduction with some simple parallel programs, and gives some practical information on installation, execution, and visualisation.

Implementor's Guide

If you are a fearless runtime-system hacker and want to extend the existing GUM system, take a look at the Stg Survival Sheet (sort-of a very drafty Implementor's Guide).


This a list of recent papers published in the frame of the APART 624 project. Earlier papers (before March 1998) can be found on my publications page.


NB: The papers in this subsection are still in draft stage and not formally published, yet.

Journal papers

Conference Papers

Workshop Papers



Related projects:

Valid HTML 4.0! Valid CSS!

Hans-Wolfgang Loidl<hwloidl@macs.hw.ac.uk>
Last modified: Wed Jun 30 15:23:31 2004 Stardate: [-29]2347.78