Difference between revisions of "Parallel/Glossary"
< Parallel
Jump to navigation
Jump to search
(→A-H) |
(→S-Z: possible approach to compare contrast) |
||
Line 25: | Line 25: | ||
; spark |
; spark |
||
: Sparks are specific to parallel Haskell. Abstractly, a spark is a pure computation which may be evaluated in parallel. Sparks are introduced with the par combinator; the expression (<code>x `par` y</code>) "sparks off" <code>x</code>, telling the runtime that it may evaluate the value of <code>x</code> in parallel to other work. Whether or not a spark is evaluated in parallel with other computations, or other Haskell IO threads, depends on what your hardware supports and on how your program is written. Sparks are put in a work queue and when a CPU core is idle, it can execute a spark by taking one from the work queue and evaluating it. |
: Sparks are specific to parallel Haskell. Abstractly, a spark is a pure computation which may be evaluated in parallel. Sparks are introduced with the par combinator; the expression (<code>x `par` y</code>) "sparks off" <code>x</code>, telling the runtime that it may evaluate the value of <code>x</code> in parallel to other work. Whether or not a spark is evaluated in parallel with other computations, or other Haskell IO threads, depends on what your hardware supports and on how your program is written. Sparks are put in a work queue and when a CPU core is idle, it can execute a spark by taking one from the work queue and evaluating it. |
||
+ | : see spark (vs thread) |
||
− | : Sparks are ideal for speeding up pure calculations where adding non-deterministic concurrency would just make things more complicated. |
||
+ | |||
+ | ; spark (vs thread) |
||
+ | : On a multi-core machine, both threads and sparks can be used to achieve |
||
+ | parallelism. Threads give you concurrent, non-deterministic parallelism, |
||
+ | while sparks give you pure deterministic parallelism. Haskell threads are ideal for applications like network servers where you need to do lots of I/O and using concurrency fits the nature of the problem. Sparks are ideal for speeding up pure calculations where adding non-deterministic concurrency would just make things more complicated. |
||
; OS thread |
; OS thread |
Revision as of 10:06, 20 April 2011
A-H
- bound thread
- concurrency
- distributed
- distributed memory model
- Haskell thread
- A Haskell thread is a thread of execution for IO code. Multiple Haskell threads can execute IO code concurrently and they can communicate using shared mutable variables and channels.
- see spark (vs threads)
I-M
N-R
- parallel(ism)
S-Z
- shared memory model
- spark
- Sparks are specific to parallel Haskell. Abstractly, a spark is a pure computation which may be evaluated in parallel. Sparks are introduced with the par combinator; the expression (
x `par` y
) "sparks off"x
, telling the runtime that it may evaluate the value ofx
in parallel to other work. Whether or not a spark is evaluated in parallel with other computations, or other Haskell IO threads, depends on what your hardware supports and on how your program is written. Sparks are put in a work queue and when a CPU core is idle, it can execute a spark by taking one from the work queue and evaluating it. - see spark (vs thread)
- spark (vs thread)
- On a multi-core machine, both threads and sparks can be used to achieve
parallelism. Threads give you concurrent, non-deterministic parallelism, while sparks give you pure deterministic parallelism. Haskell threads are ideal for applications like network servers where you need to do lots of I/O and using concurrency fits the nature of the problem. Sparks are ideal for speeding up pure calculations where adding non-deterministic concurrency would just make things more complicated.
- OS thread
- thread
- see Haskell thread, OS thread and bound thread