Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Multicore and GPU programming : an integrated approach
Barlas G., Morgan Kaufmann Publishers Inc., San Francisco, CA, 2015. 698 pp. Type: Book
Date Reviewed: Jul 14 2016

Today almost every computer, from smartphones to desktops, features hardware with multiple computing cores. Software developers want to take advantage of this capability to improve the performance of their software. This book proves to be an excellent guide in developing a strong understanding and the necessary skills in parallel central processing unit (CPU) and graphics processing unit (GPU) computing.

The book is well organized with one or two chapters per topic. Each chapter explores a single parallel computing paradigm in detail, which means that the chapters are self-contained and can be read on their own. Practical examples guide the discussion, yet the underlying theory receives an equal amount of attention. The author has succeeded in making sure that all information is logically structured and unassuming, so that even complex topics are easy to follow and understand. Throughout the book, each decision or assumption is accompanied by the rationale that led to it, which results in this well-founded flow.

The book starts with an introduction to parallel computing. It brings the novice reader up to speed on terminology and lays the groundwork for the rest of the book. There’s a strong focus on parallel patterns, which proves useful in the following chapters.

Shared-memory computing is the topic of the next two chapters, which are distinguished by whether parallelization is explicit or implicit. The former is studied using threads and synchronization mechanisms, in particular the implementation provided by Qt. OpenMP guides the discussion on implicit parallelization with concrete steps on how to transform sequential programs into parallel ones. Distributed memory computing with message passing interface (MPI) is the topic of chapter 5, with about half of the chapter dedicated to communication. For the implementation, both the C-bindings and the Boost.MPI library are presented.

Two chapters are dedicated to GPU programming. CUDA is used as the lower-level approach in chapter 6, while chapter 7 looks at a higher-level approach with the Thrust library, which is an STL-like algorithms library for C++. The latter is particularly interesting as it can abstract multiple back-end technologies, including CUDA, OpenMP, and standard C++. Finally, the book concludes with a more theoretical chapter on load balancing. Although dynamic load balancing is discussed, the main focus here is its static counterpart.

Overall, the book delivers on its promise to provide the skill and knowledge required to start building parallel software. It very much feels like an excellent textbook with a strong pedagogical quality. The code examples and case studies at the end of each chapter are extensive enough to get a feeling for real-world applications and their challenges, which should be easily addressable by the reader with the theoretical foundation this book provides. However, all this applicability comes at a price; there is some lack of generality that comes with the choice for particular libraries or paradigms. Nevertheless, the author has certainly made a deliberate choice for proven and common tools and libraries, making this book a valuable asset to any developer’s library.

More reviews about this item: Amazon

Reviewer:  Jonas Devlieghere Review #: CR144586 (1611-0776)
Bookmark and Share
  Reviewer Selected
 
 
Multiprocessing/ Multiprogramming/ Multitasking (D.4.1 ... )
 
 
Graphics Processors (I.3.1 ... )
 
 
Multiple Data Stream Architectures (Multiprocessors) (C.1.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Multiprocessing/Multiprogramming/Multitasking": Date
Algorithms for scheduling homogeneous multiprocessor computers
Ondáš J., Springer-Verlag, London, UK, 1984. Type: Book (9789780387136578)
Aug 1 1985
Parallel programming
Perrott R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1987. Type: Book (9789780201142310)
Jul 1 1988
Operating systems: communicating with and controlling the computer
Keller L., Prentice-Hall, Inc., Upper Saddle River, NJ, 1988. Type: Book (9789780136380405)
Sep 1 1989
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud, Inc.®
Terms of Use
| Privacy Policy