Hacker News Comments on
High Performance Computer Architecture | Udacity Free Courses
Hacker News Stories and CommentsAll the comments and stories posted to Hacker News that reference this url.
2018, 87 comments: https://news.ycombinator.com/item?id=18230383
2016, 12 comments: https://news.ycombinator.com/item?id=11116211
2014, 37 comments: https://news.ycombinator.com/item?id=7174513
2011, 30 comments: https://news.ycombinator.com/item?id=2428403
This link has also appeared in 9 comments on HN, featuring threads on "Computer Architecture for Network Engineers", "X86 versus other architectures" by Linus Torvalds, and "I don't know how CPUs work so I simulated one in code", also recommending a udacity course on how modern processors work (https://www.udacity.com/course/high-performance-computer-arc...): https://ampie.app/url-context?url=lighterra.com/papers/moder...
Jason also has a couple of other interesting articles on his website, like intro to instruction scheduling and software pipelining (http://www.lighterra.com/papers/basicinstructionscheduling/) and the one I liked a lot and agree with called "exception handling considered harmful" (http://www.lighterra.com/papers/exceptionsharmful/).
Udacity courses on high performance computing are good MOOCs . Also MIT's Computation Structures course  covers some quantitative performance modeling.
> So I’m trying to get a better understanding of this stuff because I don’t know what L1/L2 caches are, I don’t know what pipelining means, I’m not entirely sure I understand the Meltdown and Spectre vulnerability papers.
I wouldn't discourage anyone from learning about hardware from implementing gates or even looking at simple 8-bit CPUs, but if you are interested in learning how modern caches and pipelines work, there is a free Udacity course that goes into excellent detail . You can also find the lecture videos on YouTube.
This is originally an online course at Georgia Tech and the professor does an excellent job teaching these concepts.
⬐ taorminaI took this class at Georgia Tech as an undergrad and I also highly recommend it for the material. We had a chain of CS classes leading up to it (2110 -> 2200 -> 4290) on the undergrad side, but when I took it, this course was actually cross-listed as both an undergrad and graduate CS and ECE class (so CS 4290/6290 and the same sort of thing for the ECE major were all in the same literal lecture hall). Of course, most CS students were only taking this if they were in the System & Architectures thread (or maybe Devices?), but most CS students had to at least take up to CS 2200 (Systems & Networks, which basically took the concepts up to "Build me a working 1 CPU computer", whereas this class took the next steps from "Okay, so how do we do better than 1 instruction per cycle?"). Multi-core processors are really cool!
I frequently take for granted that most people don't have this foundational knowledge. The basics come up more than you'd think, especially when provisioning the right hardware for the task.⬐ filoleg⬐ djhworldUnfortunately, that’s not the case anymore with 2200. There is only one thread combination that allows CS students to skip 2110, but quite a few combinations that allow skipping 2200, not even mentioning 4290. Anecdotal, but out of people who graduated with me that I know, barely two thirds of them took 2200 :(
P.S. For clarification, since those classes are in a series (2110->2200->4290), skipping an earlier one means you are skipping all the following ones too.⬐ nostreboredThat's horrible. 2200 was a hazing and a half but Leahy was such an effective instructor and I don't regret learning the material at all. Building our own pipeline processors was such a fun, if taxing, experience.⬐ filolegTook it with Leahy myself, I feel like the material was absolutely essential to me, even though I work in web dev. Understanding the basics of how it all works under the hood, down to the ticks of the processor and how it all gets flushed through the pipeline was an eye opening experience.
P.S. Bill retired a year or two ago :(A colleague linked me to a similar course - I'll definitely be checking this out though - thanks⬐ jambutterswhat are the prerequisites? C?⬐ harias⬐ dr_zoidbergFrom the website:
You must be familiar with Assembly code, the C or C++ programming language, Unix or Linux, and the basics of pipelining.There's a very good article  that makes rounds here very now and then. It gives a very good explanation of many of those concepts, while remaining understandable for those that haven't taken CPU design courses.
Edit: It'd be great a 2019 refresh (last update is from 2016) talking about Ryzen and the newer Intel designs.⬐ djhworldBookmarked, thanks for the link, I think it will help me with the next step
I'm currently taking an OMS CS course in High Performance Computer Architecture and recently completed the branch prediction lesson. It is a free course on Udacity. Here's the source: https://www.udacity.com/course/high-performance-computer-arc...
Lesson 3 covers pipelines and lesson 4 covers branches. Milos does a great job of explaining "How It Works" for something that is really a hidden layer under the CPU.
⬐ bogomipzThanks for sharing, this course looks interesting. Cheers.