Interesting blog series on parallel programming. The first post is on Superscalar Sequences and Task Graphs.
The “superscalar sequence” pattern is related to the idea of “futures”. Futures are objects that explicitly represent in-progress asynchronous computations and typically provide the ability to check for completion with or without blocking. Futures may also provide operations to check completion percentages of computations and to cancel operations in progress. Futures are also occasionally useful for fine-grained control of asynchronous operations, but in general future-like controls can also be built into the data objects of the sequence pattern and only invoked when necessary.