Skip to content

StreamPU Documentation

Introduction

StreamPU is a DSEL for streaming applications written in C++. This documentation maily focuses on explaining the basic elements of the language from the developer point of view. The user documention is is currently underway.

Here are the main features of StreamPU:

  • Definition of modules, tasks and sockets (dataflow)
  • Elementary modules and tasks implementations
  • Parallel runtime (replication, pipeline)

The DSEL is suitable for SDR systems, video processing and more generally it matches single-rate SDF streaming applications.

Note

This library was previously named AFF3CT-core as it was first extracted from AFF3CT. Now that it is no longer specific to channel coding and digital communications, the project has been renamed to StreamPU, which is a more meaningful name.

Note

The DSEL term can be sometimes confusing and StreamPU can also be seen as a standard C++ library. The name "DSEL" comes from the ability to write interpreted Turing-complete programs using the C++ library.

Warning

This library is NOT intended to address data and task parallelisms. StreamPU focus on replication and pipeline parallelisms. For data parallelism, StreamPU combines well with OpenMP. If you look for task parallelism, using OpenMP can also be a possible solution, or other runtime like the excellent StarPU can be a good choice.

Contents of the Documentation

For Users

For Developpers