The parallel programming landscape has changed significantly over the last decade+, and since Threading Building Blocks (TBB) was introduced. It’s complicated now—with the advent of 10s or even hundreds of multicore processors to tap, accelerators, non-memory unified access (NUMA), more complex applications, multiple levels of parallelism, specialized libraries, and more. “The good news is you now have options to tweak for performance,” said Mike Voss, Intel TBB development expert. Mike is a co-author of a new book: Pro TBB, which is for novices to experts for creating explicit task arenas to isolate work, and assigning threads to particular cores and task arenas.
Looking into the future, Mike said that the past is the compass: we’re looking at hardware and accelerators; in-demand applications, such as machine learning and implementations with pytorch*; more features in the C++ standard; and high level abstractions. Get the full scoop in this Q&A video.
Then get the value-added book.
Pro TBB: C++ Parallel Programming with Threading Building Blocks
This open access book is a modern guide for all C++ programmers to learn TBB and leverage the power of parallel systems. Pro TBB starts with explaining parallel algorithms and C++’s standard template library for parallelism. You’ll learn 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. Learn more.
Additional Resources