COZ: Finding Code that Counts with Causal Profiling

被引:74
作者
Curtsinger, Charlie [1 ,3 ]
Berger, Emery D. [2 ]
机构
[1] Grinnell Coll, Dept Comp Sci, Grinnell, IA 50112 USA
[2] Univ Massachusetts, Coll Informat & Comp Sci, Amherst, MA 01003 USA
[3] Univ Massachusetts, Amherst, MA 01003 USA
来源
SOSP'15: PROCEEDINGS OF THE TWENTY-FIFTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES | 2015年
基金
美国国家科学基金会;
关键词
PERFORMANCE; PROGRAMS; PARALLEL;
D O I
10.1145/2815400.2815409
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Improving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spent their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities. This paper introduces causal profiling. Unlike past profiling approaches, causal profiling indicates exactly where programmers should focus their optimization efforts, and quantifies their potential impact. Causal profiling works by running performance experiments during program execution. Each experiment calculates the impact of any potential optimization by virtually speeding up code: inserting pauses that slow down all other code running concurrently. The key insight is that this slowdown has the same relative effect as running that line faster, thus "virtually" speeding it up. We present COZ, a causal profiler, which we evaluate on a range of highly-tuned applications: Memcached, SQLite, and the PARSEC benchmark suite. COZ identifies previously unknown optimization opportunities that are both significant and targeted. Guided by COZ, we improve the performance of Memcached by 9%, SQLite by 25%, and accelerate six PARSEC applications by as much as 68%; in most cases, these optimizations involve modifying under 10 lines of code.
引用
收藏
页码:184 / 197
页数:14
相关论文
共 44 条
[1]   Performance Analysis of Idle Programs [J].
Altman, Erik ;
Arnold, Matthew ;
Fink, Stephen ;
Mitchell, Nick .
ACM SIGPLAN NOTICES, 2010, 45 (10) :739-753
[2]  
Ammons G, 2004, LECT NOTES COMPUT SC, V3086, P170
[3]   Exploiting hardware performance counters with flow and context sensitive profiling [J].
Ammons, G ;
Ball, T ;
Larus, JR .
ACM SIGPLAN NOTICES, 1997, 32 (05) :85-96
[4]  
ANDERSON TE, 1990, PERF E R SI, V18, P115, DOI 10.1145/98460.98518
[5]   ANALYZING PARALLEL PROGRAMS WITH PIN [J].
Bach, Moshe ;
Charney, Mark ;
Cohn, Robert ;
Demikhovsky, Elena ;
Devor, Tevi ;
Hazelwood, Kim ;
Jaleel, Aamer ;
Luk, Chi-Keung ;
Lyons, Gail ;
Patil, Harish ;
Tal, Ady .
COMPUTER, 2010, 43 (03) :34-41
[6]   Efficient path profiling [J].
Ball, T ;
Larus, JR .
PROCEEDINGS OF THE 29TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE - MICRO-29, 1996, :46-57
[7]  
Brown A., 2001, 2001 IEEE/IFIP International Symposium on Integrated Network Management Proceedings. Integrated Network Management VII. Integrated Management Strategies for the New Millennium (Cat. No.01EX470), P377, DOI 10.1109/INM.2001.918054
[8]   The Origin and Production of Nanoparticles in Environment and Industry [J].
Burtscher, Heinz .
NANOPARTICLES IN MEDICINE AND ENVIRONMENT: INHALATION AND HEALTH EFFECTS, 2010, :1-17
[9]  
Cho Hyungmin., 2013, Design Automation Conference (DAC), 2013 50th ACM/EDAC/IEEE, P1
[10]  
Curtsinger C., 2013, ASPLOS