CS6290 - High Performance Computer Architecture
Introduction
I believe that if you program computers, even using high level languages that abstract away most of the details of the hardware, you must have at least a basic knowledge of what is happening under the covers.
This belief, coupled with the pretty good rating of HPCA available here led me to choose it as my third course in the OMSCS program.
Highlights
This course assumes a foundational understanding of computer architecture, expecting students to have completed an undergraduate course in the subject. Rather than covering the basics, it delves into the intricacies of how modern processors achieve high performance, exploring the symbiotic relationship between hardware, compilers, and operating system.
The course definitely did not under-deliver in terms of breadth. Modules span a range of topics, including branch prediction, out of order execution, VLIW, virtual memory caches, memory, storage and more. Exploring how processors function as guessing machines at the lowest level is truly eye-opening.This knowledge can enable you to be able to read fascinating papers like the spectre exploitation
Lectures
I believe that the lectures were the highlight of this course. The course professor, Milos Prvulovic provided clear explanations and made it easy to understand even the hardest topics, solving problems step by step.
Something that I also found very cool, was that at the start of each module, a link to download notes was provided. This came particularly handy in the exams, which were open notes, so you could print this notes and keep them by side.
That being said, lectures cover A LOT of material, so make sure that you do not leave them for the last minute, you will not have time to go through them all.
Projects
The projects in this course involve working with the SESC simulator, which is implemented in C++. You will receive the source code for SESC and be tasked with making modifications to the simulator. The projects require extracting metrics and conclusions from various benchmark applications run on the simulator, such as cache misses.
Instructions are provided in Microsoft Word documents, featuring blank boxes for your responses. After making the necessary changes, you'll resubmit both the modified files and your filled-in document.
Throughout the projects, Nolan Capehart, the head TA, proves to be an invaluable resource. As evident in the course reviews, Nolan's guidance is highly praised, and rightly so. In my experience, he stands out as the best TA in the program. His posts on project FAQs and tips in the discussion forums were instrumental, providing crucial assistance and quick responses to any questions you might post on ed.
Conclusion
In conclusion, this OMSCS course maintains the program's high standard. While there's room for improvement in the project instructions, the overall experience is commendable. I highly recommend this course, especially as it complements GIOSCS6200 - Introduction to Operating SystemsIntroduction I took GIOS in the Spring 2023 semester as part of my master's at Georgia Tech University, and it was my first course in the program. It was highly recommended for a first course in the Slack group and had great ratings in OMSCS Hub, and indeed those were on point! The course was a great start in the program and now in my turn, I also highly recommend it to anyone interested in Computing Systems Specialization as a first course, and also provide some tips that helped me finish th course seamlessly. Taking it after GIOS offers a unique perspective on familiar topics, enhancing your understanding and providing valuable insights.