Parallelising a large functional program or: Keeping LOLITA busy
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.
KeywordsParallel Program Functional Program Data Parallelism Thresholding Strategy Pragmatic Analysis
Unable to display preview. Download preview PDF.
- 1.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.Google Scholar
- 2.A. Gill and P. Wadler. Real World Applications of Functional Programs. 〈URL:http://www.dcs. gla.ac.uk/fp/realworld.html〉Google Scholar
- 3.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〉Google Scholar
- 4.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.Google Scholar
- 5.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.Google Scholar
- 6.D. Long and R. Garigliano. Inheritance hierarchies. Technical Report 4/88, Dept. of Computer Science, Univ. of Durham, 1988.Google Scholar
- 7.D. Long and R. Garigliano. Reasoning by Analogy and Causality: A model and application. Artificial Intelligence. Ellis Horwood, 1994.Google Scholar
- 8.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.Google Scholar
- 9.P.W. Trinder, K. Hammond, H-W. Loidl, and S.L. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8(1), Jan. 1998.Google Scholar
- 10.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.Google Scholar
- 11.N. Winstanley. A Type-Sensitive Preprocessor for Haskell. In Glasgow Workshop on Functional Programming, Ullapool, Scotland, Sep. 15–17, 1997.Google Scholar