Development methodologies for GPU and cluster of GPUs
Universite Lorraine, Loria UMR 7503 & AlGorille INRIA Project Team, Nancy, France
Chapter in Book "Designing Scientific Applications on GPUs", 2013
@article{contassot2013development,
title={Development methodologies for GPU and cluster of GPUs},
author={Contassot-Vivier, Sylvain and Vialle, Stephane and Gustedt, Jens},
journal={Designing Scientific Applications on GPUs},
pages={105},
year={2013},
publisher={CRC Press}
}
This chapter proposes to draw several development methodologies to obtain efficient codes in classical scientific applications. Those methodologies are based on the feedback from several research works involving GPUs, either alone in a single machine or in a cluster of machines. Indeed, our past collaborations with industries have allowed us to point out that in their economical context, they can adopt a parallel technology only if its implementation and maintenance costs are small according to the potential benefits (performance, accuracy,…). So, in such contexts, GPU programming is still regarded with some distance according to its specific field of applicability (SIMD/SIMT model) and its still higher programming complexity and maintenance. In the academic domain, things are a bit different but studies for efficiently integrating GPU computations in multi-core clusters with maximal overlapping of computations with communications and/or other computations, are still rare. For these reasons, the major aim of that chapter is to propose as simple as possible general programming patterns that can be followed or adapted in practical implementations of parallel scientific applications. Also, we propose in a third part, a prospect analysis together with a particular programming tool that is intended to ease multi-core GPU cluster programming.
December 17, 2013 by hgpu