Realisations for Non-Strict Languages
Parallel implementations of non-strict functional languages using graph reduction are all based on the following model:
The graph is held in one or more large heap memories (see below);
There are a number of processing agents each of which uses one or more (slightly modified) sequential abstract machines to execute a thread in order to evaluate some part of the graph to WHNF;
Threads that are not currently being executed reside in one or more thread pools — if they have not yet started evaluation, they are often called sparks (see below) and may reside in one or more separate spark pools;
Synchronisation is required whenever a thread requires the value of an expression that is currently being evaluated by another thread.
KeywordsMigration Flare Assure Posit Paral
Unable to display preview. Download preview PDF.