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 :
بازگشت