Classifying Performance Bottlenecks in Multi-threaded Applications

Sourav Dutta, Sheheeda Manakkadu, Dimitri Kagaris · 2014

The performance of multi-threaded applications on modern multi-core processors does not necessarily depend on the number of cores. Instead it depends on multiple factors such as thread synchronization, which leads to thread spinning, and limited memory bandwidth for memory bound applications, which causes cores to wait for requested data and negative references in a shared cache or last-level cache. From a designer's perspective it is important to understand performance bottlenecks of a given application in order to design efficient hardware to achieve optimal performance. In this paper, we propose a model to identify scaling bottlenecks of multi-threaded applications which is based on linear regression. We demonstrate the practical usefulness of the model by applying it to benchmark multi-threaded applications.

Read the paper · More papers on PaperTik