4 This book is intended to present the design of significant scientific
5 applications on GPUs. Scientific applications require more and more
6 computational power in a large variety of fields: biology, physics,
7 chemisty, phenomon model and prediction, simulation, mathematics, etc.
9 In order to be able to handle more complex applications, the use of
10 parallel architectures is the solution to decrease the execution
11 times of these applications. Using simulataneously many computing
12 cores can significantly speed up the processing time.
14 Nevertheless using parallel architectures is not so easy and has always required
15 an endeavor to parallelize an application. Nowadays with general purpose
16 graphics processing units (GPGPU), it is possible to use either general graphic
17 cards or dedicated graphic cards to benefit from the computational power of all
18 the cores available inside these cards. The NVidia company introduced Compute
19 Unified Device Architecture (CUDA) in 2007 to unify the programming model to use
20 their video card. CUDA is currently the most used environment for designing GPU
21 applications although some alternatives are available, for example,
22 Open Computing Language (OpenCL). According to applications and the GPU considered, a speed up from 5 up
23 to 50, or even more can be expected using a GPU over computing with a CPU.
25 The programming model of GPU is quite different from the one of
26 CPU. It is well adapted to data parallelism applications. Several
27 books present the CUDA programming models and multi-core applications
28 design. This book is only focused on scientific applications on GPUs. It
29 contains 20 chapters gathered in 6 parts.
31 The first part presents the GPUs. The second part focuses on two
32 significant image processing applications on GPUs. Part three presents
33 two general methodologies for software development on GPUs. Part four
34 describes three optimization problems on GPUs. The fifth part, the
35 longest one, presents seven numerical applications. Finally part six
36 illustrates three other applications that are not included in the previous
39 Some codes presented in this book are available online on my webpage:
40 http://members.femto-st.fr/raphael-couturier/gpu-book/