Bottle Graphs: Visualizing Scalability Bottlenecks in Multi-Threaded Applications

被引:0
|
作者
Du Bois, Kristof [1 ]
Sartor, Jennifer B. [1 ]
Eyerman, Stijn [1 ]
Eeckhout, Lieven [1 ]
机构
[1] Univ Ghent, B-9000 Ghent, Belgium
基金
欧洲研究理事会; 比利时弗兰德研究基金会;
关键词
Performance Analysis; Multicore; !text type='Java']Java[!/text; Bottlenecks; PERFORMANCE; COLLECTION;
D O I
10.1145/2544173.2509529
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Understanding and analyzing multi-threaded program performance and scalability is far from trivial, which severely complicates parallel software development and optimization. In this paper, we present bottle graphs, a powerful analysis tool that visualizes multi-threaded program performance, in regards to both per-thread parallelism and execution time. Each thread is represented as a box, with its height equal to the share of that thread in the total program execution time, its width equal to its parallelism, and its area equal to its total running time. The boxes of all threads are stacked upon each other, leading to a stack with height equal to the total program execution time. Bottle graphs show exactly how scalable each thread is, and thus guide optimization towards those threads that have a smaller parallel component (narrower), and a larger share of the total execution time (taller), i.e. to the 'neck' of the bottle. Using light-weight OS modules, we calculate bottle graphs for unmodified multi-threaded programs running on real processors with an average overhead of 0.68%. To demonstrate their utility, we do an extensive analysis of 12 Java benchmarks running on top of the Jikes JVM, which introduces many JVM service threads. We not only reveal and explain scalability limitations of several well-known Java benchmarks; we also analyze the reasons why the garbage collector itself does not scale, and in fact performs optimally with two collector threads for all benchmarks, regardless of the number of application threads. Finally, we compare the scalability of Jikes versus the OpenJDK JVM. We demonstrate how useful and intuitive bottle graphs are as a tool to analyze scalability and help optimize multi-threaded applications.
引用
收藏
页码:355 / 371
页数:17
相关论文
共 50 条
  • [1] Classifying Performance Bottlenecks in Multi-Threaded Applications
    Dutta, Sourav
    Manakkadu, Sheheeda
    Kagaris, Dimitri
    [J]. 2014 IEEE 8TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANYCORE SOCS (MCSOC), 2014, : 341 - 345
  • [2] A scalability prediction approach for multi-threaded applications on manycore processors
    Bai, Xiuxiu
    Wang, Endong
    Dong, Xiaoshe
    Zhang, Xingjun
    [J]. JOURNAL OF SUPERCOMPUTING, 2015, 71 (11): : 4072 - 4094
  • [3] A scalability prediction approach for multi-threaded applications on manycore processors
    Xiuxiu Bai
    Endong Wang
    Xiaoshe Dong
    Xingjun Zhang
    [J]. The Journal of Supercomputing, 2015, 71 : 4072 - 4094
  • [4] On visualizing large multidimensional datasets with a multi-threaded radial approach
    Liu, Tianyang
    Bouali, Fatma
    Venturini, Gilles
    [J]. DISTRIBUTED AND PARALLEL DATABASES, 2016, 34 (03) : 321 - 345
  • [5] On visualizing large multidimensional datasets with a multi-threaded radial approach
    Tianyang Liu
    Fatma Bouali
    Gilles Venturini
    [J]. Distributed and Parallel Databases, 2016, 34 : 321 - 345
  • [6] Using Cycle Stacks to Understand Scaling Bottlenecks in Multi-Threaded Workloads
    Heirman, Wim
    Carlson, Trevor E.
    Che, Shuai
    Skadron, Kevin
    Eeckhout, Lieven
    [J]. 2011 IEEE INTERNATIONAL SYMPOSIUM ON WORKLOAD CHARACTERIZATION (IISWC), 2011, : 38 - 49
  • [7] Paje: An extensible environment for visualizing multi-threaded programs executions
    de Kergommeaux, JC
    Stein, BD
    [J]. EURO-PAR 2000 PARALLEL PROCESSING, PROCEEDINGS, 2000, 1900 : 133 - 140
  • [8] Analysing Dataflow Multi-Threaded Applications at Runtime
    Mazumdar, Somnath
    Scionti, Alberto
    [J]. 2017 7TH IEEE INTERNATIONAL ADVANCE COMPUTING CONFERENCE (IACC), 2017, : 744 - 749
  • [9] A Framework for Systematic Testing of Multi-threaded Applications
    Florian, Mihai
    [J]. 2011 IEEE 17TH PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING (PRDC), 2011, : 278 - 279
  • [10] SCALO: Scalability-Aware Parallelism Orchestration for Multi-Threaded Workloads
    Georgakoudis, Giorgis
    Vandierendonck, Hans
    Thoman, Peter
    De Supinski, Bronis R.
    Fahringer, Thomas
    Nikolopoulos, Dimitrios S.
    [J]. ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2017, 14 (04)