Загрузка страницы

Plenary: Performance Matters - Emery Berger - CppCon 2020

https://cppcon.org/
https://github.com/CppCon/CppCon2020/blob/main/Presentations/performance_matters/performance_matters__emery_berger__cppcon_2020.pdf
---
Performance is one of the chief reasons why many C++ programmers love the language. In the past, Moore's Law meant that our programs ran faster every year. Now that Dennard scaling has ended, C++ programmers have to work harder to get high performance for their applications. In this talk, I'll first discuss some of the significant and surprising challenges facing C++ programmers trying to achieve high performance on modern hardware platforms: performance is far less stable and predictable than you might think! I'll present some experimental evidence that strongly suggests we can't count on compiler optimizations to help us out of this hole: in particular, I'll show -- using a new experimental methodology -- that the difference between clang's -O2 and -O3 optimization levels is essentially indistinguishable from noise.

Since compiler optimizations have run out of steam, we need better profiling support, especially for modern concurrent, multi-threaded applications. I'll talk about a new approach to profiling, which I call "causal profiling". Causal profiling lets programmers optimize for throughput or latency, and which pinpoints and accurately predicts the impact of optimizations. It works by running performance experiments, based on the idea of "virtual speedups". We've built a causal profiler called Coz, which now ships as part of standard Linux distros, and which also works for C++ and Rust (there's even a Java version). Using it, we find that Coz can unlock previously unknown optimization opportunities. Guided by Coz, we improved the performance of Memcached (9%), SQLite (25%), and accelerated six other 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!).

---
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, where he co-directs the PLASMA @ UMass lab. He graduated with a Ph.D. 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 improve reliability, security, and performance. He and his collaborators have created a number of influential software systems including Hoard, a fast and scalable memory manager that accelerates multithreaded applications (used by companies including British Telecom, Cisco, Crédit Suisse, Reuters, Royal Bank of Canada, SAP, and Tata, and on which the Mac OS X memory manager is based); DieHard, an error-avoiding memory manager that directly influenced the design of the Windows 7 Fault-Tolerant Heap; and DieHarder, a secure memory manager that was an inspiration for hardening changes made to the Windows 8 heap. His honors include a Microsoft Research Fellowship, an NSF CAREER Award, a Lilly Teaching Fellowship, the Distinguished Artifact Award for PLDI 2014, the Most Influential Paper Award at OOPSLA 2012, the Most Influential Paper Award at PLDI 2016, three CACM Research Highlights, a Google Research Award, a Microsoft SEIF Award, and Best Paper Awards at FAST, OOPSLA, and SOSP; he was named an ACM Distinguished Member in 2018. Professor Berger is currently serving his second term as an elected member of the SIGPLAN Executive Committee; he served for a decade (2007-2017) as Associate Editor of the ACM Transactions on Programming Languages and Systems, and was Program Chair for PLDI 2016.

---
Streamed & Edited by Digital Medium Ltd - events.digital-medium.co.uk
events@digital-medium.co.uk

Видео Plenary: Performance Matters - Emery Berger - CppCon 2020 канала CppCon
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
30 сентября 2020 г. 8:00:11
01:01:09
Другие видео канала
CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”Breaking Dependencies: The SOLID Principles - Klaus Iglberger - CppCon 2020Breaking Dependencies: The SOLID Principles - Klaus Iglberger - CppCon 2020"Performance Matters" by Emery Berger"Performance Matters" by Emery BergerJust-in-Time Compilation - JF Bastien - CppCon 2020Just-in-Time Compilation - JF Bastien - CppCon 2020Plenary: The Beauty and Power of "Primitive" C++ - Bjarne Stroustrup - CppCon 2020Plenary: The Beauty and Power of "Primitive" C++ - Bjarne Stroustrup - CppCon 2020Making Games Start Fast: A Story About Concurrency - Mathieu Ropert - CppCon 2020Making Games Start Fast: A Story About Concurrency - Mathieu Ropert - CppCon 2020CppCon 2019: Andrei Alexandrescu “Speed Is Found In The Minds of People"CppCon 2019: Andrei Alexandrescu “Speed Is Found In The Minds of People"CppCon 2016: Howard Hinnant “A <chrono> Tutorial"CppCon 2016: Howard Hinnant “A <chrono> Tutorial"CppCon 2015: Chandler Carruth "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!"CppCon 2015: Chandler Carruth "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!"C++20 String Formatting Library: An Overview and Use with Custom Types - Marc Gregoire - CppCon 2020C++20 String Formatting Library: An Overview and Use with Custom Types - Marc Gregoire - CppCon 2020CppCon 2017: Kate Gregory “10 Core Guidelines You Need to Start Using Now”CppCon 2017: Kate Gregory “10 Core Guidelines You Need to Start Using Now”Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020CppCon 2016: Nicolas Fleury “Rainbow Six Siege: Quest for Performance"CppCon 2016: Nicolas Fleury “Rainbow Six Siege: Quest for Performance"Retiring the Singleton Pattern: Concrete Suggestions for What to use Instead - Peter MuldoonRetiring the Singleton Pattern: Concrete Suggestions for What to use Instead - Peter MuldoonBack to Basics: The Structure of a Program - Bob Steagall - CppCon 2020Back to Basics: The Structure of a Program - Bob Steagall - CppCon 2020Monoids, Monads, and Applicative Functors: Repeated Software Patterns - David Sankel - CppCon 2020Monoids, Monads, and Applicative Functors: Repeated Software Patterns - David Sankel - CppCon 2020CppCon 2016: Timur Doumler “Want fast C++? Know your hardware!"CppCon 2016: Timur Doumler “Want fast C++? Know your hardware!"CppCon 2019: Arthur O'Dwyer “Back to Basics: Smart Pointers”CppCon 2019: Arthur O'Dwyer “Back to Basics: Smart Pointers”OO Considered Harmful - Phil Nash - CppCon 2020OO Considered Harmful - Phil Nash - CppCon 2020Back to Basics: Algebraic Data Types - Arthur O'Dwyer - CppCon 2020Back to Basics: Algebraic Data Types - Arthur O'Dwyer - CppCon 2020
Яндекс.Метрика