Skip to main content
Department of Information Technology
UPMARC, the Uppsala Programming for Multicore Architectures Research Center

UPMARC Workshop on Task-Based Parallel Programming

FastFlow: high-level programming patterns with non-blocking lock-free run-time support

Marco Aldinucci, Computer Science Dept., University of Torino, Italy

Abstract. Achieving peak performance on modern multi-core architectures is hard and may require substantial programming effort. The synchronisation of many processes accessing shared memory has been a fundamental problem of parallel computing for years, and many solutions have been proposed to address this issue. Non-blocking synchronisation and transactional primitives have been envisaged as a way to reduce synchronisation overhead. Despite sometimes being effective (and garnering much attention in the research community), they are only one facet of the problem, as their exploitation also requires non-trivial programming skills.

FastFlow aims to bridge these two facets by providing C++ programmers with high-level streaming patterns (in a STL style) on top of a lock-free non-blocking run-time support. On the one hand, the programmer can design applications while reasoning in a traditional Object-Oriented style without dealing with synchronisation complexity. On the other hand, the FastFlow run-time supports the approach with very-low-latency synchronisation support (20-50 clock-cycles/msg core-to-core) thus reducing parallelisation overhead and extending the range of scalable applications toward fine-grained high-frequency applications (e.g. hundreds of ns per task).

FastFlow home page:

Updated  2012-09-06 22:44:26 by Elisabeth Larsson.