Lock free & real time stuffs (for dummies)

A list of usefull stuffs/talks i collected about lock-free, concurrency and optimizations:

< https://github.com/nicolasdanet/Dummy/blob/master/RealTime.md >

Thanks for sharing other free resources.

13 Likes

Thanks for sharing, thats some meaty reading.

IMHO the talks about memory_order_relaxed and zombie pointers (from Michael Wong, Hans Boehm, Paul E. McKenney) are interesting even if you are already familiar with atomic stuffs!

1 Like

FYI: i renamed the file < Dummy/Links.md at master · nicolasdanet/Dummy · GitHub >.

Note that i added stuff about Computer Architecture also. For instance < https://www.youtube.com/@prof.dr.benh.juurlink5459/playlists >. Very interesting IMHO if you are curious (like me) about pipelining… :grin: The Padraic Edgington’s blog is a good introduction also < Dummy/Links.md at master · nicolasdanet/Dummy · GitHub >.

I quit GitHub ; list of talks below.

Links.txt (20.9 KB)

RealTime


The Golden Rules of Audio Programming - Pete Goodliffe - ADC16 - YouTube


Fabian Renn-Giles & Dave Rowland - Real-time 101 - part I: Investigating the real-time problem space - YouTube

Dave Rowland & Fabian Renn-Giles - Real-time 101 - Part II: The real-time audio developer’s toolbox - YouTube

Real-time Confessions in C++ - Fabian Renn-Giles - ADC23 - YouTube


What is Low Latency C++? (Part 1) - Timur Doumler - CppNow 2023 - YouTube

What is Low Latency C++? (Part 2) - Timur Doumler - CppNow 2023 - YouTube

Using Locks in Real-Time Audio Processing, Safely - Timur Doumler - ADC20 - YouTube

A Lock-free Atomic shared_ptr - Timur Doumler - CppNow 2022 - YouTube

Thread synchronisation in real-time audio processing with RCU (Read-Copy-Update) - Timur Doumler ADC - YouTube


Smarter Cpp Atomic Smart Pointers - Efficient Concurrent Memory Management - Daniel Anderson CppCon - YouTube

Lock-free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done! - Daniel Anderson - YouTube

Introduction to Wait-free Algorithms in C++ Programming - Daniel Anderson - CppCon 2024 - YouTube


C++ and Beyond 2012: Herb Sutter - atomic Weapons 1 of 2 - YouTube

C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 2 - YouTube

CppCon 2014: Herb Sutter “Lock-Free Programming (or, Juggling Razor Blades), Part I” - YouTube

CppCon 2014: Herb Sutter “Lock-Free Programming (or, Juggling Razor Blades), Part II” - YouTube


Introduction to Lock-free Programming - Tony van Eerd - YouTube

CppCon 2014: Tony Van Eerd “Lock-free by Example” - YouTube

CppCon 2017: Tony Van Eerd “An Interesting Lock-free Queue - Part 2 of N” - YouTube

C++Now 2018: Tony Van Eerd “The Continuing Saga of the Lock-free Queue: Part 3 of N” - YouTube


CppCon 2015: Fedor Pikus PART 1 “Live Lock-Free or Deadlock (Practical Lock-free Programming)" - YouTube

CppCon 2015: Fedor Pikus PART 2 “Live Lock-Free or Deadlock (Practical Lock-free Programming) ” - YouTube

CppCon 2016: Fedor Pikus “The speed of concurrency (is lock-free faster?)" - YouTube

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?” - YouTube

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

Lightning Talk: A Spinlock Implementation - Fedor Pikus - CppNow 2022 - YouTube


CppCon 2017: P. McKenney, M. Michael & M. Wong “Is Parallel Programming still hard? PART 1 of 2” - YouTube

CppCon 2017: P. McKenney, M. Michael & M. Wong “Is Parallel Programming still hard? PART 2 of 2” - YouTube


