This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
ffnamespace:architecture [2014/08/14 13:31] aldinuc |
ffnamespace:architecture [2014/08/14 13:36] aldinuc [Core Patterns] |
||
---|---|---|---|
Line 53: | Line 53: | ||
At the core patterns level, patterns to build a graph of ''ff_node''s are defined. Since the graph of ''ff_node''s is a streaming network, any FastFlow graph is built using two streaming patterns (''farm'' and ''pipeline'') and one pattern-modifier (''loopback'', to build cyclic networks). These patterns can be arbitrarily nested to build large and complex graphs. However, not all graphs can be build. This enforce the correctness (by-construction) of all streaming networks that can be generated. In particular, they are deadlock-free and data-race free. | At the core patterns level, patterns to build a graph of ''ff_node''s are defined. Since the graph of ''ff_node''s is a streaming network, any FastFlow graph is built using two streaming patterns (''farm'' and ''pipeline'') and one pattern-modifier (''loopback'', to build cyclic networks). These patterns can be arbitrarily nested to build large and complex graphs. However, not all graphs can be build. This enforce the correctness (by-construction) of all streaming networks that can be generated. In particular, they are deadlock-free and data-race free. | ||
+ | |||
+ | === Nonblocking and Blocking behaviour === | ||
+ | |||
+ | FastFlow run-time is designed to exhibit a nonblocking behaviour (by way of lock-free and wait-free algorithms, at least in the synchronisation critical paths). This design choice mainly targets efficiency for very fine grain parallelism. | ||
+ | |||
+ | === Deadlock avoidance === | ||
=== Accelerator mode === | === Accelerator mode === | ||
Line 76: | Line 82: | ||
More details on FastFlow accelerator technology can be found in [ADK11]. | More details on FastFlow accelerator technology can be found in [ADK11]. | ||
- | === Nonblocking and Blocking behaviour === | ||
- | |||
- | === Deadlock avoidance === | ||