\chapter{Preface}


This book is intended to present the design of significant scientific
applications on GPUs. Scientific applications require more and more
computational power in a large variety of fields: biology, physics,
chemisty, phenomon model and prediction, simulation, mathematics, etc.

In order to be able to handle more complex applications, the use of
parallel architectures is the solution to decrease the execution
times of these applications. Using simulataneously many computing
cores can significantly speed up the processing time.

Nevertheless using parallel architectures is not so easy and has always required
an  endeavor  to  parallelize  an  application. Nowadays  with  general  purpose
graphics processing units (GPGPU), it  is possible to use either general graphic
cards or dedicated graphic cards to  benefit from the computational power of all
the cores  available inside these  cards. The NVidia company  introduced Compute
Unified Device Architecture (CUDA) in 2007 to unify the programming model to use
their video card. CUDA is currently  the most used environment for designing GPU
applications   although   some   alternatives   are   available,   for   example,
Open Computing Language (OpenCL). According to  applications and the GPU considered, a speed  up from 5 up
to 50, or even more can be expected using a GPU over computing with a CPU.

The programming model of GPU is quite different from the one of
CPU. It is well adapted to data parallelism applications. Several
books present the CUDA programming models and multi-core applications
design. This book is only focused on scientific applications on GPUs. It
contains 20 chapters gathered in 6 parts.

The first part presents the GPUs. The second part focuses on two
significant image processing applications on GPUs. Part three presents
two general methodologies for software development on GPUs. Part four
describes three optimization problems on GPUs. The fifth part, the
longest one, presents seven numerical applications. Finally part six
illustrates three other applications that are not included in the previous
parts.

Some codes presented in this book are available online on my webpage:
http://members.femto-st.fr/raphael-couturier/gpu-book/ 
