Fastflow: High‐Level and Efficient Streaming on Multicore
This chapter first outlines FastFlow design and then shows sample use of the FastFlow programming environment together with performance results achieved on various state‐of‐the‐art multicore architectures. The FastFlow framework has been designed according to four foundational principles: layered de...
Saved in:
| Published in | Programming multi‐core and many‐core computing systems pp. 261 - 280 |
|---|---|
| Main Authors | , , , |
| Format | Book Chapter |
| Language | English |
| Published |
Hoboken, NJ, USA
John Wiley & Sons, Inc
24.01.2017
|
| Subjects | |
| Online Access | Get full text |
| ISBN | 0470936908 9780470936900 |
| DOI | 10.1002/9781119332015.ch13 |
Cover
| Summary: | This chapter first outlines FastFlow design and then shows sample use of the FastFlow programming environment together with performance results achieved on various state‐of‐the‐art multicore architectures. The FastFlow framework has been designed according to four foundational principles: layered design; efficiency in base mechanisms; support for stream parallelism; and a programming model based on design pattern/algorithmic skeleton concepts. The core of the FastFlow framework provides an efficient implementation of single‐producer‐single‐consumer (SPSC) first in‐first out (FIFO) queues. The next tier up extends from one‐to‐one queues to one‐to‐many, many‐to‐one, and many‐to‐many synchronizations and data flows, which are implemented using only SPSC queues and arbiter threads, thus providing lock‐free and wait‐free arbitrary dataflow graphs. When designing and implementing new parallel applications using FastFlow, programmers instantiate patterns provided by FastFlow to adapt them to the specific needs of the application at hand. The chapter demonstrates how the principal FastFlow patterns may be used in a parallel application. |
|---|---|
| ISBN: | 0470936908 9780470936900 |
| DOI: | 10.1002/9781119332015.ch13 |