Implementing a Non-strict Functional Programming Language on a Threaded Architecture
Shigeru Kusakabe(Dept. of Intelligent Systems, Kyushu University
), Kentaro Inenaga(Dept. of Intelligent Systems, Kyushu University
), Makoto Amamiya(Dept. of Intelligent Systems, Kyushu University
), Xinan Tang(EE & CE Dept. University of Delaware
), Andres Marquez(EE & CE Dept. University of Delaware
), Guang R. Gao(EE & CE Dept. University of Delaware
)
To appear at (HIPS'99), San Juan, Puerto Rico, USA, April 12, 1999
Abstract
We discuss implementation issues of V, a non-strict functional
programming language, on EARTH (Efficient Architecture for Running
THreads).
Functional languages are attractive for writing parallel programs due
to their expressive power and clean semantics. We are developing a
non-strict functional programming language, called V, whose abstract
execution model is an optimized dataflow model, called Datarol. EARTH
is a multithread architecture derived from a dataflow architecture,
and realizes efficient multithreading with off-the-shell
microprocessor-based processing nodes.
The goal is to implement V efficiently on EARTH, realizing a
high-level programming language on a high performance architecture.
The combination of a language with fine-grain parallelism and a
dataflow evaluation scheme is suitable for high-level programming for
massively parallel computation.
In compiling V to EARTH, we use a virtual machine code DVMC (Datarol
Virtual Machine Code) as an intermediate code, and Threaded-C as
target code. Threaded-C is an explicit multi-threaded language,
targeted for the EARTH model.
We executed sample programs on EARTH-MANNA. The preliminary
performance results are encouraging. The codes generated from V
programs by our compiler achieved comparable performance with the
performance of hand-written Threaded-C codes. Although further
improvement is required for non-strict data-structures, we conclude
that we can realize high-level programming and achieve good
performance with V on EARTH.