Structured Parallel Programming simplifies the development of parallel applications by substantially raising the level of abstraction presented to the parallel programmer. The programmer concentrates on computational aspects, having only an abstract high-level view of the parallel program, while all the most critical implementation choices are left to the programming tool and its run-time support.
In the years, our group has been actively involved in the development and maintenance of various structured parallel programming frameworks (e.g. P3L, Muskel, Assist). Currently we are involved in the development and maintenance of Fastflow, a C++based parallel programming framework targeting multicores, GPUs and (partially) distributed systems. It is based on algorithmic skeletons/design patterns and is composed of a stack of layers that progressively abstracts out the programming of shared-memory parallel applications. FastFlow was used as the main run-time framework in the FP7 projects ParaPhrase and REPARA and also in the H2020 project RePhrase.