The ethos

Note: The example programs in the parallel nofib suite are rather old, and many not updated to work with GUM 4.xx or GUM 5.xx. To find test programs for these more recent implementations of GpH download the following bundle: example programs for GUM 4.06 onwards. Check Makefile.boot for basic documentation and build a program with e.g. make parfib_mp .

This repository of programs for Glasgow Parallel Haskell has been inspired by the nofib benchmark suite for the Glasgow Haskell Compiler. But a note of warning: the programs herein are not state-of-the-art benchmarks, and may not even be parallelised to give the best performance. The purpose of this code repository is to provide a suite of programs to be used for experimentation into parallelism. Many of the algorithms have been transcribed from other programming language suites.

A nofib suite subdivides programs into the following categories:

The imaginary part consists of toy programs such as factorial and quicksort. Such programs are useless for drawing general conclusions, but can sometimes show up nasty performance bugs in sharp relief.

part consists of toy programs such as factorial and quicksort. Such programs are useless for drawing general conclusions, but can sometimes show up nasty performance bugs in sharp relief. The spectral part consists of kernels of real programs, such as Fast Fourier Transform. Again, one should be careful about drawing any general conclusions from these programs, but they are a whole lot more realistic than the imaginary suite whilst still being of modest size.

part consists of kernels of real programs, such as Fast Fourier Transform. Again, one should be careful about drawing any general conclusions from these programs, but they are a whole lot more realistic than the imaginary suite whilst still being of modest size. The real part consists of real application programs, written by people who simply wanted to get the job done. They are larger and more I/O intensive than the imaginary and spectral suite.

nofib

The nofib Benchmark Suite of Haskell Programs

Will Partain, In Functional Programming, Glasgow 1992, J Launchbury and PM Sansom, eds., Workshops in Computing, Springer Verlag, 195-202.

Download

You can either download the individual programs or you can download everything:

Imaginary subset

parfac Parallel factorial. parfib Parallel nfib. quicksort Parallel quicksort. sieve A parallel version of Eratosthenes algorithm for finding prime numbers. squares Parallel sum of squares.

Spectral subset

alpha-beta Finds the next move in the game tic-tac-toe. barnes-hut An algorithm for the N-body problem. canny A simple edge detector. cfd Computational fluid dynamics calculations. fft A fast Fourier transformation algorithm. prsa Parallel RSA encryption algorithm. quickhull An algorithm for finding a convex hull. ray A simple ray tracer for polygons. soda Searches for words in a grid of letters. Runciman and Wakeling (version 6).

Strategies version. spheres A simple ray tracer for spheres.

Real subset

circuit A data-parallel digital circuit simulator.

Other parallel code repositories

NESL

A library of parallel algorithms for the NESL language.



A library of parallel algorithms for the NESL language. Impala - IMplicitly PArallel LAnguage Application Suite

A suite of programs in the id language.

Page last modified: 1999/02/25