A Parallel Implementation for Optimal Lambda-Calculus Reduction

Marco Pedicini and Francesco Quaglia

To appear at the 2nd International Conference on Principles and Practice of Declarative Programming (PPDP 2000), Montreal, Canada, September 20-22, 2000

Abstract

In this paper we present a parallel implementation of Lévy's optimal reduction for the lambda-calculus [Lev78]. In a similar approach to Lamping's one in [Lam90], we base our work on a graph reduction technique known as directed virtual reduction [DPR97] which is actually a restriction of Danos-Regnier virtual reduction [DR93].

The parallel implementation relies on a strategy for directed virtual reduction, namely half combustion, which we introduce in this paper. We embed in the implementation both a message aggregation technique, which allows a reduction of the communication overhead, and a fair policy for distributing dynamically originated load amongst processors. The aggregation technique is mandatory as the granularity of the computation is fine. Through this technique we obtain a linear speedup close to 80% of the ideal one on a shared memory multiprocessor. This result points out the viability of parallel implementations for optimal reduction.