2017
DOI: 10.1142/s0129626417400059
|View full text |Cite
|
Sign up to set email alerts
|

SPar: A DSL for High-Level and Productive Stream Parallelism

Abstract: This paper introduces SPar, an internal C++ Domain-Specific Language (DSL) that supports the development of classic stream parallel applications. The DSL uses standard C++ attributes to introduce annotations tagging the notable components of stream parallel applications: stream sources and stream processing stages. A set of tools process SPar code (C++ annotated code using the SPar attributes) to generate FastFlow C++ code that exploits the stream parallelism denoted by SPar annotations while targeting shared … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2

Citation Types

0
75
1
9

Year Published

2017
2017
2021
2021

Publication Types

Select...
6
1

Relationship

5
2

Authors

Journals

citations
Cited by 63 publications
(85 citation statements)
references
References 7 publications
0
75
1
9
Order By: Relevance
“…25 Another way is to focus on Domain-Specific Language (DSL) which aims representing parallelism in stream-based applications, like SPar based on C++. 26 Our work differs from the previous studies in two important aspects. First, we propose to explicitly specify the accelerator kernel as a dataflow graph, and to easily add accelerator function calls in the host code, and the data transfers.…”
contrasting
confidence: 58%
See 1 more Smart Citation
“…25 Another way is to focus on Domain-Specific Language (DSL) which aims representing parallelism in stream-based applications, like SPar based on C++. 26 Our work differs from the previous studies in two important aspects. First, we propose to explicitly specify the accelerator kernel as a dataflow graph, and to easily add accelerator function calls in the host code, and the data transfers.…”
contrasting
confidence: 58%
“…One way is to focus on application and domain‐specific accelerators: Neural network, Bayesian learning, bioinformatics, stencil computing, energy‐efficient accelerators for graph analytics algorithms, and irregular applications mapping . Another way is to focus on Domain‐Specific Language (DSL) which aims representing parallelism in stream‐based applications, like SPar based on C++ …”
Section: Related Workmentioning
confidence: 99%
“…Attempts to produce more powerful abstractions, ready-to-use by the programmer, have been made in few past works. In [26] a DSL for streaming applications has been developed using the C++11 attributes to annotate the code by introducing parallel patterns (pipelines and functional replication). GrPPi [27] is a high-level C++11 interface for writing parallel programs featuring a pattern-based approach similar to the one proposed in this paper.…”
Section: Related Workmentioning
confidence: 99%
“…A similar approach, which leverages the new C++1x features, consists of annotating the sequential code with C++ attributes to introduce parallel patterns in specific regions of code (usually compute-intensive kernels). Then, a source-to-source compiler is responsible for translating the annotated C++ code into a parallel code linked to the proper pattern-based runtime library [20,37].…”
Section: Parallel Pattern-based Approachesmentioning
confidence: 99%
“…Some of these frameworks, such as P 3 L [5], ASSIST [57], and SAC [36], provide a new language used to introduce pattern abstractions already in the early phases of the software development process. More recent approaches like FastFlow [22], SkePU [32], GrPPI [26], SPar [37], and PACXX [38], rely on new features of modern C++ language. Patterns are introduced by instantiating class objects at any place in the code or by using suitable C++11 attributes as in SPar.…”
Section: Examples Of Parallel Pattern-based Codementioning
confidence: 99%