eBooks-it.org Logo
eBooks-IT.org Inner Image

OpenCL Parallel Programming Development Cookbook

OpenCL Parallel Programming Development Cookbook Image

Book Details:

Publisher:Packt Publishing
Series: Packt , Cookbook
Author:Raymond Tay
Edition:1
ISBN-10:1849694524
ISBN-13:9781849694520
Pages:302
Published:Aug 26 2013
Posted:Nov 19 2014
Language:English
Book format:PDF
Book size:2.69 MB

Book Description:

Accelerate your applications and understand high-performance computing with over 50 OpenCL recipes Overview Learn about parallel programming development in OpenCL and also the various techniques involved in writing high-performing code Find out more about data-parallel or task-parallel development and also about the combination of both Understand and exploit the underlying hardware features like processor registers and caches that run potentially tens of thousands of threads across the processors In Detail OpenCL (Open Computing Language) is the first royalty-free standard for cross platform, parallel programming of modern processors found in personal computers, servers, mobiles, and embedded devices. OpenCL greatly improves speed and responsiveness for a wide spectrum of applications in numerous market categories, from gaming and entertainment to scientific and medical software. OpenCL has proved itself to be versatile in that it now runs on not only operating systems like Windows and Linux powered by Intel and AMD processors, but also on low power chips like ARM, and it has also been adopted by processor manufacturers like ARM Corp, Vivante, and Altera, among others. OpenCL Parallel Programming Development Cookbook was designed to be practical so that we achieve a good balance between theory and application. Learning to program in a parallel way is relatively easy, but to be able to take advantage of all of the resources available to you efficiently is quite different. You need to be shown not only application, but also the theory behind it. This book is roughly in two parts, where the first part is the fundamentals of OpenCL parallel development and the second part is the various algorithms we will explore with you. Each part is packed with many code samples and illustrations to demonstrate various concepts. The first part is essential for a beginner to not only program in parallel, but also to think in parallel and become equipped with the mental model with which to tackle parallel programming. The second part consists of seven different algorithms that the author has identified; you will learn various parallel programming techniques that experts have used in the past 60 years that are applicable to OpenCL. This book will demonstrate how you think in parallel by illustrating and demonstrating programming techniques like data partitioning, thread coarsening, register tiling, data pre-fetching, and algorithm transformation. These techniques are demonstrated in the seven algorithms youll be shown, from image processing and solving sparse linear systems to in-memory sorting. OpenCL Parallel Programming Development Cookbook combines recipes, illustrations, code, and explanations to allow you to learn the essentials of parallel programming in OpenCL, and the author has added in enough math so that the readers understand the motivation and can also lay the foundation upon which they will begin their own exploration. What you will learn from this book How to use OpenCL Understand data partitioning and transfers in OpenCL Understand OpenCL data types Learn about OpenCL functions including math, atomic, threading model, data transfer, and so on Develop a histogram in OpenCL Learn how to develop Sobel edge detection in OpenCL for image processing Develop the Matrix Multiplication and the Sparse Matrix Vector Multiplication in OpenCL Learn to develop Bitonic sort and Radix sort in OpenCL Develop n-body with OpenCL

Download Link:

Related Books:

Parallel Programming

With Intel Parallel Studio XE
Parallel Programming Image
Optimize code for multi-core processors with Intel's Parallel StudioParallel programming is rapidly becoming a "must-know" skill for developers. Yet, where to start? This teach-yourself tutorial is an ideal starting point for developers who already know Windows C and C++ and are eager to add parallelism to their code. With a focus on applying tools, techniques, and language extensions to implement parallelism, this essential resource teaches you how to write programs for multicore and leverage the power of multicore in your programs. Sharing hands-on case studies and real-world examples, the authors examine the challenges of each project and show you how to overcome them.Explores conversion of serial code to parallelFocuses on implementing ...

Pro .NET 4 Parallel Programming in C#

Pro .NET 4 Parallel Programming in C# Image
Parallel programming has been revolutionised in .NET 4, providing, for the first time, a standardised and simplified method for creating robust, scalable and reliable multi-threaded applications. The Parallel programming features of .NET 4 allow the programmer to create applications that harness the power of multi-core and multi-processor machines. Simpler to use and more powerful than classic .NET threads, parallel programming allows the developer to remain focused on the work an application needs to perform. In Pro .NET 4 Parallel Programming in C#, Adam Freeman presents expert advice that guides you through the process of creating concurrent C# applications from the ground up. Youll be introduced to .NETs parallel programming features, both old an...

Parallel Programming with Microsoft Visual C++

Design Patterns for Decomposition and Coordination on Multicore Architectures
Parallel Programming with Microsoft Visual C++ Image
Your CPU meter shows a problem. One core is running at 100 percent, but all the other cores are idle. Your application is CPU-bound, but you are using only a fraction of the computing power of your multicore system. Is there a way to get better performance? The answer, in a nutshell, is parallel programming. Where you once would have written the kind of sequential code that is familiar to all programmers, you now find that this no longer meets your performance goals. To use your system's CPU resources efficiently, you need to split your application into pieces that can run at the same time. Of course, this is easier said than done. Parallel programming has a reputation for being the domain of experts and a minefield of subtle, hard-to-reproduce softw...



2007 - 2021 © eBooks-IT.org