Using cycle stacks to understand scaling bottlenecks in multi-threaded workloads

  • Authors:
  • Wim Heirman;Trevor E. Carlson;Shuai Che;Kevin Skadron;Lieven Eeckhout

  • Affiliations:
  • Department of Electronics and Information Systems, Ghent University, Belgium;Department of Electronics and Information Systems, Ghent University, Belgium;Department of Computer Science, University of Virginia, USA;Department of Computer Science, University of Virginia, USA;Department of Electronics and Information Systems, Ghent University, Belgium

  • Venue:
  • IISWC '11 Proceedings of the 2011 IEEE International Symposium on Workload Characterization
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

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.