CppCon 2015: Michael Wong “C++11/14/17 atomics and memory model…" - YouTube

CppCon 2015: Paul E. McKenney “C++ Atomics…" - YouTube

CppCon 2016: Hans Boehm “Using weakly ordered C++ atomics correctly" - YouTube

A Relaxed Guide to memory_order_relaxed - Paul E. McKenney & Hans Boehm - CppCon 2020 - YouTube

Will Your Code Survive the Attack of the Zombie Pointers? - Wong, McKenney, Michael - CppCon 2019 - YouTube


CppCon 2016: “A lock-free concurrency toolkit for deferred reclamation and optimistic speculation" - YouTube

CppCon 2016: McKenney “Beyond the Issaquah Challenge: High-Performance Scalable Complex Updates" - YouTube

CppCon 2018: “The Landscape and Exciting New Future of Safe Reclamation for High Performance” - YouTube

Hazard Pointer Synchronous Reclamation Beyond Concurrency TS2 - Maged Michael - CppCon 2021 - YouTube

C++ Concurrency TS 2 Use Cases and Future Direction - Michael Wong, Maged Michael, Paul McKenney - YouTube


Catching Real-time Safety Violations in C++ - Dave Rowland - C++ on Sea 2024 - YouTube

RADSan: A Realtime-Safety Sanitizer - David Trevelyan & Ali Barker - ADC23 - YouTube

LLVM’s Realtime Safety Revolution: Tools for Modern Mission Critical Systems - CppCon 2024 - YouTube

Single Producer Single Consumer Lock-free FIFO From the Ground Up - Charles Frasch - CppCon 2023 - YouTube

Matthias Killat - Lock-free programming for real-time systems - Meeting C++ 2021 - YouTube

Forward Progress Guarantees in C++ - Olivier Giroux - CppNow 2023 - YouTube

How to Allocate on the Audio Thread, and Why You Might Want To: Allocations Considered Beneficial - YouTube

Running High Channel Count Audio Applications on Linux RT - Olivier Petit - ADC23 - YouTube


Optimization


CppCon 2018: Fedor Pikus “Design for Performance” - YouTube

Branchless Programming in C++ - Fedor Pikus - CppCon 2021 - YouTube

Undefined Behavior in C++: A Performance Viewpoint - Fedor Pikus - CppNow 2022 - YouTube

Undefined Behavior in C++: What Every Programmer Should Know and Fear - Fedor Pikus - CppCon 2023 - YouTube

Unlocking Modern CPU Power - Next-Gen C++ Optimization Techniques - Fedor G Pikus - C++Now 2024 - YouTube


CppCon 2016: Timur Doumler “Want fast C++? Know your hardware!" - YouTube

code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care - YouTube

Optimising a Real-Time Audio Processing Library - Dave Rowland - ADC22 - YouTube

An Engineering Approach to Optimising C++ - Dave Rowland - C++ on Sea 2023 - YouTube

C++20 Likely and Unlikely: A Journey Through Branch Prediction and Compiler Optimizations - YouTube

LLVM Optimization Remarks - Ofek Shilon - CppCon 2022 - YouTube

A More Intuitive Approach to Optimising Audio DSP Code - Gustav Andersson - ADC23 - YouTube

When Nanoseconds Matter: Ultrafast Trading Systems in C++ - David Gross - CppCon 2024 - YouTube


CppCon 2014: Chandler Carruth “Efficiency with Algorithms, Performance with Data Structures” - YouTube

CppCon 2016: Chandler Carruth “High Performance Code 201: Hybrid Data Structures" - YouTube

CppCon 2015: Chandler Carruth “Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!” - YouTube

CppCon 2016: Chandler Carruth “Garbage In, Garbage Out: Arguing about Undefined Behavior…" - YouTube

CppCon 2017: Chandler Carruth “Going Nowhere Faster” - YouTube

