C++ Memory Model: from C++11 to C++23 - Alex Dathskovsky - CppCon 2023

  Рет қаралды 27,847

CppCon

CppCon

2 ай бұрын

cppcon.org/
---
C++ Memory Model: from C++11 to C++23 - Alex Dathskovsky - CppCon 2023
github.com/CppCon/CppCon2023
In the realm of C++ development, threading and memory management play a crucial role in crafting highly parallel and optimized programs. However, the absence of a memory model in C++98 posed challenges. Thankfully, with the advent of C++11, significant changes were introduced, including the introduction of a memory model, which brought forth a plethora of new and exciting tools for developers to leverage. This talk aims to delve into the realm of the C++ memory model, showcasing the arsenal of tools at our disposal. Attendees will gain insights into how CPUs and compilers optimize code and understand the criticality of adhering to the memory model correctly. Practical guidelines on utilizing these tools effectively will also be explored.
Throughout the talk, we will illustrate practical examples and share best practices for utilizing the diverse set of tools now available to us. From atomic operations to memory barriers, we will explore the range of techniques that allow us to develop robust and thread-safe code.
This talk will also illustrate the newer tools from newer C++ standards like JThread and so this talk will show how memory model is used and how it advanced since C++11
---
Alex Dathskovsky
Alex has over 16 years of software development experience, working on systems, low-level generic tools, and high-level applications. Alex has worked as an integration/software developer at Elbit, senior software developer at Rafael, technical leader at Axxana, software manager at Abbott Israel, and now a group manager a technical manager at Speedata.io, an exciting startup that will change big data and analytics as we know them. In his current job, Alex is developing a new CPU/APU system working with C++20, massive metaprogramming, and the development of LLVM to create the next Big Thing for Big Data.
Alex is a C++ expert with a strong experience in template meta-programming. Alex also teaches a course about the new features of modern C++, trying to motivate companies to move to the latest standards.
---
Videos Filmed & Edited by Bash Films: www.BashFilms.com
KZbin Channel Managed by Digital Medium Ltd: events.digital-medium.co.uk
---
Registration for CppCon: cppcon.org/registration/
#cppcon #cppprogramming #cpp

Пікірлер: 33
@soniablanche5672
@soniablanche5672
the int i{} triggers me, why not just write int i = 0 like a normal person
@kodirovsshik
@kodirovsshik
2:03
@TechTalksWeekly
@TechTalksWeekly
This talk has been featured in the last issue of ⭐Tech Talks Weekly newsletter. Congrats Alex! 👏
@denisfedotov6954
@denisfedotov6954
A couple of comments:
@Roibarkan
@Roibarkan
24:26
@weiqin8494
@weiqin8494
54:39
@meneldal
@meneldal
Only use I have found for volatile was for accessing hardware registers. You need to tell the compiler that every read/write must really happen but you also have to make sure the cpu mmu will have flagged those memory areas as noncachable so it will actually do what you want.
@Roibarkan
@Roibarkan
38:45
@Roibarkan
@Roibarkan
38:36
@Roibarkan
@Roibarkan
34:34
@Carewolf
@Carewolf
You need to keep in mind. Volatile before atomic instructions were the ONLY synchronization available in C and C++, therefore it works as such, even though the standard doesnt require it.
@vv78.
@vv78.
Dear Alex & Co! Thank you for sharing on your knowledge. Please, Quora: Is it important to understand how computer memory works?
@yk0578
@yk0578
Re: Pop Quiz
@ABaumstumpf
@ABaumstumpf
20:48
@kristiannyfjell8097
@kristiannyfjell8097
What is it with C++ programmers thinking Volatile is used with atomics and threads? Every talk where Volatile is mentioned there is always emphasis on "stop using it with atomics!".
@imrank340
@imrank340
He did not show header file. Did he include pthread.h file? Since pthread.h file fully supported by Linux OS platform windows has it own mechanism for multi threading.
@Milan_Openfeint
@Milan_Openfeint
I guess you could skip the first 15 minutes but after that it goes quite fast.
@MaxWright7
@MaxWright7 21 күн бұрын
Pipelining and von Neumann architecture are two different things.
@user-go5oe6td3k
@user-go5oe6td3k
It seems like C++ threads are just painfully trying to evolve pthreads into this century. Every example cited would just be easier, cleaner and more portable if implemented with good old OpenMP. I can't see a compelling argument to use this stuff.
Getting Started with C++ - Michael Price - CppCon 2023
57:55
Не пей газировку у мамы в машине
00:28
Даша Боровик
Рет қаралды 4,1 МЛН
ОДИН ДОМА #shorts
00:34
Паша Осадчий
Рет қаралды 6 МЛН
I PEELED OFF THE CARDBOARD WATERMELON!#asmr
00:56
HAYATAKU はやたく
Рет қаралды 26 МЛН
ISSEI funny story😂😂😂Strange World | Magic Lips💋
00:36
ISSEI / いっせい
Рет қаралды 116 МЛН
Intrinsic Functions - Vector Processing Extensions
55:39
javidx9
Рет қаралды 121 М.
Optimising Code - Computerphile
19:43
Computerphile
Рет қаралды 137 М.
Let's get comfortable with SFINAE (C++)
35:55
platis.solutions
Рет қаралды 2,7 М.
everything is open source if you can reverse engineer (try it RIGHT NOW!)
13:56
Low Level Learning
Рет қаралды 1,2 МЛН
New Algorithms in C++23 - Conor Hoekstra - C++ on Sea 2023
1:25:20
OpenAI SHOCKED Everyone! Voice, Vision, & Free?!
8:58
Theoretically Media
Рет қаралды 39 М.
Back to Basics: Testing in C++ - Phil Nash - CppCon 2023
1:02:33
OpenAI’s GPT-4o: The Best AI Is Now Free!
9:14
Two Minute Papers
Рет қаралды 166 М.
why do void* pointers even exist?
8:17
Low Level Learning
Рет қаралды 307 М.
Не пей газировку у мамы в машине
00:28
Даша Боровик
Рет қаралды 4,1 МЛН