Computer hardware has been evolving...
so should the way you program.
Time & Place: | MWF 9:00-9:50 AM, 263AH |
---|---|
Instructor: | Professor Hank Dietz |
Instructor URL: | http://aggregate.org/hankd/ |
Course URL: | http://aggregate.org/hankd/POP/ |
Advanced Program Optimization & Parallelization is about how to make programs execute more efficiently on modern computer hardware ranging from simple microcontrollers to supercomputers. Toward this goal, we will explore a variety of performance-critical architectural features and, for each, discuss how compiler technology and manual recoding can use that feature to improve performance. Even apparently minor abuse of architectural features can have a huge impact on performance: for example, changing how a program interacts with the caches and TLBs of a modern PC can yield more than 100X speedup!
There are two numbers for this course: EE599 is for Undergraduate credit and EE699 is for Graduate credit. The courses will meet together, but differ as follows:
Aside from undergraduate vs. graduate standing, both course have the same prerequisites. Students must have a good understanding of basic computer architecture, minimally EE380. In addition, they are expected to be fluent in a high-level programming language, preferably C or Fortran.