Using Cycle Stacks to Understand Scaling Bottlenecks in Multi-Threaded Workloads
Wim Heirman, Trevor E. Carlson, Shuai Che, Kevin Skadron and Lieven Eeckhout
Published at the 2011 IEEE International Symposium on Workload Characterization (IISWC)
Abstract
This paper proposes a methodology for analyzing parallel performance by building cycle stacks. A cycle stack quantifies where the cycles have gone, and provides hints towards optimization opportunities. We make the case that this is particularly interesting for analyzing parallel performance: understanding how cycle components scale with increasing core counts and/or input data set sizes leads to insight with respect to scaling bottlenecks due to synchronization, load imbalance, poor memory performance, etc.
We present several case studies illustrating the use of cycle stacks. As a subsequent step, we further extend the methodology to analyze sets of parallel workloads using statistical data analysis, and perform a workload characterization to understand behavioral differences across benchmark suites. We analyze the SPLASH-2, PARSEC and Rodinia benchmark suites and conclude that the three benchmark suites cover similar areas in the workload space. However, scaling behavior of these benchmarks towards larger input sets and/or higher core counts is highly dependent on the benchmark, the way in which the inputs have been scaled, and on the machine configuration.
Full text
Bibtex entry
@INPROCEEDINGS{heirman2011ucstusbimw, author = {Wim Heirman and Trevor E. Carlson and Shuai Che and Kevin Skadron and Lieven Eeckhout}, title = {Using Cycle Stacks to Understand Scaling Bottlenecks in Multi-Threaded Workloads}, booktitle = {International Symposium on Workload Characterization (IISWC)}, year = {2011}, month = nov, }