GrPPI library aims to simplify the burdening task of parallel programming. It provides a unified, abstract, and generic layer while promising minimal overhead on performance.
Although it supports stream parallelism, GrPPI lacks an evaluation regarding representative performance metrics for this domain, such as throughput and latency.
This work evaluates GrPPI focused on parallel stream processing.
We compare the performance, memory usage, and programmability of GrPPI against handwritten parallel code.
For this, we use the benchmarking framework SPBench to build custom GrPPI benchmarks and benchmarks with handwritten parallel code using the same backends supported by GrPPI.
The basis of the benchmarks is real applications, such as Lane Detection, Bzip2, Face Recognizer, and Ferret.
Experiments show that while performance is competitive with handwritten code in many cases, the infeasibility of fine-tuning GrPPI is a crucial drawback.
Despite this, programmability experiments estimate that GrPPI has the potential to reduce by about three times the development time of parallel applications.