HPCToolkit User's Manual - Semantic Scholar

Oct 9, 2017 - level due to competition for memory bandwidth in multicore processors [7]. ..... Then monitor app by passing hpcrun options through environment variables. ...... stantiate the JVM with the default size specified for the Java heap.
3MB Sizes 0 Downloads 78 Views
HPCToolkit User’s Manual John Mellor-Crummey Laksono Adhianto, Mike Fagan, Mark Krentel, Nathan Tallent Rice University October 9, 2017

Contents 1 Introduction

1

2 HPCToolkit Overview 2.1 Asynchronous Sampling . . . . . . . . 2.2 Call Path Profiling . . . . . . . . . . . 2.3 Recovering Static Program Structure . 2.4 Presenting Performance Measurements

. . . .

. . . .

. . . .

. . . .

5 5 6 7 8

3 Quick Start 3.1 Guided Tour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Compiling an Application . . . . . . . . . . . . . . . . . . . . . 3.1.2 Measuring Application Performance . . . . . . . . . . . . . . . 3.1.3 Recovering Program Structure . . . . . . . . . . . . . . . . . . 3.1.4 Analyzing Measurements & Attributing them to Source Code . 3.1.5 Presenting Performance Measurements for Interactive Analysis 3.1.6 Effective Performance Analysis Techniques . . . . . . . . . . . 3.2 Additional Guidance . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

9 9 9 10 11 11 12 12 13

. . . . .

14 14 14 17 19 21

. . . . . . . . .

25 25 26 26 26 29 30 31 32 33

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

4 Effective Strategies for Analyzing Program Performance 4.1 Monitoring High-Latency Penalty Events . . . . . . . . . . 4.2 Computing Derived Metrics . . . . . . . . . . . . . . . . . . 4.3 Pinpointing and Quantifying Inefficiencies . . . . . . . . . . 4.4 Pinpointing and Quantifying Scalability Bottlenecks . . . . 4.4.1 Scalability Analysis Using Expectations . . . . . . . 5 Running Applications with hpcrun and hpclink 5.1 Using hpcrun . . . . . . . . . . . . . . . . . . . . 5.2 Using hpclink . . . . . . . . . . . . . . . . . . . 5.3 Sample Sources . . . . . . . . . . . . . . . . . . . 5.3.1 Linux perf events . . . . . . . . . . . . . 5.3.2 PAPI . . . . . . . . . . . . . . . . . . . . 5.3.3 Wallclock, Realtime and Cputime . . . . . 5.3.4 IO . . . . . . . . . . . . . . . . . . . . . . 5.3.5 Memleak . . . . . . . . . . . . . . . . . . 5.4 Process Fraction . . . . . . . . . . . . . . . . . .

i

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . .

. . . . .

. . . . . . . . .

. . . .

. . . . .

. . . . . . . . .

. . . .

. . . . .

. . . . . . . . .

. . . .

. . . . .

. . . . . . . . .

. . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

. . . . .

. . . . . . . . .

5.5 5.6 5.7

Starting and Stopping Sampling . Environment Variables for hpcrun Platform-Specific Notes . . . . . . 5.7.1 Cray XE6 and XK6 . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

33 35 35 35

6 hpcviewer’s User Interface 6.1 Launching . . . . . . . . . . . . . . 6.2 Views . . . . . . . . . . . . . . . . 6.3 Panes . . . . . . . . . .