DocumentCode
2992921
Title
Characterizing and improving the performance of Intel Threading Building Blocks
Author
Contreras, Gilberto ; Martonosi, Margaret
Author_Institution
Dept. of Electr. Eng., Princeton Univ., Princeton, NJ
fYear
2008
fDate
14-16 Sept. 2008
Firstpage
57
Lastpage
66
Abstract
The Intel threading building blocks (TBB) runtime library is a popular C++ parallelization environment (D. Bolton, 2007) that offers a set of methods and templates for creating parallel applications. Through support of parallel tasks rather than parallel threads, the TBB runtime library offers improved performance scalability by dynamically redistributing parallel tasks across available processors. This not only creates more scalable, portable parallel applications, but also increases programming productivity by allowing programmers to focus their efforts on identifying concurrency rather than worrying about its management. While many applications benefit from dynamic management of parallelism, dynamic management carries parallelization overhead that increases with increasing core counts and decreasing task sizes. Understanding the sources of these overheads and their implications on application performance can help programmers make more efficient use of available parallelism. Clearly understanding the behavior of these overheads is the first step in creating efficient, scalable parallelization environments targeted at future CMP systems. In this paper we study and characterize some of the overheads of the Intel Threading Building Blocks through the use of real-hardware and simulation performance measurements. Our results show that synchronization overheads within TBB can have a significant and detrimental effect on parallelism performance. Random stealing, while simple and effective at low core counts, becomes less effective as application heterogeneity and core counts increase. Overall, our study provides valuable insights that can be used to create more robust, scalable runtime libraries.
Keywords
C++ language; concurrency control; multi-threading; multiprocessing systems; software libraries; system monitoring; C++ parallelization environment; Intel threading building block runtime library; chip multiprocessor; concurrency identification; dynamic parallel task redistribution; parallel programming; random stealing; Concurrent computing; Costs; Parallel processing; Parallel programming; Productivity; Programming profession; Robustness; Runtime library; Scalability; Yarn;
fLanguage
English
Publisher
ieee
Conference_Titel
Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on
Conference_Location
Seattle, WA
Print_ISBN
978-1-4244-2777-2
Electronic_ISBN
978-1-4244-2778-9
Type
conf
DOI
10.1109/IISWC.2008.4636091
Filename
4636091
Link To Document