-
Notifications
You must be signed in to change notification settings - Fork 130
Propagation engines
schlangster edited this page May 24, 2014
·
1 revision
The update propagation strategy is implemented by a propagation engine. This library originated as a research project to compare multiple parallel propagation algorithms; however, those that did not perform well have been removed or consolidated, so three distinct engines remain:
Engine | Description |
---|---|
Toposort | Single-threaded propagation with minimum overhead. Also supports parallelism. |
Pulsecount | Scalable parallel updating at the cost of additional overhead. |
Subtree | A hybrid approach between single-threaded Toposort and Pulsecount to balance overhead and parallel utilization. |
As a general guideline, if your graph consists of trivial operations only, parallelization is not worth it, so use Toposort<sequential>
.
If it mostly consists of expensive operations, use Pulsecount<parallel>
.
If it contains some expensive operations but mostly trivial nodes, use Subtree<parallel>
.