Computer hardware has been evolving...

so should the way you program.

Spring 2003 EE599/EE699:
Advanced Program Optimization & Parallelization

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:

Prerequisites

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.


Advanced Program Optimization & Parallelization.