Algorithmic skeletons for stream programming in embedded heterogeneous parallel image processing applications
Parallel and Distributed Processing Symposium, International (2006)
Rhodes Island, Greece
Apr. 25, 2006 to Apr. 29, 2006
W. Caarls , Quantitative Imaging Group, Delft Univ. of Technol., Netherlands
P.P. Jonker , Quantitative Imaging Group, Delft Univ. of Technol., Netherlands
Algorithmic skeletons can be used to write architecture independent programs, shielding application developers from the details of a parallel implementation. In this paper, we present a C-like skeleton implementation language, PEPCI, that uses term rewriting and partial evaluation to specify skeletons for parallel C dialects. By using skeletons to control the iteration of kernel functions, we provide a stream programming language that is better tailored to the user as well as the underlying architecture. Skeleton merging allows us to reduce the overheads usually associated with breaking an application into small kernels. We have implemented an example image processing application on a heterogeneous embedded prototype platform consisting of an SIMD and ILP processor, and show that a significant speedup can be achieved without requiring knowledge of data parallel processing.
skeleton merging, algorithmic skeletons, embedded heterogeneous parallel image processing, C-like skeleton implementation language, PEPCI language, term rewriting, partial evaluation, stream programming language
P. Jonker, W. Caarls and H. Corporaal, "Algorithmic skeletons for stream programming in embedded heterogeneous parallel image processing applications," Parallel and Distributed Processing Symposium, International(IPDPS), Rhodes Island, Greece, 2006, pp. 94.