This open-access book serves as a comprehensive guide for C++ programmers looking to master Threading Building Blocks (TBB). Authored by two experts in TBB and parallel programming, the book distills decades of collective experience in developing and teaching parallel programming concepts, presenting insights in a clear and accessible manner.

Today’s TBB starts with foundational principles, explaining key concepts and terminology used in parallel programming. It then introduces the major components of TBB including parallel algorithms, flow graphs, and task groups that help you fully leverage the power of multicore systems. The book emphasizes TBB's higher-level parallelism capabilities, which facilitate the creation of portable, scalable applications for modern CPUs. Key topics, including memory management in parallel contexts and effective synchronization for data structures, are well explored, ensuring a comprehensive understanding of these critical concepts.

Later chapters delve into advanced topics including cancellation, exception handling, composability, performance tuning, and transitioning legacy code from older versions of TBB to Today’s TBB.

For nearly two decades, TBB has been invaluable to programmers, and this book leverages the latest advancements in C++ alongside TBB to enhance your parallel programming capabilities.

TBB excels in unlocking the performance of code that is not well-suited for accelerators, making it an essential tool in the realm of parallel computing. If you work with technologies like CUDA, SYCL, or OpenCL for accelerated computing, mastering TBB will also enable you to orchestrate parallelism effectively on the host CPU, optimizing performance in the face of Amdahl’s Law.

What You'll Learn

  • Create Scalable Code: Use TBB for portable, simple, and efficient programming.
  • Parallelization Strategies: Implement best practices for intensive tasks.
  • High-Performance Applications: Develop scalable parallel programs.
  • Modern C++ Compatibility: Apply TBB with C++17 and later.
  • Code Migration: Update legacy TBB code to leverage C++17 and Today’s TBB.
  • Think Parallel: Orchestrate parallelism in the entire computer system to your advantage.

Who This Book Is For

C++ programmers eager to harness the power of parallelism on multicore systems. Today’s TBB is accessible to those with limited experience, with C++ or parallelism, providing clear guidance on best practices and techniques. Experienced programmers will find valuable insights for refining their skills, addressing advanced topics such as cancellation, exception handling, composability, and performance tuning. No prior experience in parallel programming or multicore processors is necessary; however, those with some background will discover even more depth and value throughout the book.

Les mer

Chapter 1: Jumping Right In – “Hello, TBB!”.- Chapter 2: Algorithms.- Chapter 3: Data Structures for Concurrency.- Chapter 4: Flowgraphs: The Basics.- Chapter 5: Flowgraphs: Expressing Applications.- Chapter 6: Task and Task Group.- Chapter 7: Memory Allocation.- Chapter 8: Synchronization.- Chapter 9: Cancellation and Exception Handling.- Chapter 10: Performance: Pillars of Composability.- Chapter 11: Performance Tuning.- Chapter 12: Migrating TBB to oneTBB.- Appendix A: History and Inspiration.- Glossary.

Les mer

This open-access book serves as a comprehensive guide for C++ programmers looking to master Threading Building Blocks (TBB). Authored by two experts in TBB and parallel programming, the book distills decades of collective experience in developing and teaching parallel programming concepts, presenting insights in a clear and accessible manner.

Today’s TBB starts with foundational principles, explaining key concepts and terminology used in parallel programming. It then introduces the major components of TBB including parallel algorithms, flow graphs, and task groups that help you fully leverage the power of multicore systems. The book emphasizes TBB's higher-level parallelism capabilities, which facilitate the creation of portable, scalable applications for modern CPUs. Key topics, including memory management in parallel contexts and effective synchronization for data structures, are well explored, ensuring a comprehensive understanding of these critical concepts.

Later chapters delve into advanced topics including cancellation, exception handling, composability, performance tuning, and transitioning legacy code from older versions of TBB to Today’s TBB.

For nearly two decades, TBB has been invaluable to programmers, and this book leverages the latest advancements in C++ alongside TBB to enhance your parallel programming capabilities.

TBB excels in unlocking the performance of code that is not well-suited for accelerators, making it an essential tool in the realm of parallel computing. If you work with technologies like CUDA, SYCL, or OpenCL for accelerated computing, mastering TBB will also enable you to orchestrate parallelism effectively on the host CPU, optimizing performance in the face of Amdahl’s Law.

What You'll Learn
  • Create Scalable Code: Use TBB for portable, simple, and efficient programming.
  • Parallelization Strategies: Implement best practices for intensive tasks.
  • High-Performance Applications: Develop scalable parallel programs.
  • Modern C++ Compatibility: Apply TBB with C++17 and later.
  • Code Migration: Update legacy TBB code to leverage C++17 and Today’s TBB.
  • Think Parallel: Orchestrate parallelism in the entire computer system to your advantage.
Les mer
  
This book is open access, which means that you have free and unlimited access An open access modern guide to Threading Building Blocks, written by leading engineers and keynote presenters on parallel computing Designed for C++ programmers at all levels of parallel programming experience Understand key concepts in concurrency and how to use TBB to leverage the power of parallel systems
Les mer
GPSR Compliance The European Union's (EU) General Product Safety Regulation (GPSR) is a set of rules that requires consumer products to be safe and our obligations to ensure this. If you have any concerns about our products you can contact us on ProductSafety@springernature.com. In case Publisher is established outside the EU, the EU authorized representative is: Springer Nature Customer Service Center GmbH Europaplatz 3 69115 Heidelberg, Germany ProductSafety@springernature.com
Les mer
Open Access This book is licensed under the terms of the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (http://creativecommons.org/licenses/by-nc-nd/4.0/), which permits any noncommercial use, sharing, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if you modified the licensed material. You do not have permission under this license to share adapted material derived from this book or parts of it. The images or other third party material in this book are included in the book's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the book's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Les mer

Produktdetaljer

ISBN
9798868812699
Publisert
2025-04-03
Utgave
2. utgave
Utgiver
Vendor
Apress
Høyde
254 mm
Bredde
178 mm
Aldersnivå
Professional/practitioner, P, 06
Språk
Product language
Engelsk
Format
Product format
Heftet

Om bidragsyterne

Michael Voss is a Senior Principal Engineer of the Middleware Architecture at Intel. He has been a key member of the TBB development team since before its 1.0 release in 2006. Michael has co-authored over 40 published papers and articles on parallel programming and frequently consults with customers across diverse domains to help them effectively utilize parallelism in their applications. He is a member of the ISO C++ committee (WG21), participating in discussions around libraries and concurrency. Before joining Intel in 2006, Michael was an Assistant Professor in the Edward S. Rogers Department of Electrical and Computer Engineering at the University of Toronto. He earned his Ph.D. from the School of Electrical and Computer Engineering at Purdue University.

James Reinders enjoyed a distinguished career at Intel Corporation that spanned over four decades. With extensive experience in parallel computing, James has authored, coauthored, or edited twelve technical books on parallel programming and contributed to numerous others. A proud graduate of the University of Michigan’s engineering programs, he has a deep passion for system optimization and teaching. James has had the privilege of contributing to two of the world’s fastest computers, both achieving the #1 spot on the TOP500 list, as well as many other supercomputers and software development tools. With the completion of this book, James has retired from Intel and is now enjoying a well-deserved life of relaxation in Oregon.