FastFlow
Original author(s) | Massimo Torquati and Marco Aldinucci |
---|---|
Initial release | 2010 |
Repository | github |
Written in | C++ |
Engine | |
Platform | Cross-platform |
License | GNU Lesser General Public License |
Website | calvados |
Search FastFlow on Amazon.
FastFlow is a cross-platform free and open-source software framework.[1][2][3]
Implemented in C++, this parallel programming framework is aimed at simplifying the development of efficient applications for multi-core platforms.
History[edit]
FastFlow as a project started in the beginning of 2010 by Massimo Torquati[4] (University of Pisa) and Marco Aldinucci[5] (University of Turin).
It has been used as a run-time system in three EU founded research projects: ParaPhrase[6], REPARA[7] and RePhrase[8], as well as Fix8, an extremely fast C++ open-source FIX framework.[9]
Features[edit]
FastFlow is a general-purpose C++ programming framework for heterogeneous parallel platforms.[10][11] It is designed as an algorithmic skeleton programming environment.
Architecture[edit]
FastFlow has been incrementally developed according to a layered design on top of Pthread/C++ standard programming framework.
If consist of three layers:
- Simple streaming network layer
- Arbitrary streaming network layer
- Streaming network patterns layer
The first layer, the Simple streaming network layer, provides lock-free Single Producer Single Consumer (SPSC) queues on top of the Pthread standard threading model.
The second layer, the Arbitrary streaming network layer, provides lock-free implementations for Single Producer Multiple Consumer (SPMC), Multiple Producer Single Consumer (MPSC) and Multiple Producer Multiple Consumer (MPMC) queues on top of the Single Producer Single Consumer (SPSC) implemented in the first layer.
Finally, the third layer, the Streaming network patterns layer, provides common stream parallel patterns.
Example[edit]
The following is a Hello World example using FastFlow:
#include <iostream>
#include <ff/pipeline.hpp>
using namespace ff;
class Stage1: public ff_node {
public:
void *svc(void *task) {
std::cout << "Hello world" << std: endl;
return NULL;
}
};
int main(int argc, char *argv[]){
ff_pipeline pipe;
pipe.add_stage(new Stage1());
if (pipe.run_and_wait_end() < 0) {
error("running pipeline\n");
return -1;
}
return 0;
}
Licensing[edit]
FastFlow is open source and is released under the GNU Lesser General Public License Version 3.
Awards[edit]
- Winner of HPC Advisory Council Spring 2011 University Award[12] - May 2011
- NVidia CUDA research award[citation needed] - April 2013
See also[edit]
Some use of "" in your query was not closed by a matching "".Some use of "" in your query was not closed by a matching "".
References[edit]
- ↑ Aldinucci, Marco; Danelutto, Marco; Kilpatrick, Peter; Torquati, Massimo (2017), "Fastflow: High-Level and Efficient Streaming on Multicore", Programming multi-core and many-core computing systems, John Wiley & Sons, Ltd, pp. 261–280, doi:10.1002/9781119332015.ch13, ISBN 978-1-119-33201-5, retrieved 2020-10-10
- ↑ Chapman, Barbara (2010). Parallel Computing: From Multicores and GPU's to Petascale. IOS Press. ISBN 978-1-60750-529-7. Search this book on
- ↑ Zsók, Viktória; Horváth, Zoltán; Csató, Lehel (2015-03-20). Central European Functional Programming School: 5th Summer School, CEFP 2013, Cluj-Napoca, Romania, July 8-20, 2013, Revised Selected Papers. Springer. ISBN 978-3-319-15940-9. Search this book on
- ↑ "Massimo Torquati - Google Scholar". scholar.google.com. Retrieved 2020-10-10.
- ↑ "Marco Aldinucci - Google Scholar". scholar.google.at. Retrieved 2020-10-10.
- ↑ "ParaPhrase — The ParaPhrase project". paraphrase.comp.rgu.ac.uk. Retrieved 2020-10-10.
- ↑ "REPARA project".
- ↑ "Tools". The EU Rephrase project. Retrieved 2020-10-11.
- ↑ "Who is Using FastFlow [FastFlow]". calvados.di.unipi.it. Retrieved 2020-10-10.
- ↑ Goli, Mehdi; Garba, Michael T.; Gonzláez–Vélez, Horacio (2012-06-01). "Streaming Dynamic Coarse-Grained CPU/GPU Workloads with Heterogeneous Pipelines in FastFlow". 2012 IEEE 14th International Conference on High Performance Computing and Communication 2012 IEEE 9th International Conference on Embedded Software and Systems: 445–452. doi:10.1109/HPCC.2012.67. Retrieved 2020-10-11.
- ↑ Jeannot, Emmanuel; Namyst, Raymond; Roman, Jean (2011-08-12). Euro-Par 2011 Parallel Processing: 17th International Euro-ParConference, Bordeaux, France, August 29 - September 2, 2011, Proceedings, Part II. Springer. ISBN 978-3-642-23397-5. Search this book on
- ↑ "HPC Advisory Council Announces Winner of Spring 2011 University Award Program". www.businesswire.com. 2011-06-20. Retrieved 2020-10-11.
External links[edit]
This article "FastFlow" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:FastFlow. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.