CppCon 2014 talk by Jeff Preshing on how Ubisoft Montreal developed games for multicore hardware, before and after C++11 concurrency support. It goes into atomics and lock-free programming in practice.
Why Hacker News points people here: Recommended as a clear, practical introduction to atomics and lock-free programming in C++.
“Jeff Preshing gave a really good introduction to atomics at CppCon 2014.[1]”HN comment, 2015
“Jeff Preshing gave a really good introduction to atomics at CppCon 2014.[1]”
Clear introduction to atomics and lock-free programming
Full comment
Jeff Preshing gave a really good introduction to atomics at CppCon 2014.[1] He explains it so clearly that 1 day later I had a fully tested lock-free work stealing queue and a queue. One of my favorite talks of last year. [1]: this video
RecommendsdougbinksAug 2015
“For those interested in the implementation of atomic operations see Jeff Preshing's”
Explains how atomic operations are implemented
Full comment
For those interested in the implementation of atomic operations see Jeff Preshing's "How Ubisoft Develops Games for Multicore - Before and After C++11", especially after 15m55s in on the video, or slide 37 of the pdf on github. Video: this video PDF: link
Cites itcorysamaMay 2016
“Ubisoft's talk spends more time getting into the weeds with atomic ops.”
Ubisoft talk going deep on atomic ops, compared with Naughty Dog's
Full comment
Similar talk: CppCon 2014: Jeff Preshing "How Ubisoft Develops Games for Multicore - Before and After C++11" this video Ubisoft's talk spends more time getting into the weeds with atomic ops. Naughty Dog's is more of an architecture discussion. If you can only watch one, I'll recommend Naughty Dog's.
Cites itgensJan 2021
“found a talk from an Ubisoft employee that is mostly what i came up with”
Ubisoft talk matching the commenter's own engine design
Full comment
I'm making a game/engine with efficiency/performance as a top goal. I'v spent years thinking about the design. And after i figured it out, i found a talk from an Ubisoft employee that is mostly what i came up with. The problems are many, especially since i want to support multiplayer. The biggest solutions are around how data is transformed and scheduling the code that transforms it, more or less. The talk: this video