3 ms·
Looking for interesting performance engineering examples for class
I'm teaching a performance engineering class at UC Davis (EEC 289Q) that's based on the amazing 6.172 performance engineering class from MIT. While many instructors have taught this class, Charles Leiserson has been the principal instructor for many years, and it's been a pleasure working with him and his colleagues in bringing it to UC Davis.
Much of the class has been a little more abstract, high-level, academic and I'd like to give a lecture that has several interesting practical examples that underscore some of the ideas that were taught in class. I've gathered a number of links from Hacker News over the past few months that are possible examples of what I'd love to hear (see below). The hope is that you might be able to suggest material or links that are along the lines of an in-depth blog post, hopefully with some interesting quantitative results, that basically tells a story like "I had this performance problem; it wasn't obvious that the answer to the problem was X, but I did some digging and it turns out it was X and I addressed it by Y." Ideally, X would be related to a topic we discussed in the class, which included:
General C-level performance optimizations / bit hacks / LLVM IR / compiler optimizations / races and parallelism / anything having to do with Cilk, which we studied in depth / parallel algorithms / storage allocation / cache {efficient, oblivious} algorithms / synchronization
Here's some of the links I collected from Hacker News that I thought might be suitable for ~10-15 minutes each:
https://hackernoon.com/timsort-the-fastest-sorting-algorithm-youve-never-heard-of-36b28417f399
https://github.com/apankrat/notes/tree/master/fast-case-conversion
https://github.com/madler/crcany
https://dlang.org/blog/2020/05/14/lomutos-comeback/
https://aqjune.github.io/posts/2021-10-4.the-select-story.html
https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/
I'd be much obliged for any suggestions you might have!
- airbreather 5y agoCan't go past Molly Rocket on youtube.
- GrumpyYoungMan 5y agoI'd suggest the posts / talks from Brendan Gregg, a performance expert at Netflix, that have featured on HN: https://news.ycombinator.com/from?site=brendangregg.com https://news.ycombinator.com/from?site=brendangregg.com. Most students will likely find themselves employed working on web / cloud systems and should find the sort of topics he covers to be valuable. Some particularly interesting ones were: "The Speed of Time" - https://news.ycombinator.com/item?id=28662945 https://news.ycombinator.com/item?id=28662945 "Meltdown Initial Performance Regressions" - https://news.ycombinator.com/item?id=16342665 https://news.ycombinator.com/item?id=16342665 "CPU Utilization is Wrong" - https://news.ycombinator.com/item?id=14301739 https://news.ycombinator.com/item?id=14301739 "Linux Load Averages: Solving the Mystery" - https://news.ycombinator.com/item?id=14959288 https://news.ycombinator.com/item?id=14959288
- knavely 5y agoI have been a fan of John Hughes (the creator of quickcheck). He has some awesome presentations of his real life testing consultant work on crazy mission critical systems. He likely has some stuff that for your criteria… Just some quick search result papers: property testing for race conditions https://smallbone.se/papers/finding-race-conditions.pdf https://smallbone.se/papers/finding-race-conditions.pdf Testing telcos https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.6554&rep=rep1&type=pdf https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14...
- holla_a_m_ego 5y agoModernGPU (by Sean Baxter) had been quite helpful to me in understanding performance factors in a GPU. The blogs are also well illustrated, some examples are https://moderngpu.github.io/scan.html https://moderngpu.github.io/scan.html https://moderngpu.github.io/mergesort.html https://moderngpu.github.io/mergesort.html I remember using their segmented sort and reduce to build a segmented mode.