Go to the first, previous, next, last section, table of contents.
Concurrent and Parallel Haskell are Glasgow extensions to Haskell
which let you structure your program as a group of independent
`threads'.
Concurrent and Parallel Haskell have very different purposes.
Concurrent Haskell is for applications which have an inherent
structure of interacting, concurrent tasks (i.e. `threads'). Threads
in such programs may be required. For example, if a concurrent
thread has been spawned to handle a mouse click, it isn't
optional -- the user wants something done!
A Concurrent Haskell program implies multiple `threads' running within
a single Unix process on a single processor.
You will find at least one paper about Concurrent Haskell hanging off
of Simon Peyton Jones's Web page;
`http://www.dcs.gla.ac.uk/~simonpj/'.
Parallel Haskell is about speed -- spawning threads onto multiple
processors so that your program will run faster. The `threads'
are always advisory -- if the runtime system thinks it can
get the job done more quickly by sequential execution, then fine.
A Parallel Haskell program implies multiple processes running on
multiple processors, under a PVM (Parallel Virtual Machine) framework.
Parallel Haskell is still relatively new; it is more about "research
fun" than about "speed." That will change.
Again, check Simon's Web page for publications about Parallel Haskell
(including "GUM", the key bits of the runtime system).
Some details about Concurrent and Parallel Haskell follow.
Go to the first, previous, next, last section, table of contents.