Sorting Algorithms: Speed Is Found In The Minds of People - Andrei Alexandrescu - CppCon 2019
Why Hacker News recommends it
HN recommends it as an entertaining talk that starts simple and goes deep on practical performance optimization.
What it is
Andrei Alexandrescu's CppCon 2019 talk revisits sorting, showing how branchless tricks, hybrid strategies and a cost metric can speed up std::sort-style algorithms on modern hardware.
Recommended by 7 HN commenters across 6 different months, 2019 to 2024.
What Hacker News said
Strong rec jiggawatts · 2023-01 · on “Ask HN: What's the best lecture series you've ever seen?”
Not exactly a lecture series, but Andrei Alexandrescu has had some fantastic keynote presentations at CppCon. I don't even program in C++ any more, but I've watched these more than once, they're entertaining, approachable, and inspiring: Speed Is Found In The Minds of People [this video] std::allocator Is to Allocation what std::vector Is to Vexation [LINK] An actual lecture series I've enjoyed watching is "The WE-Heraeus International Winter School on Gravity and Light", which covers General Relativity using modern mathematical approaches: [LINK] Again, I haven't done physics in 20 years, but I've found it surprisingly easy to follow because it is so clearly presented.
Strong rec bboreham · 2023-12 · on “Ask HN: Programming Courses for Experienced Coders?”
I really enjoyed “Speed Is Found In The Minds Of People”, a talk by Andrei Alexandrescu. At first he is just showing simple stuff, but stay with it, he goes deep. [this video]
Recommends United857 · 2019-10 · on “Engineering a Sort Function (1993) [pdf]”
If you're interested in these types of implementation/optimization details, Andrei Alexandrescu gave a great talk at this year's CppCon about practical sorting, e.g. when to break out of quicksort to something else: [this video]
Recommends planteen · 2019-10 · on “Mispredicted branches can multiply your running times”
The article is C++, so not sure why you are bringing up AOT/JIT since it doesn't apply here. And clearly there is a large gain possible by doing a calculation rather than a conditional with a high entropy result, otherwise, the article's mentioned speedup wouldn't have happened. A PGO feedback loop isn't going to do anything on a high entropy conditional. I saw a great talk at CppCon 2019 by Andrei Alexandrescu about speeding up std::sort. He does this same trick among others to speed up the C++ std library sort routine. [this video]
Recommends nestorD · 2019-11 · on “Infectious Executable Stacks”
In his talk "Speed Is Found In The Minds of People" [0], Andrei Alexandrescu tries to make a sort really fast for medium sized vector and then closes on thoughts on this precise distinction. If this question intress you, it is worth watching. [0]: [this video]
Recommends jacobolus · 2020-01 · on “Why is quicksort better than other sorting algorithms in practice? (2013)”
I enjoyed Alexandrescu’s CppCon 2019 talk “Speed Is Found In The Minds of People” About optimizing generic sorting routines for modern hardware. [this video]
Recommends r_sreeram · 2023-09 · on “Airlines Are Just Banks Now”
Here's an excellent example of what GP said: [this video] (long video, skip to 26:00 if you are in a hurry) The key is that code isn't running in a vacuum. It's operating on data (or controlling systems, etc). A smaller amount of code may be operating on the data in an inefficient manner, whereas a larger amount may be doing it more efficiently. In the above talk, this contrast is very stark, because the "more code" version does some stuff and then does the exact thing the "less code" version does, yet is faster. This kind of thing is common enough (albeit less stark than in the above example), that "less code is faster" is not a great "default" assumption to make.
Cites jeffreygoesto · 2020-04 · on “Folly – Faceboook’s open source C++ library”
Well, this argument goes both ways, a generic implementation can never leverage special properties of your data. See i.e. Alexandrecu's talk [0] at about 1:05ff. If as a company you have special use cases or guidelines, you may easily benefit from libraries using these properties. [0] [this video]