Using Cycle Stacks to Understand Scaling Bottlenecks in Multi-Threaded Workloads

From Sniper
Jump to navigation Jump to search

Wim Heirman, Trevor E. Carlson, Shuai Che, Kevin Skadron and Lieven Eeckhout

Published at the 2011 IEEE International Symposium on Workload Characterization (IISWC)


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

Full paper PDF

Bibtex entry

  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
  booktitle = {International Symposium on Workload Characterization (IISWC)},
  year = {2011},
  month = nov,