CppCon 2018: Chandler Carruth “Spectre: Secrets, Side-Channels, Sandboxes, and Security” - YouTube

CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions” - YouTube

Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015 - YouTube


CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()” - YouTube

C++Now 2018: Matt Godbolt “What Else Has My Compiler Done For Me Lately?” - YouTube

KEYNOTE: What Everyone Should Know About How Amazing Compilers Are - Matt Godbolt [C++ on Sea 2019] - YouTube


Concurrency


std::jthread - I Told You Concurrency Is Tricky - Nico Josuttis [ ACCU 2021 ] - YouTube


Back to Basics: Concurrency - Mike Shah - CppCon 2021 - YouTube

Modern C++ (cpp) Concurrency - YouTube

Back to Basics: Concurrency - Arthur O’Dwyer - CppCon 2020 - YouTube


Concurrency in C++: A Programmer’s Overview (part 1 of 2) - Fedor Pikus - CppNow 2022 - YouTube

Concurrency in C++: A Programmer’s Overview (part 2 of 2) - Fedor Pikus - CppNow 2022 - YouTube


Safety: off — How not to shoot yourself in the foot with C++ atomics - Anthony Williams - YouTube

CppCon 2016: Anthony Williams “The Continuing Future of C++ Concurrency" - YouTube

CppCon 2017: Anthony Williams “Concurrency, Parallelism and Coroutines” - YouTube

Here’s my number; call me, maybe. Callbacks in a multithreaded world - Anthony Williams [ACCU 2019] - YouTube

Concurrency in C++20 and Beyond - Anthony Williams - CppCon 2019 - YouTube

Get Off My Thread: Techniques for Moving Work to Background Threads - Anthony Williams - CppCon 2020 - YouTube

An Introduction to Multithreading in C++20 - Anthony Williams - CppCon 2022 - YouTube

Designing for C++ Concurrency Using Message Passing - Anthony Williams - ACCU 2023 - YouTube


Design


The Catalog of Design Patterns


Interview with Nicolai Josuttis for Meeting C++ 2024


C++Now 2017: Tony Van Eerd “Postmodern C++" - YouTube

C++Now 2018: Tony Van Eerd “Words of Wisdom” - YouTube

CppCon 2019: Tony Van Eerd Objects vs Values: Value Oriented Programming in an Object Oriented World - YouTube

Keynote: SOLID, Revisited - Tony Van Eerd - [CppNow 2021] - YouTube

Value Oriented Programming. Part 1: You Say You Want To Write A Function - Tony Van Eerd CppNorth 22 - YouTube

Value Oriented Programming Part V - Return of the Values - Tony Van Eerd - C++Now 2024 - YouTube


CppCon 2017: Klaus Iglberger “Free Your Functions!” - YouTube

[MUC++] Klaus Iglberger - “Embrace No Paradigm Programming!” - YouTube

Breaking Dependencies: The SOLID Principles - Klaus Iglberger - CppCon 2020 - YouTube

Back to Basics: Designing Classes (part 1 of 2) - Klaus Iglberger - CppCon 2021 - YouTube

Back to Basics: Designing Classes (part 2 of 2) - Klaus Iglberger - CppCon 2021 - YouTube

Breaking Dependencies: Type Erasure - A Design Analysis - Klaus Iglberger - CppCon 2021 - YouTube

Breaking Dependencies: The Path to High-Quality Software - Klaus Iglberger - Meeting C++ 2022 - YouTube

Breaking Dependencies - C++ Type Erasure - The Implementation Details - Klaus Iglberger CppCon 2022 - YouTube

Breaking Dependencies - The Visitor Design Pattern in Cpp - Klaus Iglberger - CppCon 2022 - YouTube

The Singleton Pattern - Anti-Pattern or Solution? - Klaus Iglberger - C++ on Sea 2022 - YouTube

Design Patterns: Facts and Misconceptions - Klaus Iglberger - CppCon 2021 - YouTube

