Contents of Glasgow-haskell-users Digest, Vol 17, Issue 8

Keean Schupke k.schupke at imperial.ac.uk
Tue Jan 18 07:42:34 EST 2005


Jost Berthold wrote:

> In order to force the *complete* evaluation of your result, you
> could use Evaluation Strategies. Strategies are a concept
> introduced for increasing parallelism in Glasgow parallel Haskell.
> Parallelism and lazy evaluation are in a way contrary aims, since you
> want your parallel evaluation to start ASAP, even if there is no
> actual demand on its result.

I think this is not quite right... surely you don't want to run the function
(even in parallel) if there is _no_ demand on its result.

The compiler will know at compile time whether the result is required for
a lot of cases... the only ones that cause problems are where program flow
depends on IO actions. In which case you implement speculative execution
(like a modern CPU does) - if you don't know whether a function result
will be required and you have a free execution unit, you run the function.
If at a later time it becomes apparent the results of some running funtions
will not be required, you kill them, throw away the data, and free the
execution unit to do something more useful.

    Keean.


More information about the Glasgow-haskell-users mailing list