1 \section{Introduction}\label{ch6:intro}
3 This chapter proposes to draw several development methodologies to obtain
4 efficient codes in classical scientific applications. Those methodologies are
5 based on the feedback from several research works involving GPUs, either alone
6 in a single machine or in a cluster of machines. Indeed, our past
7 collaborations with industries have allowed us to point out that in their
8 economical context, they can adopt a parallel technology only if its
9 implementation and maintenance costs are small according to the potential
10 benefits (performance, accuracy,...). So, in such contexts, GPU programming is
11 still regarded with some distance according to its specific field of
12 applicability (SIMD/SIMT model) and its still higher programming complexity and
13 maintenance. In the academic domain, things are a bit different but studies for
14 efficiently integrating GPU computations in multi-core clusters with maximal
15 overlapping of computations with communications and/or other computations, are
18 For these reasons, the major aim of that chapter is to propose as simple as
19 possible general programming patterns that can be followed or adapted in
20 practical implementations of parallel scientific applications.
21 % Also, according to our experience in industrial collaborations, we propose a
22 % small prospect analysis about the perenity of such accelerators in the
24 Also, we propose in a third part, a prospect analysis together with a particular
25 programming tool that is intended to ease multi-core GPU cluster programming.
31 %%% ispell-dictionary: "american"
33 %%% TeX-master: "../../BookGPU.tex"