Title
Characterizing and improving the performance of Intel Threading Building Blocks
Abstract
The Intel Threading Building Blocks (TBB) run- time library (1) is a popular C++ parallelization environment (2)(3) 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 pro- gramming 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 over- head that increases with increasing core counts and decreasing task sizes. Understanding the sources of these overheads and their implications on application performance can help program- mers 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.
Year
DOI
Venue
2008
10.1109/IISWC.2008.4636091
Seattle, WA
Keywords
Field
DocType
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
Programming productivity,Multithreading,Concurrency control,Task parallelism,Computer science,Concurrency,Parallel computing,Thread (computing),Real-time computing,Runtime library,Scalability
Conference
ISBN
Citations 
PageRank 
978-1-4244-2778-9
46
2.63
References 
Authors
12
2
Name
Order
Citations
PageRank
Gilberto Contreras141036.87
Margaret Martonosi28647715.76