Getting Started with Task-based Concurrency for C++ by using Intel TBB
Intel Threading Building Blocks (Intel TBB) is an open source library that is not only maintained by Intel but actively evolved (community preview features) and commercially aligned with Intel's software development products. Intel TBB is ported, influenced, reviewed, and widely adopted by the community as well as the industry. Intel TBB allows to incorporate parallelism and concurrency that blends well with C++11, and that is already prepared for the upcoming C++ standard library e.g., std::thread. In fact, Intel TBB already provides necessary interfaces as support for the standard library builds up. The foundation of Intel TBB made of OS-portable threads, services functions, and synchronization primitives is introduced. However, task-based parallelism is emphasized along with an insight into the Intel TBB task scheduler. The talk continues as a tutorial, that walks the audience from finding concurrency using tools, over identifying parallel programming patterns up to the use of generic parallel algorithms, concurrent containers, and flow-based programming (via flow graph). The tutorial is interspersed with code samples that also show some more advanced features e.g., thread affinity and other tuning mechanisms.
Speaker: Hans Pabst