Chapter 12. History and Related Projects

Nothing in this chapter is required reading to learn how to use Intel Threading Building Blocks. Instead, this chapter looks at some of the inspirations that shaped our thoughts at Intel and led to the design and implementation of Threading Building Blocks. A list of papers, articles, and books at the end of the chapter forms a bibliography to give some suggested further reading. The chapter also contains a brief explanation of lambda functions, whose inclusion in C++ is advocated by Arch Robison, lead developer for Threading Building Blocks, in his foreword to this book.

The information in this bibliography is likely to appeal most to those who want to contribute to Threading Building Blocks. There is much to be pondered in the design of Threading Building Blocks, and this chapter aims to clarify where to start.

Intel Threading Building Blocks draws from a great many sources. Figure 12-1 highlights the key influences of the past decade or so. The influences were in the form of inspiration and, other than McRT, they have no actual source code connection. Influences prior to 1988 are left as an exercise for other historians.

Threading Building Blocks is unique because it rests on a few key decisions:

  • Support general C++ programs with existing compilers.

  • Relaxed sequential execution (see Chapter 10).

  • Use recursive parallelism and generic algorithms.

  • Use task stealing.

This chapter gives insights into each one of these. The Quicksort example in Chapter 11 ...

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.