3 ms·
> This is going to be a long post Is it really? Sorry, but this is barely an introduction. Some additional links to important documentation: https://en.cppre
by ZoomZoomZoom 3y ago
> This is going to be a long post
Is it really? Sorry, but this is barely an introduction.
Some additional links to important documentation:
https://en.cppreference.com/w/cpp/language/memory_model https://en.cppreference.com/w/cpp/language/memory_model
https://en.cppreference.com/w/cpp/atomic/memory_order https://en.cppreference.com/w/cpp/atomic/memory_order
https://research.swtch.com/mm https://research.swtch.com/mm
Effective Concurrency series by Sutter: https://herbsutter.com/2009/07/15/effective-concurrency/ https://herbsutter.com/2009/07/15/effective-concurrency/
The Art of Multiprocessor Programming by Maurice Herlihy, Nir Shavit et al. ISBN: 978-0124159501
- sneela 3y ago> The Art of Multiprocessor Programming by Maurice Herlihy, Nir Shavit et al. ISBN: 978-0124159501 An excellent book that I used for my Parallel Programming course in my undergrad. While looking up Nir Shavit (back then), I came across a "Summer School on Practice and Theory of Concurrent Computing (2017)" [1] which had notable people give talks about interesting & fundamental topics related to Parallel Computing such as "Wait-free computing 'for dummies'", "Lock-free concurrent data structures", and "Locking, from traditional to modern" (taught by Nir Shavit). [2] is a link to a YouTube playlist containing all the videos from that Summer School. I highly recommend it. [1] https://neerc.ifmo.ru/sptcc/courses.html https://neerc.ifmo.ru/sptcc/courses.html [2] https://www.youtube.com/playlist?list=PLVe-2wcL84b9G9o7KPubp6NO0nqI1a-Qp https://www.youtube.com/playlist?list=PLVe-2wcL84b9G9o7KPubp...
- redixhumayun 3y agoHonestly, now that I look back at it having written it a couple of weeks ago, it doesn't feel that long. But, writing it felt incredibly wrong because I was encountering memory models for the first time. I think for someone who has no exposure to it before, its quite dense (perhaps long wasn't the best choice of wording) Also, I've been meaning to read The Art of Multiprocessor Programming. I've heard great things about it!
- menaerus 3y agoYou shouldn't feel bad about it - the blog is going to have its audience, so don't worry about it. That said, the topic is incredibly complex and to understand it fully requires intimate knowledge of the CPU microarchitectural details and design. So, technically speaking even the links from the comment you're replying to are providing a shallow although somewhat longer introduction. Programming languages only provide an abstraction for these very real things happening in the silicon so that's about as far as they can go by providing the sufficient amount of details. The real meat is down the rabbit hole of the CPU and memory subsystem design and if you want to go there I'd suggest the yt lectures from ETH Zurich on the topic of computer architectures and design (can find the link later).
- miloudi 3y agoare you talking about this one? https://www.youtube.com/watch?v=AJBmIaUneB0&list=PL5Q2soXY2Zi_FRrloMa2fUYWPGiZUBQo2 https://www.youtube.com/watch?v=AJBmIaUneB0&list=PL5Q2soXY2Z...
- menaerus 3y agoYes, that's the one. These lectures seem to repeat yearly so there're also playlists with the updated content from 2021, 2022 and 2023. There's also an "advanced" playlist and there're plenty of other interesting lectures about the memory.