Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
K. Davis. MPP Parallel Haskell. In IFL'96 — Intl. Workshop on the Implementation of Functional Languages, pp. 49–54, Bad Godesberg, Germany, Sep. 1996. Draft Proceedings.
A. Gill and P. Wadler. Real World Applications of Functional Programs. 〈URL:http://www.dcs. gla.ac.uk/fp/realworld.html〉
K. Hammond, H-W. Loidl, and A. Partridge. Visualising Granularity in Parallel Programs: A Graphical Winnowing System for Haskell. In HPFC'95 — High Performance Functional Computing, pp. 208–221, Denver, CO, Apr. 10–12, 1995. 〈URL:http://www.dcs.st-and.ac.uk/~kh/papers/hpfc95/hpfc95.html〉
S. Junaidu. NAIRA: A Parallel Haskell Compiler. In IFL'97 — Intl. Workshop on the Implementation of Functional Languages, Univ. of St. Andrews, Scotland, Sep. 10–12, 1997.
H-W. Loidl and P.W. Trinder. Engineering Large Parallel Functional Programs. In IFL'97 — Intl. Workshop on the Implementation of Functional Languages, Univ. of St. Andrews, Scotland, Sep. 10–12, 1997.
D. Long and R. Garigliano. Inheritance hierarchies. Technical Report 4/88, Dept. of Computer Science, Univ. of Durham, 1988.
D. Long and R. Garigliano. Reasoning by Analogy and Causality: A model and application. Artificial Intelligence. Ellis Horwood, 1994.
R.G. Morgan, M.H. Smith, and S. Short. Translation by Meaning and Style in Lolita. In Intl. BCS Conf. — Machine Translation Ten Years On, Cranfield University, Nov. 1994.
P.W. Trinder, K. Hammond, H-W. Loidl, and S.L. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8(1), Jan. 1998.
P.W. Trinder, K. Hammond, J.S. Mattson Jr., A.S Partridge, and S.L. Peyton Jones. GUM: a Portable Parallel implementation of Haskell. In PLDI'96 — Programming Languages Design and Implementation, pp. 79–88, Philadelphia, PA, May 1996.
N. Winstanley. A Type-Sensitive Preprocessor for Haskell. In Glasgow Workshop on Functional Programming, Ullapool, Scotland, Sep. 15–17, 1997.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Loidl, HW. et al. (1998). Parallelising a large functional program or: Keeping LOLITA busy. In: Clack, C., Hammond, K., Davie, T. (eds) Implementation of Functional Languages. IFL 1997. Lecture Notes in Computer Science, vol 1467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055432
Download citation
DOI: https://doi.org/10.1007/BFb0055432
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64849-9
Online ISBN: 978-3-540-68528-9
eBook Packages: Springer Book Archive