Design Patterns - The Most Common Misconceptions (1 of N) - Klaus Iglberger - NDC TechTown. 2023 - YouTube

C++ Design Patterns - The Most Common Misconceptions (2 of N) - Klaus Iglberger - CppCon 2024 - YouTube

Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on Sea - YouTube


Design Patterns: Examples in C++ - Chris Ryan - ACCU 2023 - YouTube


Pragmatic Simplicity - Actionable Guidelines To Tame Cpp Complexity - Vittorio Romeo - CppCon 2022 - YouTube

The Most Important API Design Guideline - No, It’s Not That One - Jody Hagins - C++Now 2024 - YouTube

Investigating Legacy Design Trends in C++ & Their Modern Replacements - Katherine Rocha C++Now 2024 - YouTube

Finding Your Codebases C++ Roots - Katherine Rocha - CppCon 2023 - YouTube

Dependency Injection in C++ - A Practical Guide - Peter Muldoon - C++Now 2024 - YouTube

Developing Better C++ Code by Isolating Decisions - Michael Okyen - C++Now 2024 - YouTube

Reintroduction to Generic Programming for C++ Engineers - Nick DeMarco - C++Now 2024 - YouTube


C++ Should Be C++ - David Sankel - C++Now 2024 - YouTube


C++ Standard Views - Nico Josuttis - ACCU 2023 - YouTube

Understanding the Filter View to Use It Right - Nicolai M. Josuttis - ACCU 2024 - YouTube

Guide to the C++ Filter View in C++ Programming - Nicolai Josuttis - CppCon 2024 - YouTube


Miscellaneous


Why You Shouldn’t Write a DAW - David Rowland - ADC23 - YouTube


Type punning in modern C++ - Timur Doumler - CppCon 2019 - YouTube

Standard Attributes in C and C++ - Timur Doumler - ACCU 2023 [Rerelease] - YouTube

CppCon 2016: JF Bastien “No Sane Compiler Would Optimize Atomics" - YouTube

CppCon 2018: JF Bastien “Signed integers are two’s complement” - YouTube

Deprecating volatile - JF Bastien - CppCon 2019 - YouTube

*(char*)0 = 0; - What Does the C++ Programmer Intend With This Code? - JF Bastien - C++ on Sea 2023 - YouTube

Uninitialized Uses in Systems C++ Programming: The Bytes Before the C++ Types - JF Bastien - YouTube


Linkers, Loaders and Shared Libraries in Windows, Linux, and C++ - Ofek Shilon - CppCon 2023 - YouTube

How Linux Elf Symbols Work and How They Are Used in C++ and C Programming - Anders Schau Knatten - YouTube

What’s Eating My RAM? - Memory Utilization in C++ - Jianfei Pan - ACCU 2024 - YouTube


CPU


Prof. Dr. Ben H. Juurlink - YouTube


1 1 1 Definition And Objectives - YouTube

2 1 1 ILP Concepts and Challenges - YouTube

3 1 1 Introduction - YouTube

4 1 1 Multicore motivation - YouTube


Math


Maths


JOS Home Page

The Scientist and Engineer’s Guide to Digital Signal Processing’s Table of Content

Miller Puckette.pdf


14 Likes

Another (minor) one from Timur:

And from my favorite speaker:

3 Likes

The std::memory_order talk linked there is great, thanks for posting!

1 Like

IMHO it is not his most informative talk ; but there’s a reference to a book at the end i never heard about. I have just bought it…

The rust one? Me too

Yep, the Rust one ; I plan to learn Rust first!

1 Like

For memory (as i’m always searching the links)…

Thanks for the post. Here is an online version of the book mentioned (free, but you could also buy one to support the author):

Hopefully I will start reading this weekend :slight_smile:

3 Likes

The author is also on an episode of cppcast here with timur if anyone is interested: Episode 382 : CppCast

1 Like

Next (interesting IMHO) episodes (if you missed them):

4 Likes