SPar is an internal C++ Domain-Specific Language (DSL) for expressing stream parallelism.
Griebler, D.; Danelutto, M.; Torquati, M.; Fernandes, L. G. SPar: a DSL for High-Level and Productive Stream Parallelism. Parallel Processing Letters (PPL), 27 (01), pp. 1740005, 2017. [PDF]
Griebler, Dalvan; Filho, Renato B H; Danelutto, Marco; Fernandes, Luiz Gustavo. High-Level and Productive Stream Parallelism for Dedup, Ferret, and Bzip2. International Journal of Parallel Programming, pp. 1-19, 2018. [PDF]
There are more publications here
contains the 'spar' compiler, which is responsible for recognizing SPar annotation and generate stream-based parallel code targeting multi-core systems with FastFlow library (which builds on top of Pthreads)
contains all documentation
examples using SPar annotations
are the libraries used by SPar
$ bin/spar -std=c++1y -spar_file <filename>.cpp -o <filename>
-
-spar_print => used to print in the screen the generated code
-
-spar_ondemand [<queue_size>] => used to generate ondmand scheduler
-
-spar_ordered => used to preserve the stream elements' ordered
-
-spar_blocking => used to activate the blocking mode of FastFlow
Obs: you may use '-h' to see more options