FastFlow: Efficient Parallel Streaming Applications on Multi-core
Marco Aldinucci, Massimo Torquati, Massimiliano Meneghin

TL;DR
FastFlow is a low-level programming framework that significantly improves the efficiency of streaming applications on multi-core shared memory architectures, outperforming existing frameworks in micro-benchmarks and real-world tasks.
Contribution
Introducing FastFlow, a lock-free queue-based framework optimized for streaming applications on multi-core architectures, with demonstrated superior performance over Cilk, OpenMP, and TBB.
Findings
FastFlow outperforms Cilk, OpenMP, and TBB in micro-benchmarks.
FastFlow achieves up to +226% speedup in real-world protein alignment tasks.
FastFlow is more efficient for fine-grain tasks on multi-core systems.
Abstract
Shared memory multiprocessors come back to popularity thanks to rapid spreading of commodity multi-core architectures. As ever, shared memory programs are fairly easy to write and quite hard to optimise; providing multi-core programmers with optimising tools and programming frameworks is a nowadays challenge. Few efforts have been done to support effective streaming applications on these architectures. In this paper we introduce FastFlow, a low-level programming framework based on lock-free queues explicitly designed to support high-level languages for streaming applications. We compare FastFlow with state-of-the-art programming frameworks such as Cilk, OpenMP, and Intel TBB. We experimentally demonstrate that FastFlow is always more efficient than all of them in a set of micro-benchmarks and on a real world application; the speedup edge of FastFlow over other solutions might be bold…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Cloud Computing and Resource Management · Advanced Data Storage Technologies
