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 usesparallel_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.