Journal of Supercomputing — 2018
A Parallel Pattern for Iterative Stencil + Reduce
Marco Aldinucci, Marco Danelutto, Maurizio Drocco, Peter Kilpatrick, Claudia Misale, Guilherme Peretti Pezzi, Massimo Torquati
Abstract
We advocate the Loop-of-stencil-reduce pattern as a means of simplifying the implementation of data-parallel programs on heterogeneous multi-core platforms. Loop-of-stencil-reduce is general enough to subsume map, reduce, map-reduce, stencil, stencil-reduce, and, crucially, their usage in a loop in both data-parallel and streaming applications, or a combination of both. The pattern makes it possible to deploy a single stencil computation kernel on different GPUs. We discuss the implementation of Loop-of-stencil-reduce in FastFlow, a framework for the implementation of applications based on the parallel patterns. Experiments are presented to illustrate the use of Loop-of-stencil-reduce in developing data-parallel kernels running on heterogeneous systems.
@article{16:stencilreduce:jsupe,
abstract = {We advocate the Loop-of-stencil-reduce pattern as a means of simplifying the implementation of data-parallel programs on heterogeneous multi-core platforms. Loop-of-stencil-reduce is general enough to subsume map, reduce, map-reduce, stencil, stencil-reduce, and, crucially, their usage in a loop in both data-parallel and streaming applications, or a combination of both. The pattern makes it possible to deploy a single stencil computation kernel on different GPUs. We discuss the implementation of Loop-of-stencil-reduce in FastFlow, a framework for the implementation of applications based on the parallel patterns. Experiments are presented to illustrate the use of Loop-of-stencil-reduce in developing data-parallel kernels running on heterogeneous systems.},
author = {Aldinucci, Marco and Danelutto, Marco and Drocco, Maurizio and Kilpatrick, Peter and Misale, Claudia and Peretti Pezzi, Guilherme and Torquati, Massimo},
date-added = {2016-08-19 21:52:17 +0000},
date-modified = {2018-12-27 18:19:41 +0100},
doi = {10.1007/s11227-016-1871-z},
journal = {Journal of Supercomputing},
keywords = {HPC, repara, rephrase},
number = {11},
pages = {5690--5705},
title = {A Parallel Pattern for Iterative Stencil + Reduce},
url = {https://iris.unito.it/retrieve/0716fc42-53d7-48c0-9469-697aabfe7759/jspaper.pdf},
volume = {74},
year = {2018},
bdsk-url-1 = {http://dx.doi.org/10.1007/s11227-016-1871-z},
bdsk-url-2 = {http://arxiv.org/pdf/1609.04567v1.pdf}}