Professor: Manish Vachharajani
Fall 2008 Office Hours:TBD, or by appointment
This project-oriented course will focus on developing applications, compilers, and programming strategies for non-traditional multiprocessor systems, focusing on GPUs. Example projects include, but are not limited to, visualizing application behavior on multiprocessor systems, porting a compute-intensive application to execute on an NVIDIA GPU, developing a compiler that compiles matrix routines for a variety of processors, etc. The projects are intentionally open-ended so that students may pursue projects that reflect their career or research interests, the only requirements will be that the project have sufficient scope/difficulty and somehow pertains to non-traditional multiprocessor systems.
Student's have have several workstations with NVIDIA's GeForce 8600 GTS at their disposal for experimentation with GPUs and a small cluster with NVIDIA's Tesla S870. Any other hardware, to which students have access, and which contains a non-traditional multi-processor may also be used for the course.
Last year, John Michalakes took the course and ported a substantial part of the weather research and forecast model to NVIDIA's GPUs and achieved an 8x speedup for the accelerated portion of the model and a 1.3x speedup overall. He has since published two papers on the topic:
Anyone who is interested in understanding the organization and efficient programming of state-of-the-art non-traditional multiprocessor parallel architectures
ECEN 5593: Advanced Computer Architecture or ECEN 4593: Advanced Computer Architecture (or equivalent experience) and one of ECEN 5553: Parallel Processing, CSCI 3753: Operating Systems, or CSCI 5573: Advamced Operating Systems, equivalent courses, or equivalent experience. A good understanding of C programming on UNIX systems.