Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism

Front Cover
"O'Reilly Media, Inc.", Jul 12, 2007 - Computers - 336 pages

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 general
  • Focuses on the goal of parallelizing computationally intensive work to deliver high-level solutions
  • Is compatible with other threading packages, and doesn't force you to pick one package for your entire program
  • Emphasizes scalable, data-parallel programming, which allows program performance to increase as you add processors
  • Relies on generic programming, which enables you to write the best possible algorithms with the fewest constraints
Any 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.

 

What people are saying - Write a review

User Review - Flag as inappropriate

AAAAQQQATG10AAA;8-8888888881,,,,,... .IIIIJA1jj:k7;?????-
Q4

User Review - Flag as inappropriate

enfin un livre excellent sur le multithreading!! Mine de rien c'est presque impossible d'en trouver de bons! Ca parle du multithreading en général, mais surtout de l'approche d'Intel pour la création de sa librairie (open source) de distribution de jobs/tasks.

Contents

Why Threading Building Blocks?
1
Thinking Parallel
7
Basic Algorithms
29
Advanced Algorithms
65
Containers
80
Scalable Memory Allocation
101
Mutual Exclusion
110
Timing
130
Task Scheduler
133
Keys to Success
169
Examples
177
History and Related Projects
283
Index
297
Copyright

Other editions - View all

Common terms and phrases

Popular passages

Page 34 - I A _ a b c d e f 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127...
Page 16 - A fairly obvious conclusion which can be drawn at this point is that the effort expended on achieving high parallel processing rates is wasted unless it is accompanied by achievements in sequential processing rates of very nearly the same magnitude.
Page 16 - We feel that it is important for the cpmputing research community to overcome the "mental block" against massive parallelism imposed by a misuse of Amdahl's speedup formula; speedup should be measured by scaling the problem to the number of processors, not by fixing problem size.

Bibliographic information