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

CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”

http://CppCon.org

Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017

RCU (Read, Copy, Update) is often the highest-performing way to implement concurrent data structures. The differences in performance between an RCU implementation and the next best alternative can be striking. And yet, RCU algorithms have received little attention outside of the world of kernel programming. Largely, this is because the most common drawback of RCU solution is complicated, and often wasteful, memory management. Kernel code has some advantages here, whereas a generic solution is much harder to design.

There are, however, cases when RCU is simple to use, offers very high performance, and the memory issues are easy to manage. In fact, you may already be using the RCU approach in your program without realizing it! Wouldn't that be cool? But careful now: you may be already using the RCU approach in your program in a subtly wrong way. I'm talking about the kind of way that makes your program pass every test you can throw at it and then crash in front of your most important customer (but only when they run their most critical job, not when you try to reproduce the problem).

In the more general case, we have to confront the problems of RCU memory management, but the reward of much higher performance can make it well worth the effort.

This talk will give you understanding of how RCU works, what makes it so efficient, and what are the conditions and restrictions for a valid application of an RCU algorithm. We focus on using RCU outside of kernel space, so we will have to deal with the problems of memory management... and yes, there will be garbage collection.

Fedor Pikus: Mentor Graphics - Siemens business, Chief Scientist

Fedor G Pikus is a Chief Engineering Scientist in the Design to Silicon division of Mentor Graphics Corp. His earlier positions included a Senior Software Engineer at Google and a Chief Software Architect for Calibre PERC, LVS, DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to software industry. His responsibilities as a Chief Scientist include planning long-term technical direction of Calibre products, directing and training the engineers who work on these products, design and architecture of the software, and research in new design and software technologies. Fedor has over 25 patents and over 90 papers and conference presentations on physics, EDA, software design, and C++ language.

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com

Видео CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers” канала CppCon
Показать
Комментарии отсутствуют
Введите заголовок:

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

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

Зарегистрируйтесь или войдите с
Информация о видео
19 октября 2017 г. 20:38:37
01:08:02
Другие видео канала
CppCon 2018: Fedor Pikus “Design for Performance”CppCon 2018: Fedor Pikus “Design for Performance”CppCon 2015: Fedor Pikus “The Unexceptional Exceptions"CppCon 2015: Fedor Pikus “The Unexceptional Exceptions"CppCon 2017: John Lakos “Local ('Arena') Memory Allocators (part 1 of 2)”CppCon 2017: John Lakos “Local ('Arena') Memory Allocators (part 1 of 2)”12 what is RCU 2013 Paul McKenny at IISc12 what is RCU 2013 Paul McKenny at IIScCppCon 2017: Jonathan Henson “Naivety of Creating Cross-Platform, Modern C++ Libraries...”CppCon 2017: Jonathan Henson “Naivety of Creating Cross-Platform, Modern C++ Libraries...”CppCon 2017: Nicolai Josuttis “The Nightmare of Move Semantics for Trivial Classes”CppCon 2017: Nicolai Josuttis “The Nightmare of Move Semantics for Trivial Classes”CppCon 2016: Marshall Clow “STL Algorithms - why you should use them, and how to write your own"CppCon 2016: Marshall Clow “STL Algorithms - why you should use them, and how to write your own"CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part II"CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part II"CppCon 2018: Greg Falcon “Initialization, Shutdown, and constexpr”CppCon 2018: Greg Falcon “Initialization, Shutdown, and constexpr”RCU's First-Ever CVE, and How I Lived to Tell the TaleRCU's First-Ever CVE, and How I Lived to Tell the TaleCppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced.  What do they really do?”CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”Kernel Recipes 2019 - RCU in 2019Kernel Recipes 2019 - RCU in 2019CppCon 2016: Nat Goodspeed “Elegant Asynchronous Code"CppCon 2016: Nat Goodspeed “Elegant Asynchronous Code"CppCon 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”CppCon 2017: Nir Friedman “What C++ developers should know about globals (and the linker)”CppCon 2017: Nir Friedman “What C++ developers should know about globals (and the linker)”CppCon 2015: Fedor Pikus “C++ Metaprogramming: Journey from simple to insanity and back"CppCon 2015: Fedor Pikus “C++ Metaprogramming: Journey from simple to insanity and back"CppCon 2016: Nicholas Ormrod “The strange details of std::string at Facebook"CppCon 2016: Nicholas Ormrod “The strange details of std::string at Facebook"CppCon 2015: Fedor Pikus PART 2 “Live Lock-Free or Deadlock (Practical Lock-free Programming) ”CppCon 2015: Fedor Pikus PART 2 “Live Lock-Free or Deadlock (Practical Lock-free Programming) ”Lecture 38: Lock-free multiprocessor coordination, Read-Copy-UpdateLecture 38: Lock-free multiprocessor coordination, Read-Copy-UpdateCppCon 2017: Nicholas Ormrod “Fantastic Algorithms and Where To Find Them”CppCon 2017: Nicholas Ormrod “Fantastic Algorithms and Where To Find Them”
Яндекс.Метрика