https://github.com/alpha-unito/pico

A C++ framework for data analytics pipelines

https://github.com/alpha-unito/pico

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
  • Host: GitHub
  • Owner: alpha-unito
  • License: lgpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 4.98 MB
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++
===============
[![Travis Build Status](https://travis-ci.org/alpha-unito/pico.svg?branch=master)](https://travis-ci.org/alpha-unito/pico)
[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0)
[![GitHub tag](https://img.shields.io/github/tag/alpha-unito/pico.svg)](http://github.com/alpha-unito/pico/releases)
[![GitHub Issues](https://img.shields.io/github/issues/alpha-unito/pico.svg)](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.  
[![PiCo_DOI_badge](https://img.shields.io/badge/DOI-https%3A%2F%2Fdoi.org%2F10.1016%2Fj.future.2018.05.030-blue.svg)](https://doi.org/10.1016/j.future.2018.05.030)
[![PiCo_BibTexview](https://img.shields.io/badge/BibTex-view-blue.svg)](https://dblp.uni-trier.de/rec/bibtex/journals/fgcs/MisaleDTMA18)
[![PiCo_BibTexdownload](https://img.shields.io/badge/BibTex-download-blue.svg)](https://dblp.uni-trier.de/rec/bib2/journals/fgcs/MisaleDTMA18.bib)
[![PiCo_RISdownload](https://img.shields.io/badge/RIS-download-blue.svg)](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

Parallel Computing research cluster, Department of Computer Science, University of Torino

GitHub Events

Total
Last Year