https://github.com/alpha-unito/pico
A C++ framework for data analytics pipelines
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Keywords
data-analytics
high-performance
multi-core
pipelines
Last synced: 5 months ago
·
JSON representation
Repository
A C++ framework for data analytics pipelines
Basic Info
Statistics
- Stars: 26
- Watchers: 7
- Forks: 5
- Open Issues: 19
- Releases: 0
Topics
data-analytics
high-performance
multi-core
pipelines
Created about 9 years ago
· Last pushed almost 6 years ago
https://github.com/alpha-unito/pico/blob/master/
PiCo: High-Performance Data-Analytics Pipelines in C++ =============== [](https://travis-ci.org/alpha-unito/pico) [](https://www.gnu.org/licenses/lgpl-3.0) [](http://github.com/alpha-unito/pico/releases) [](http://github.com/alpha-unito/pico/issues) PiCo (**Pi**peline **Co**mposition) is an open-source C++11 header-only DSL for *high-performance data analytics*, featuring low latency, high throughput, and minimal memory footprint on multi-core platforms. Take a look to the [word-count](examples/word-count/pico_wc.cpp) code to see how easy is writing a PiCo pipeline! ## Report bugs + get help https://github.com/alpha-unito/pico/issues/new ## Build and run tests The following steps require `cmake >=3.1` as build system. Get PiCo: ```bash git clone https://github.com/alpha-unito/pico.git ``` The current implementation is based on [FastFlow](https://github.com/fastflow/fastflow) as runtime system. Get it and a link it: ```bash cd pico git clone https://github.com/fastflow/fastflow.git ln -s fastflow/ff . ``` :rescue_worker_helmet: A better solution for including FastFlow as dependency is under development! Build and run tests and examples: (from `pico` root directory) ```bash mkdir build && cd build cmake .. -DPICO_ENABLE_UNIT_TEST=ON cmake --build . ctest ``` ## Use PiCo in your code Good news! PiCo is header-only, you do not need to build/link any library to use it in your code. Just include PiCo headers at the beginning of your source file: ```c++ #include "pico/pico.hpp" ``` and use good ol' compiler flags to include PiCo (and FastFlow) when compiling your `app`: ```bash git clone https://github.com/alpha-unito/pico.git cd pico git clone https://github.com/fastflow/fastflow.git ln -s fastflow/ff . g++ -I/path/to/pico/include -Iff app.cc ``` :rescue_worker_helmet: A modern CMake-based solution for linking PiCo (with its dependencies) is under development! ## Examples The [examples](examples) folder contains some proof-of-concept applications, showing the PiCo user experience: - [word-count](examples/word-count): PiCo pipelines 101 + visualizing application graphs - [stock-market](examples/stock-market): batch vs stream pipelines - [page-rank](examples/page-rank): iterative pipelines ## PiCo Team Maurizio Drocco(maintainer) Claudia Misale (creator + co-maintainer) Alberto Riccardo Martinelli (co-maintainer) #### Contributors Marco Aldinucci (boss) Massimo Torquati (FastFlow maintainer) Guy Tremblay (DSL wizard) ## How to cite PiCo C. Misale, M. Drocco, G. Tremblay, A. R. Martinelli, and M. Aldinucci, "PiCo: High-Performance Data Analytics Pipelines in Modern C++," Future Generation Computer Systems, Volume 87, 2018. [](https://doi.org/10.1016/j.future.2018.05.030) [](https://dblp.uni-trier.de/rec/bibtex/journals/fgcs/MisaleDTMA18) [](https://dblp.uni-trier.de/rec/bib2/journals/fgcs/MisaleDTMA18.bib) [](https://dblp.uni-trier.de/rec/ris/journals/fgcs/MisaleDTMA18.ris)
Owner
- Name: Parallel programming: Alpha group
- Login: alpha-unito
- Kind: organization
- Location: Torino, IT
- Website: http://alpha.di.unito.it
- Repositories: 9
- Profile: https://github.com/alpha-unito
Parallel Computing research cluster, Department of Computer Science, University of Torino