Parallelising a Large Functional Program; Or: Keeping LOLITA Busy
Hans-Wolfgang Loidl, Richard Morgan, Phil Trinder, Sanjay Poria, Chris
Cooper, Simon L. Peyton Jones, and Roberto Garigliano
International Workshop on the Implementation of Functional Languages
1997, LNCS, St. Andrews, Scotland, UK, Sep 10-12, 1997.
In this paper we report on the ongoing parallelisation of Lolita, a
natural language engineering system. Although Lolita currently
exhibits only modest parallelism, we believe that it is the largest
parallel functional program ever, comprising more than 47,000 lines of
Haskell. Lolita has the following interesting features common to real
world applications of lazy languages:
- the code was not specifically designed for parallelism;
- laziness is essential for efficiency in Lolita;
- Lolita interfaces to data structures outside the Haskell heap,
using a foreign language interface;
- Lolita was not written by those most closely involved in the
parallelisation.
Our expectations in parallelising the program were to achieve moderate
speedups with small changes in the code. To date speedups of up to 2.4
have been achieved for Lolita running under a realistic simulation of
our 4 processor shared-memory target machine. Most notably, the
parallelism is achieved with a very small number of changes to, and
without requiring an understanding of most of the application. On the
Sun SPARCserver target machine wall-clock speedup is currently limited
by physical memory availability.
@InProceedings{lolita,
author = {Hans-Wolfgang Loidl and Richard Morgan and Phil Trinder and
Sanjay Poria and Chris Cooper and Simon L. {Peyton Jones} and
Roberto Garigliano},
title = {Parallelising a Large Functional Program; Or: Keeping LOLITA Busy},
booktitle = {International Workshop on the Implementation of Functional Languages},
series = {LNCS},
year = {1997},
publisher = {Springer-Verlag},
address = {St. Andrews, Scotland},
month = sep
}
Available in:
ps,
ps.gz
GPH Papers |
GPH