MPOpt Framework is a highly optimized toolchain for efficient development and execution of stream applications on heterogeneous MPSoC platforms: it enables developers to quickly build Synchronous Data Flow (SDF) based applications using a simple programming interface based on standard C language.
A programmer easily describes SDF graphs by enclosing code within annotated blocks, that identify tasks, and using custom directives to specify the flow of data among tasks. A front-end component automatically extracts a graph model containing tasks and dataflow information: then a constraint programming based solver and a backend component manage all the aspects related to allocation and scheduling of hardware resources, in particular mapping of activities on processing elements, task synchronization and data transfers.
As depicted in the following figure, we can identify four main blocks: