Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Data Parallel C++

Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL

by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian

Data Parallel C++

Subscribe to new books via telegram channel

DescriptionTable of ContentsDetailsReport an issue

Book Description

Learn how to accelerate C++ programs using data parallelism. This open book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.

Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices - including GPUs, CPUs, FPGAs and AI ASICs - that are suitable to the problems at hand.

This book teaches data-parallel programming using C++ and the SYCL standard from the Khronos Group and walks through everything needed to use SYCL for programming heterogeneous systems. The book begins by introducing data parallelism and foundational topics for effective use of SYCL and Data Parallel C++ (DPC++), the open source compiler used in this book. Later chapters cover advanced topics including error handling, hardware-specific programming, communication and synchronization, and memory model considerations.

You will learn:
- How to accelerate C++ programs using data-parallel programming;
- How to target multiple device types (e.g. CPU, GPU, FPGA);
- How to use SYCL and SYCL compilers;
- How to connect with computing's heterogeneous future via Intel's oneAPI initiative.

This open book is licensed under a Creative Commons License (CC BY). You can download Data Parallel C++ ebook for free in PDF format (15.8 MB).

Table of Contents

Chapter 1
Chapter 2
Where Code Executes
Chapter 3
Data Management
Chapter 4
Expressing Parallelism
Chapter 5
Error Handling
Chapter 6
Unified Shared Memory
Chapter 7
Chapter 8
Scheduling Kernels and Data Movement
Chapter 9
Communication and Synchronization
Chapter 10
Defining Kernels
Chapter 11
Chapter 12
Device Information
Chapter 13
Practical Tips
Chapter 14
Common Parallel Patterns
Chapter 15
Programming for GPUs
Chapter 16
Programming for CPUs
Chapter 17
Programming for FPGAs
Chapter 18
Chapter 19
Memory Model and Atomics
Future Direction of DPC++

Book Details

Data Parallel C++
Computer Science
ISBN13 Digital
ISBN10 Digital
PDF Size
15.8 MB

Related Books

This book is a modern guide for all C++ programmers to learn Threading Building Blocks (TBB). Written by TBB and parallel programming experts, this book reflects their collective decades of experience in developing and teaching parallel programming with TBB, offering their insights in an approachable manner. Throughout the book the authors present ...
XcalableMP PGAS Programming Language
XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open book presents XcalableMP language from its programming model and basic concept to the experience and performance of applications described in XcalableMP....
SQL Server Execution Plans, 3rd Edition
Every Database Administrator, developer, report writer, and anyone else who writes T-SQL to access SQL Server data, must understand how to read and interpret execution plans. My book leads you right from the basics of capturing plans, through how to interrupt them in their various forms, graphical or XML, and then how to use the information you fin...
Data Science at the Command Line
This thoroughly revised guide demonstrates how the flexibility of the command line can help you become a more efficient and productive data scientist. You'll learn how to combine small yet powerful command-line tools to quickly obtain, scrub, explore, and model your data. To get you started, author Jeroen Janssens provides a Docker image packe...
Data and Text Processing for Health and Life Sciences
This book is a step-by-step introduction on how shell scripting can help solve many of the data processing tasks that Health and Life specialists face everyday with minimal software dependencies. The examples presented in the book show how simple command line tools can be used and combined to retrieve data and text from web resources, to filter and...
Programming Persistent Memory
Beginning and experienced programmers will use this comprehensive guide to persistent memory programming. You will understand how persistent memory brings together several new software/hardware requirements, and offers great promise for better performance and faster application startup times - a huge leap forward in byte-addressable capacity compar...