Boca Raton, USA: CRC Press, Taylor & Francis Group, 2013. — 496. — (Chapman & HALL/CRC: Numerical Analysis and Scientific Computing). — ISBN: 1466571624.
Many of today's complex scientific applications now require a vast amount of computational power. General purpose graphics processing units (GPGPUs) enable researchers in a variety of fields to benefit from the computational power of all the cores available inside graphics cards. Understand the Benefits of Using GPUs for Many Scientific Applications Designing Scientific Applications on GPUs shows you how to use GPUs for applications in diverse scientific fields, from physics and mathematics to computer science. The book explains the methods necessary for designing or porting your scientific application on GPUs. It will improve your knowledge about image processing, numerical applications, methodology to design efficient applications, optimization methods, and much more. Everything You Need to Design/Port Your Scientific Application on GPUs The first part of the book introduces the GPUs and Nvidia's CUDA programming model, currently the most widespread environment for designing GPU applications. The second part focuses on significant image processing applications on GPUs. The third part presents general methodologies for software development on GPUs and the fourth part describes the use of GPUs for addressing several optimization problems. The fifth part covers many numerical applications, including obstacle problems, fluid simulation, and atomic physics models. The last part illustrates agent-based simulations, pseudorandom number generation, and the solution of large sparse linear systems for integer factorization. Some of the codes presented in the book are available online.
Presentation of GPUsPresentation of the GPU architecture and of the CUDA environment
Introduction to CUDA
Image processingSetting up the environment
Implementing a fast median filter
Implementing an effcient convolution operation on GPU
Software developmentDevelopment of software components for heterogeneous many-core architectures
Development methodologies for GPU and cluster of GPUs
OptimizationGPU-accelerated tree-based exact optimization methods
Parallel GPU-accelerated
Linear programming on a GPU: a case study
Numerical applicationsFast hydrodynamics on heterogeneous many-core hardware
Parallel monotone spline interpolation and approximation on GPUs
Solving sparse linear systems with GMRES and CG methods on GPU clusters
Solving sparse nonlinear systems of obstacle problems on GPU clusters
Ludwig: multiple GPUs for a complex fluid lattice Boltzmann application
Numerical validation and performance optimization on GPUs of an application in atomic physics
A GPU-accelerated envelope-following method for switching power converter simulation
OtherImplementing multi-agent systems on GPU
Pseudorandom number generator on GPU
Solving large sparse linear systems for integer factorization on GPUs