Pro TBB

C++ Parallel Programming with Threading Building Blocks

by Michael Voss, Rafael  Asenjo, James Reinders

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

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 numerous examples and best practices to help you become an effective TBB programmer and leverage the power of parallel systems.
Pro TBB starts with the basics, explaining parallel algorithms and C++'s built-in standard template library for parallelism. You'll learn the key concepts of managing memory, working with data structures and how to handle typical issues with synchronization. Later chapters apply these ideas to complex systems to explain performance tradeoffs, mapping common parallel patterns, controlling threads and overhead, and extending TBB to program heterogeneous systems or system-on-chips.

What You'll Learn: Use Threading Building Blocks to produce code that is portable, simple, scalable, and more understandable; Review best practices for parallelizing computationally intensive tasks in your applications; Integrate TBB with other threading packages; Create scalable, high performance data-parallel programs; Work with generic programming to write efficient algorithms.

Who This Book Is For: C++ programmers learning to run applications on multicore systems, as well as C or C++ programmers without much experience with templates. No previous experience with parallel programming or multicore processors is required.

This open book is licensed under a Creative Commons License (CC BY-NC-ND). You can download Pro TBB ebook for free in PDF format (130.2 MB).

Table of Contents

About the Authors
 
xv
Acknowledgments
 
xvii
Preface
 
xix
Part 1
 
1
Chapter 1
Jumping Right In: "Hello, TBB!"
3
Chapter 2
Generic Parallel Algorithms
33
Chapter 3
Flow Graphs
79
Chapter 4
TBB and the Parallel Algorithms of the C++ Standard
 
Chapter 5
Synchronization: Why and How to Avoid It
137
Chapter 6
Data Structures for Concurrency
179
Chapter 7
Scalable Memory Allocation
207
Chapter 8
Mapping Parallel Patterns to TBB
233
Part 2
 
249
Chapter 9
The Pillars of Composability
251
Chapter 10
Using Tasks to Create Your Own Algorithms
277
Chapter 11
Controlling the Number of Threads Used for Execution
313
Chapter 12
Using Work Isolation for Correctness and Performance
337
Chapter 13
Creating Thread-to-Core and Task-to-Thread Affinity
357
Chapter 14
Using Task Priorities
373
Chapter 15
Cancellation and Exception Handling
387
Chapter 16
Tuning TBB Algorithms: Granularity, Locality, Parallelism, and Determinism
411
Chapter 17
Flow Graphs: Beyond the Basics
451
Chapter 18
Beef Up Flow Graphs with Async Nodes
513
Chapter 19
Flow Graphs on Steroids: OpenCL Nodes
535
Chapter 20
TBB on NUMA Architectures
581
Appendix A
History and Inspiration
605
Appendix B
TBB Précis
623
Glossary
 
729
Index
 
745

Book Details

Subject
Computer Science
Publisher
Apress
Published
2019
Pages
754
Edition
1
Language
English
ISBN13
9781484243978
ISBN10
1484243978
ISBN13 Digital
9781484243985
ISBN10 Digital
1484243986
PDF Size
130.2 MB
License
CC BY-NC-ND

Related Books

Rethinking Productivity in Software Engineering
Get the most out of this foundational reference and improve the productivity of your software teams. This book collects the wisdom of the 2017 "Dagstuhl" seminar on productivity in software engineering, a meeting of community leaders, who came together with the goal of rethinking traditional definitions and measures of productivity. The ...
Programming Languages and Systems
This book constitutes the proceedings of the 27th European Symposium on Programming, ESOP 2018, which took place in Thessaloniki, Greece in April 2018, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018. The 36 papers presented in this volume were carefully reviewed and selected from 114 submissions. The ...
Models, Methods and Tools for Product Service Design
This free book summarizes research being pursued within the Manutelligence project, the goal of which is to help enterprises develop smart, social and flexible products with high value added services. Manutelligence has improved Product and Service Design by developing suitable models and methods, and connecting them through a modular, collaborativ...
Human Rights in Child Protection
This book critically explores what child protection policy and professional practice would mean if practice was grounded in human rights standards. This book inspires a new direction in child protection research – one that critically assesses child protection policy and professional practice with regard to human rights in general, and the rights ...
Foundations of Software Science and Computation Structures
This book constitutes the proceedings of the 15th International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2012, held as part of the joint European Conference on Theory and Practice of Software, ETAPS 2012, which took place in Tallinn, Estonia, in March/April 2012. The 29 papers presented in this book toget...
Intelligent Human Computer Interaction
This book constitutes the thoroughly refereed proceedings of the 9th International Conference on Intelligent Human Computer Interaction, IHCI 2017, held in Evry, France, in December 2017. The 15 papers presented together with three invited papers were carefully reviewed and selected from 25 submissions. The conference is forum for the presentation...