- Home›
- Technology and Research›
- Intel Technology Journal›
- Multi-Core Software
Multi-Core Software
The Foundations for Scalable Multi-Core Software in Intel® Threading Building Blocks
Alexey Kukanov, Performance, Analysis and Threading Lab, Intel Corporation
Michael J. Voss, Performance, Analysis and Threading Lab, Intel Corporation
Index words: threading building blocks, threading, scalability, parallelism, software
Citations for this paper. Kukanov, A.; Voss, M. "The Foundations for Scalable Multi-Core Software in Intel® Threading Building Blocks." Intel Technology Journal.
http://www.intel.com/technology/itj/2007/
v11i4/5-foundations/1-abstract.htm (November 2007).
ABSTRACT
This paper describes two features of Intel® Threading Building Blocks (Intel® TBB) [1] that provide the foundation for its robust performance: a work-stealing task scheduler and a scalable memory allocator.
Work-stealing task schedulers efficiently balance load while maintaining the natural data locality found in many applications. The Intel® TBB task scheduler is available to users directly through an API and is also used in the implementation of the algorithms included in the library.
In this paper, we provide an overview of the TBB task scheduler and discuss three manual optimizations that users can make to improve its performance: continuation passing, scheduler bypass, and task recycling. In the Experimental Results section of this paper, we provide performance results for several benchmarks that demonstrate the potential scalability of applications threaded with TBB, as well as the positive impact of these manual optimizations on the performance of fine-grain tasks.
The task scheduler is complemented by the Intel TBB scalable memory allocator. Memory allocation can often be a limiting bottleneck in parallel applications. Using the TBB scalable memory allocator eliminates this bottleneck and also improves cache behavior. We discuss details of the design and implementation of the TBB scalable allocator and evaluate its performance relative to several commercial and non-commercial allocators, showing that the TBB allocator is competitive with these other allocators.