This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ffnamespace:about [2014/01/18 15:09] aldinuc |
ffnamespace:about [2015/03/07 15:14] aldinuc |
||
---|---|---|---|
Line 4: | Line 4: | ||
- | FastFlow (斋戒流) is a C++ parallel programming framework advocating high-level, pattern-based parallel programming. It chiefly supports streaming and data parallelism, targeting heterogenous platforms composed of clusters of shared-memory platforms, possibly equipped with computing accelerators such as NVidia GPGPUs, Xeon Phi, Tilera TILE64. | + | FastFlow (快速流) is a C++ parallel programming framework advocating high-level, pattern-based parallel programming. It chiefly supports streaming and data parallelism, targeting heterogenous platforms composed of clusters of shared-memory platforms, possibly equipped with computing accelerators such as NVidia GPGPUs, Xeon Phi, Tilera TILE64. |
The main design philosophy of FastFlow is to provide application designers with key features for parallel programming (e.g. time-to-market, portability, efficiency and performance portability) via suitable parallel programming abstractions and a carefully designed run-time support. | The main design philosophy of FastFlow is to provide application designers with key features for parallel programming (e.g. time-to-market, portability, efficiency and performance portability) via suitable parallel programming abstractions and a carefully designed run-time support. | ||
Line 16: | Line 16: | ||
* coupled usage of multi-core and accelerators. | * coupled usage of multi-core and accelerators. | ||
- | In other cases FastFlow is typically comparable to (and is some cases slightly faster than) state-of-the-art parallel programming frameworks such as Intel TBB, OpenMP, Cilk, etc. More details may be found on the [[ffnamespace:performance|performance]] page. | + | In other cases FastFlow is typically comparable to (and is some cases slightly faster than) state-of-the-art parallel programming frameworks such as Intel TBB, OpenMP, Cilk, etc. More details may be found on the [[ffnamespace:performance|performance]] page. A number of both micro-benchmarks and real-world applications has been developed with FastFlow (or ported from other parallel libraries) in order to asses its usability and performance, among the others: |
+ | |||
+ | * **Bowtie2**: fast and sensitive read alignment //(multicore; porting of the original version developed with pthreads and spinlocks)// | ||
+ | * **Two-phase video/image restoration** for impulsive/Gaussian noise //(multicore, GPGPUs, heterogeneous; original algorithm)// | ||
+ | * **Block-based Cholesky & LU decomposition** for dense matrices //(multicore, original algorithms)// | ||
+ | * **Yadt C4.5 classifier** //(multicore; original algorithm)// | ||
+ | * **CWC Gillespie simulator** for systems biology //(multicore, distributed, GPGPUs; original algorithm)// | ||
+ | * SWPS3: vectorized **Smith-Waterman** local alignment software //(multicore; porting of the original version developed with pthreads)// | ||
+ | * **pbzip2**: Parallel BZIP2 //(multicore; porting of the original version developed with POSIX processes)// | ||
+ | * Fast networks **Deep Packet Inspection** //(multicore; original algorithm)// | ||
+ | * Several standard algorithms, such as nqueens, fibonacci, QT-mandebrot, matrix block multiplication, ... //(multicore, GPGPUs, distributed, heterogeneous)// | ||
+ | * over 100 micro-benchmarks testing individual features and patterns //(multicore, GPGPUs, distributed, heterogeneous)// | ||
+ | |||
+ | The source code of (almost) all applications can be found in the [[https://sourceforge.net/p/mc-fastflow/code/|FastFlow SVN repository]] under either LGPLv3 or GNU GPL license. The design of applications and their performance are described in [[http://alpha.di.unito.it/fastflow-papers|research papers]]. | ||
==== Design ==== | ==== Design ==== | ||
Line 29: | Line 42: | ||
FastFlow has been adopted by a number of research projects and third-party development initiatives, and has thus been tested in a variety of application scenarios: from systems biology to high-frequency trading. | FastFlow has been adopted by a number of research projects and third-party development initiatives, and has thus been tested in a variety of application scenarios: from systems biology to high-frequency trading. | ||
+ | |||
+ | ==== Big Pictures ==== | ||
+ | |||
+ | ^FastFlow/C++11 in REPARA^FastFlow big picture (2014)^App: faster Bowtie2 (2013)^ | ||
+ | |[[http://calvados.di.unipi.it/storage/paper_files/2015_Artemis_REPARA_FF_poster.pdf|{{:ffnamespace:2015_artemis_repara_ff.png?220|}}]]|[[http://calvados.di.unipi.it/storage/paper_files/2014_ff_poster_hipeac.pdf|{{:ffnamespace:2014_ff_poster_hipeac.png?220}}]]|[[http://calvados.di.unipi.it/storage/paper_files/2013_ff_botie2_mem_affinity_acaces.pdf|{{:ffnamespace:2013_ff_botie2_mem_affinity_acaces.png?220}}]]| | ||
+ | |Artemis Co-Summit 2015| |HiPEAC-ACACES 2013| | ||
+ | |||
+ | ^FastFlow & its applications (2014)^Lock-less programming with FastFlow (2012)^ | ||
+ | |[[http://calvados.di.unipi.it/storage/paper_files/2014_ff_poster_openday_unito.pdf|{{:ffnamespace:2014_ff_poster_openday_unito.png?330|}}]]|[[http://calvados.di.unipi.it/storage/paper_files/2012_ACACES_poster.pdf|{{:ffnamespace:2012_acaces_poster.png?330}}]]| | ||
+ | |UniTO Industrial day 2014|HiPEAC-ACACES 2012| | ||
+ | |||
---- | ---- |