A Few Other Key Points

Although the items in this section are not quite Aha!-quality insights, you should consider them while exploring this chapter:

More examples

More examples come with Threading Building Blocks—for instance, examples\parallel_while\parallel_preorder, which uses parallel_while to do parallel preorder traversal of a sparse graph—I simply did not have the time or space to include them all in this chapter. The examples are set up as ready to build and try, although they currently include virtually no explanation about how they work internally. You just have to read the source code.

Even more examples

Be sure to regularly visit the web sites for Threading Building Blocks, as we hope to add more and more examples, user forums, and so on.

Use a scalable memory allocator

Have you ever analyzed the thread safety and scalability of your memory allocator? The results will send you looking for change. See the “Memory Allocation” section in this chapter, and see Chapter 6.

Create only programs that can run serially (threads=1) for debugging purposes

Always aim to be able to debug your code without concurrency as you write it. Experience will show that it is easier to debug common mistakes, which have nothing to do with parallelism, while running without concurrency. See Chapter 2 and Chapter 12.

The task scheduler is quite approachable

Spawning tasks (Chapter 9) can be a better alternative to parallel_for when boundaries and computation granularity change between function ...

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.