GrPPI: A Generic Parallel Pattern Interface for Stream and Data Processing

Next Avalon working group will be tomorrow (3/10/2016) at 15h in amphi L. Dr. Manuel F. Dolz, currently visiting us from Madrid, will be talking about his work.

GrPPI: A Generic Parallel Pattern Interface for Stream and Data Processing

Current parallel programming frameworks aid developers to a great extent in implementing applications that exploit parallel hardware resources. Nevertheless, developers require additional expertise to properly use and tune them to operate efficiently on specific parallel platforms. With the lack of high-level parallel pattern abstractions, we present GrPPI, a generic and reusable parallel pattern interface for both stream processing and data-intensive C++ applications (https://github.com/arcosuc3m/grppi). GrPPI accommodates a layer between developers and existing parallel programming frameworks targeting multi-core processors, such as C++ threads, OpenMP and Intel TBB. To achieve this goal, this interface leverages modern C++ features, metaprogramming techniques, and template-based programming to act as switch among those frameworks. All in all, thanks to its high-level API and compact design, GrPPI allows users to easily expose parallelism and hide away the complexity behind concurrency mechanisms. We evaluate this interface using an image processing use case and demonstrate its benefits from the usability, flexibility, and performance points of view.