Results 1 -
2 of
2
GUM: a portable parallel implementation of Haskell
, 1996
"... GUM is a portable, parallel implementation of the Haskell functional language. Despite sustained research interest in parallel functional programming, GUM is one of the first such systems to be made publicly available. GUM is message-based, and portability is facilitated by using the PVM communicati ..."
Abstract
-
Cited by 68 (26 self)
- Add to MetaCart
GUM is a portable, parallel implementation of the Haskell functional language. Despite sustained research interest in parallel functional programming, GUM is one of the first such systems to be made publicly available. GUM is message-based, and portability is facilitated by using the PVM communications harness that is available on many multi-processors. As a result, GUM is available for both shared-memory (Sun SPARCserver multiprocessors) and distributed-memory (networks of workstations) architectures. The high message-latency of distributed machines is ameliorated by sending messages asynchronously, and by sending large packets of related data in each message. Initial performance figures demonstrate absolute speedups relative to the best sequential compiler technology. To improve the performance of a parallel Haskell program GUM provides tools for monitoring and visualising the behaviour of threads and of processors during execution.
Automatic Spark Strategies and Granularity for a Parallel Functional Language Reducer
- In CONPAR '94. Springer-Verlag LNCS
, 1994
"... . This paper considers the issue of dynamic task control in the context of a parallel Haskell implementation on the GRIP multiprocessor. For the first time, we report the effect of our task control strategies on task granularity, as measured in terms of dynamic heap allocations. This gives a concret ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
. This paper considers the issue of dynamic task control in the context of a parallel Haskell implementation on the GRIP multiprocessor. For the first time, we report the effect of our task control strategies on task granularity, as measured in terms of dynamic heap allocations. This gives a concrete means of measuring the effectiveness of these strategies other than wall-clock timings, which are notoriously uninformative. 1 Introduction Compared with most conventional approaches to parallel programming, it is comparatively easy to write parallel functional programs. Deadlock is impossible. Because programs are deterministic, they may be debugged on sequential hardware. Programs can be highly scalable, running without change on different processor configurations or even architectures. However this flexibility places a high load on the functional compiler and runtime system. Our approach is to exploit parallelism which is notionally fairly fine-grained, but which can be dynamically com...

