EQUALS – a fast parallel implementation of a lazy language

  • Authors:
  • Owen Kaser;C. R. Ramakrishnan;I. V. Ramakrishnan;R. C. Sekar

  • Affiliations:
  • Department of Mathematics, Statistics and Computer Science, University of New Brunswick at Saint John, Saint John, New Brunswick NB E2L 4L5, Canada;Department of Computer Science, SUNY at Stony Brook, Stony Brook, NY 11794-4400, USA;Department of Computer Science, SUNY at Stony Brook, Stony Brook, NY 11794-4400, USA;Department of Computer Science, Iowa State University, Ames, IA 50010, USA

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes EQUALS, a fast parallel implementation of a lazy functional language on a commercially available shared-memory parallel machine, the Sequent Symmetry. In contrast to previous implementations, we propagate normal form demand at compile time as well as run time, and detect parallelism automatically using strictness analysis. The EQUALS implementation indicates the effectiveness of NF-demand propagation in identifying significant parallelism and in achieving good sequential as well as parallel performance. Another important difference between EQUALS and previous implementations is the use of reference counting for memory management, instead of mark-and-sweep or copying garbage collection. Implementation results show that reference counting leads to very good scalability and low memory requirements, and offers sequential performance comparable to generational garbage collectors. We compare the performance of EQUALS with that of other parallel implementations (the 〈v, G〉-machine and GAML) as well as with the performance of SML/NJ, a sequential implementation of a strict language.