C. Flanagan et Rs. Nikhil, PHLUID - THE DESIGN OF A PARALLEL FUNCTIONAL LANGUAGE IMPLEMENTATION ON WORKSTATIONS, ACM SIGPLAN NOTICES, 31(6), 1996, pp. 169-179
This paper describes the distributed memory implementation of a shared
memory parallel functional language. The language is Id, an implicitl
y parallel, mostly functional language that is currently evolving into
a dialect of Haskell. The target is a distributed memory machine, bec
ause we expect these to be the most widely available parallel platform
s in the future. The difficult problem is to bridge the gap between th
e shared memory language model and the distributed memory machine mode
l. The language model assumes that all data is uniformly accessible, w
hereas the machine has a severe memory hierarchy: a processor's access
to remote memory (using explicit communication) is orders of magnitud
e slower than its access to local memory. Thus, avoiding communication
is crucial for good performance. The Id language, and its general dat
aflow-inspired compilation to multithreaded code are described elsewhe
re. In this paper, we focus on our new parallel runtime system and its
features for avoiding communication and for tolerating its latency wh
en necessary: multithreading, scheduling and load balancing; the distr
ibuted heap model and distributed coherent cacheing, and parallel garb
age collection. We have completed the first implementation, and we pre
sent some preliminary performance measurements.