Advertisement

Parallelising a large functional program or: Keeping LOLITA busy

  • Hans-Wolfgang Loidl
  • Richard Morgan
  • Phil Trinder
  • Sanjay Poria
  • Chris Cooper
  • Simon Peyton Jones
  • Roberto Garigliano
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1467)

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.

Keywords

Parallel Program Functional Program Data Parallelism Thresholding Strategy Pragmatic Analysis 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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. 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. 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. 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. 6.
    D. Long and R. Garigliano. Inheritance hierarchies. Technical Report 4/88, Dept. of Computer Science, Univ. of Durham, 1988.Google Scholar
  7. 7.
    D. Long and R. Garigliano. Reasoning by Analogy and Causality: A model and application. Artificial Intelligence. Ellis Horwood, 1994.Google Scholar
  8. 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. 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. 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. 11.
    N. Winstanley. A Type-Sensitive Preprocessor for Haskell. In Glasgow Workshop on Functional Programming, Ullapool, Scotland, Sep. 15–17, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Hans-Wolfgang Loidl
    • 1
  • Richard Morgan
    • 2
  • Phil Trinder
    • 3
  • Sanjay Poria
    • 2
  • Chris Cooper
    • 2
  • Simon Peyton Jones
    • 1
  • Roberto Garigliano
    • 2
  1. 1.Department of Computing ScienceUniversity of GlasgowGlasgowScotland, UK
  2. 2.Department of Computer ScienceUniversity of DurhamDurhamEngland, UK
  3. 3.The Computing DepartmentThe Open UniversityMilton KeynesEngland, UK

Personalised recommendations