EQUALS --- Fast Parallel Evaluation of A Lazy Language

Owen Kaser, C. R. Ramakrishnan, I. V. Ramakrishnan, R. Sekar


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 nu-G-machine and GAML) as well as with the performance of SML/NJ, a sequential implementation of a strict language.

Bibtex Entry:

author = {Owen Kaser and   C. R. Ramakrishnan and  I. V. Ramakrishnan and  R. Sekar},
title = {{EQUALS} --- Fast Parallel Evaluation of A Lazy Language},
journal = {Journal of Functional Programming ({JFP})},
volume = {7},
number = {2},
pages = {183--217},
year = {1997}

Full Paper: [pdf]

Home | Papers

C. R. Ramakrishnan