HPC deals with writing efficient code. You will learn how modern hardware works and how to write your code to take advantage of it. We will study all the stack, from HW to compiler technologies, from libraries to domain specific languages. The class is structured in two phases; we will start learning how to optimize single threaded code on superscalar processors, then we will deal with parallelism.

During lab sessions you will practice tools and techniques for writing performance oriented code.