Multi-core chips from Intel and AMD offer a dramatic boost in speed and responsiveness, and plenty of opportunities for multiprocessing on ordinary desktop computers. But they also present a challenge: More than ever, multithreading is a requirement for good performance. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you’ll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming – without having to be a threading expert.Written by James Reinders, Chief Evangelist of Intel Software Products, and based on the experience of Intel’s developers and customers, this book explains the key tasks in multithreading and how to accomplish them with TBB in a portable and robust manner. With plenty of examples and full reference material, the book lays out common patterns of uses, reveals the gotchas in TBB, and gives important guidelines for choosing among alternatives in order to get the best performance.You’ll learn how Intel Threading Building Blocks:Enables you to specify tasks instead of threads for better portability, easier programming, more understandable source code, and better performance and scalability in generalFocuses on the goal of parallelizing computationally intensive work to deliver high-level solutionsIs compatible with other threading packages, and doesn’t force you to pick one package for your entire programEmphasizes scalable, data-parallel programming, which allows program performance to increase as you add processorsRelies on generic programming, which enables you to write the best possible algorithms with the fewest constraintsAny C++ programmer who wants to write an application to run on a multi-core system will benefit from this book. TBB is also very approachable for a C programmer or a C++ programmer without much experience with templates. Best of all, you don’t need experience with parallel programming or multi-core processors to use this book.