Next: Thread management
Up: GUM
Previous: GUM
GUM (Graph reduction for a Unified Machine model) is a portable
Haskell parallel implementation [22], The basic design
concepts are more fully described in [13], [14].
- It is a runtime system for GHC. [16]
- It is portable.
- It is message based and uses PVM.[18]
- It requires networked processor-memory units (PE).
- It provides tools for monitoring and visualising PE activities
as well as thread activities over time.
- Two-level addressing scheme: one for local heap and another for
the global heap is used. Global virtual heap is formed from all the
local heaps.
- It supports independent garbage collection on each PE's local
heap. Garbage Collections for the individual PE local heaps within a
single global virtual heap without any need for their
synchronisation. Each PE implements part of the global heap in its
local heap.
- Threads distribution is performed lazily: no thread movement
between PEs for load balancing; thread moved to another PE only if the
latter is idle.
- Data distribution is performed eagerly: data copied between PEs
as and when requested.
- All messages are asynchronous: this has the effect of favouring
long-latency machines in the network.
- GUM bases: Sun Sparcs, DEC Alphas, Sun's symmetric
multiprocessors SPARC server.
- Significant speedups (for problems with large-grained
parallelism) is claimed.
Next: Thread management
Up: GUM
Previous: GUM
Ananda Amatya
2/16/1999