reitzensteinmon Hacker News • Recommends
On “When Optimising Code, Measure”
#coz#causalprofiling#benchmarking
49K subscribers • 7 videos on Hallway
Intermediate. Assumes working knowledge.
7.1K views6 years ago3 recommendations
Systems programmingTools and practicePerformance and optimizationCompilers and interpretersTesting
Emery Berger explains why traditional performance profiling fails on modern hardware and introduces causal profiling to find code that actually matters.
Title: Performance (Really) Matters Speaker: Emery Berger Date: September 23, 2020 ABSTRACT Performance clearly matters to users. For example, the most common software update on the AppStore is "Bug fixes and performance enhancements." Now that Moore's Law has ended, programmers have to work hard to get high performance for their applications. But why is performance hard to deliver? I will first explain why current approaches to evaluating and optimizing performance don't work. I'll show how complicated performance has become on modern systems, and how compiler optimizations have essentially run out of steam. Next, I'll introduce two radically new performance profilers that guide programmers directly to the code they need to change to improve application performance. The first is Coz, a new "causal profiler" for C/C++/Rust (with a Java version as well) that lets programmers optimize for throughput or latency, and which pinpoints and accurately predicts the impact of optimizations via what we call "virtual speedup" experiments. Coz's approach unlocks previously unknown optimization opportunities. Guided by Coz, we improved the performance of applications by as much as 68%; in most cases, this involved modifying less than 10 lines of code and took under half an hour (without any prior understanding of the programs!). Coz now ships as part of standard Linux distros (apt install coz-profiler). The second is Scalene, a "scripting-language aware" profiler for Python (with other scripting languages to come). Scalene runs orders of magnitude faster than other profilers while delivering far more detailed information -- information that's especially valuable to Python programmers. Via a combination of sampling, inference, and disassembly of byte-codes, Scalene efficiently and precisely attributes execution time and memory usage to Python, which developers can optimize, or library code, which they cannot. Its novel sampling memory allocator efficiently reports line-level memory consumption and trends with low overhead, helping developers reduce footprints and identify leaks. Finally, Scalene reports a new metric, copy volume, that helps developers root out insidious copying costs across the Python/library boundary, which can drastically degrade performance. Scalene is available on PyPi (pip install scalene). SPEAKER Emery Berger Professor, University of Massachusetts Amherst, ACM Fellow Emery Berger is a Professor in the College of Information and Computer Sciences at the University of Massachusetts Amherst, the flagship campus of the UMass system. He graduated with a PhD in Computer Science from the University of Texas at Austin in 2002. Professor Berger has been a Visiting Scientist at Microsoft Research and at the Universitat Politècnica de Catalunya (UPC)/Barcelona Supercomputing Center (BSC). Professor Berger’s research spans programming languages, runtime systems, and operating systems, with a particular focus on systems that transparently improvWhat people say. Highly recommended for exposing the flaws of traditional benchmarking and introducing causal profiling.
reitzensteinmon Hacker News • Recommends
On “When Optimising Code, Measure”
vanderZwanon Hacker News • Recommends
On “Fast memcpy, A System Design”
sitkackon Hacker News • Recommends
On “Disabling Zen 5's Op Cache and Exploring Its Clustered Decoder”
vanderZwanon Hacker News • Recommends
On “To study how chips work, MIT researchers built their own operating system”
kaliszadon Hacker News • Mentions
On ““Fast Kernel Headers” Tree -v1: Eliminate the Linux Kernel's “Dependency Hell””
sitkackon Hacker News • Mentions
On “The true cost of linked lists”
nerpderp82on Hacker News • Mentions
On “Four Kinds of Optimisation”
u/fullouterjoinin r/ProgrammingLanguages • Mentions
On “Distilling the Real Cost of Production Garbage Collectors”