Multicore and GPU Programming,
Edition 2 An Integrated ApproachEditors: By Gerassimos Barlas
Conformance
-
PDF/UA-1
-
The publication was certified on 20250728
-
For queries regarding accessibility information, contact [email protected]
Ways Of Reading
-
This e-publication is accessible to the full extent that the file format and types of content allow, on a specific reading device, by default, without necessarily including any additions such as textual descriptions of images or enhanced navigation.
Navigation
-
The contents of the PDF have been tagged to permit access by assistive technologies as per PDF-UA-1 standard.
-
Page breaks included from the original print source
Additional Accessibility Information
-
The language of the text has been specified (e.g., via the HTML or XML lang attribute) to optimise text-to-speech (and other alternative renderings), both at the whole document level and, where appropriate, for individual words, phrases or passages in a different language.
Note
-
This product relies on 3rd party tooling which may impact the accessibility features visible in inspection copies. All accessibility features mentioned would be present in the purchased version of the title.
Multicore and GPU Programming: An Integrated Approach, Second Edition offers broad coverage of key parallel computing tools, essential for multi-core CPU programming and many-core "massively parallel" computing. Using threads, OpenMP, MPI, CUDA and other state-of-the-art tools, the book teaches the design and development of software capable of taking advantage of modern computing platforms that incorporate CPUs, GPUs and other accelerators.
Presenting material refined over more than two decades of teaching parallel computing, author Gerassimos Barlas minimizes the challenge of transitioning from sequential programming to mastering parallel platforms with multiple examples, extensive case studies, and full source code. By using this book, readers will better understand how to develop programs that run over distributed memory machines using MPI, create multi-threaded applications with either libraries or directives, write optimized applications that balance the workload between available computing resources, and profile and debug programs targeting parallel machines.
Key Features
- Includes comprehensive coverage of all major multi-core and many-core programming tools and platforms, including threads, OpenMP, MPI, CUDA, OpenCL and Thrust
- Covers the most recent versions of the above at the time of publication
- Demonstrates parallel programming design patterns and examples of how different tools and paradigms can be integrated for superior performance
- Updates in the second edition include the use of the C++17 standard for all sample code, a new chapter on concurrent data structures, a new chapter on OpenCL, and the latest research on load balancing
- Includes downloadable source code, examples and instructor support materials on the book’s companion website
About the author
By Gerassimos Barlas, Professor, Computer Science and Engineering Department, American University of Sharjah, UAE
Part A: Introduction
1. Introduction
2. Multicore and Parallel Program Design
Part B: Programming with Threads and Processes
3. Shared-memory Programming: Threads
4. Concurrent Data Structures
5. Distributed Memory Programming MPI
6. GPU Programming: CUDA
7. GPU Programming: OpenCL
Part C: Higher-level Programming
8. Shared-memory Programming: OpenMP
9. GPU Programming: OpenACC
10. The Thrust Template Library
Part D: Advanced Topics
11. Load Balancing
9780123742605; 9780124159921; 9780123973375