Code Monkey home page Code Monkey logo

mc-fastflow's Introduction

FastFlow
^^^^^^^^

FastFlow is a multi-cores programming framework implemented as a C++ template 
library that offers a set of mechanisms to support low-latency and 
high-bandwidth data flows in a network of threads running on
a cache-coherent multi-core architectures. On these architectures, one of the 
key performance issues concern memory fences, which are required to keep the 
various caches coherent. 
FastFlow provides the programmer with two basic mechanisms:
  1. efficient point-to-pint communication channels;
  2. a memory allocator.

Communication channels, as typical is in streaming applications, are 
unidirectional and asynchronous. They are implemented via fence-free FIFO
queues. The memory allocator is built on top of these queues, thus taking 
advantage of their efficiency.
On top of these basic machnisms FastFlow provides a library of explicitly 
parallel constructs (a.k.a. skeletons) such as pipeline and farm.
The farm skeleton, exploits functional replication and abstracts the 
parallel filtering of successive independent items of the stream under the 
control of a scheduler.


-----------------

See the BUILD.ME file for instructions about Cmake builds and testing.

See tests directory for some simple runnable examples.

-----------------

FastFlow has been tested on:
 Linux with gcc (> 4.0.1): i386, x86_64
 Mac OS (>= 10.4) with gcc (> 4.0.1): x86_64, PowerPC G4, PowerPC G5
 Windows XP 32bit with Visual Studio 9 2008 Win32: i386, x86_64 
 Windows 7  64bit with Visual Studio 9 2008 Win32: x86_64 
 Windows 7  64bit with Visual Studio 9 2008 Win64: x86_64 
 Windows 7  64bit with Visual Studio 10 2010 Win32:  x86_64 
 Windows 7  64bit with Visual Studio 10 2010 Win64:  x86_64
 Windows with cygwin: not yet tested

Main development platform are Linux and MacOS.

Windows platform can be particuarly slow in debug mode due to iterator debugging and secure crt layers. Release mode appers to be not affected by the issue.
See http://blogs.warwick.ac.uk/ahazelden/entry/visual_studio_stl/

The following preprocessor directives 
/D_SECURE_SCL=0; /D_HAS_ITERATOR_DEBUGGING=0
(i.e. ADD_DEFINITIONS(-D_SECURE_SCL=0 -D_HAS_ITERATOR_DEBUGGING=0) in cmake)
might ameliorate the problem. Consider however that they cannot be used if 
the application links libraries compiled with different options (e.g. Boost).

============

Please report tips, improvements or bug to the FastFlow mailing list
(see http://calvados.di.unipi.it/fastflow) or directly to:
 Massimo Torquati <[email protected]> or <[email protected]>
 Marco Aldinucci  <[email protected]>

mc-fastflow's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.